JP2004234647A - 特化されたデータ入力用のユーティリティオブジェクト - Google Patents

特化されたデータ入力用のユーティリティオブジェクト Download PDF

Info

Publication number
JP2004234647A
JP2004234647A JP2004003369A JP2004003369A JP2004234647A JP 2004234647 A JP2004234647 A JP 2004234647A JP 2004003369 A JP2004003369 A JP 2004003369A JP 2004003369 A JP2004003369 A JP 2004003369A JP 2004234647 A JP2004234647 A JP 2004234647A
Authority
JP
Japan
Prior art keywords
user interface
control
data entry
data
invoking
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2004003369A
Other languages
English (en)
Other versions
JP4658480B2 (ja
JP2004234647A5 (ja
Inventor
Kyril Feldman
キリル フェルドマン
Robert L Chambers
エル.チェンバーズ ロバート
Steve Dodge
スティーブ ダッジ
Takanobu Murayama
ムラヤマ タカノブ
Tobias Zielinski
ジーリンスキー トビアス
Todd A Torset
トッド エー.トアセット
Thomas R Wick
アール.ウィック トーマス
Adrian J Garside
ジェイ.ガーサイド エイドリアン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2004234647A publication Critical patent/JP2004234647A/ja
Publication of JP2004234647A5 publication Critical patent/JP2004234647A5/ja
Application granted granted Critical
Publication of JP4658480B2 publication Critical patent/JP4658480B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04883Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04886Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures by partitioning the display area of the touch-screen or the surface of the digitising tablet into independently controllable areas, e.g. virtual keyboards or menus

Abstract

【課題】 オブジェクトは、ソフトウェアアプリケーションの1または複数のコントロールに関連付けられている。コントロールに関連付けられているオブジェクトは、データ入力ユーザインタフェースを使用してデータをそのコントロールに入力しているときに、データ入力ユーザインタフェースの動作を決定する。
【解決手段】 より具体的には、オブジェクトは、ユーザインタフェースをユーザに提供するよう働く構成要素にインタフェースの特徴を伝えることができる。こうした構成要素は、例えば、ユーザインタフェースをディスプレイ上にレンダリングし、ユーザインタフェースを介してユーザから入力データを受信し、入力されたデータを指定された宛先に経路指定する共有ソフトウェアモジュールとすることができる。または、オブジェクト自体は、指定された特徴を有するユーザインタフェースを作成することができる。
【選択図】 図4

Description

本発明は、一般的に、データ入力ユーザインタフェースを呼び出すまたは制御するためのオブジェクトに関する。本発明の様々な実施形態は、エディットコントロール、リッチエディットコントロールなどのユーザインタフェースから入力データを受信する制御に基づいてデータ入力ユーザインタフェースを呼び出し、または制御するための特定の応用例を有する。
コンピュータが進化するにつれて、ユーザ経験知を向上させ、コンピュータをより多機能にする様々なデータ入力技術が開発されている。例えば、典型的なコンピュータシステム、特にMicrosoft WINDOWS(登録商標)ブランドのオペレーティングシステムなど、グラフィカルユーザインタフェース(GUI)を使用してユーザ対話を行うコンピュータシステムは、1または複数の別個の入力装置からユーザ入力を受け付けるように最適化されている。従って、コンピュータユーザは、キーボードでテキストを入力し、ポインタの位置に関連付けられたユーザの選択部分を活性化させる1または複数のボタンを有するマウスなど、ポインティング装置で表示画面上のポインタの位置を制御することができる。一部のコンピューティングシステムでは、多目的データ入力装置として使用できるペン状のスタイラスを設けることによってユーザが使用可能な入力システムが拡張されている。
例えば、Microsoft WINDOWS(登録商標)ブランドのXP Tablet PC Edition オペレーティングシステムは、ユーザがペンまたはスタイラスを使用してデータをコンピュータに送る、Tablet PC Input Panel、テキスト入力パネル、またはTIPと呼ばれるデータ入力ユーザインタフェースを提供する。この種のユーザインタフェースは、より広範なカテゴリのデータ入力グラフィカルユーザインタフェースに分類される。これは、一般にはデータ入力パネルと呼ぶこともできる。データ入力パネルは、その表面にわたるスタイラスの動きを電子インクに変換する書き込み面を備えることができる。データ入力パネルの一部のバージョンは、電子インクをテキストに変換することができ、他の種類のデータ入力パネルは、その代わりに、またはそれに加えてコンピュータ上で動作しているアプリケーションに直接電子インクを提供することができる。また、データ入力パネルは、従来のキーボードの文字を表示する「ソフト」キーボード面を備えていることもある。ユーザがスタイラスを使用して表示されたキー上でタップすると、コンピュータは、そのキーに関連付けられた文字を入力データとして受信する。
データ入力パネルは、実質的にはコンピュータの有用性を向上させるが、従来のデータ入力パネルに関連する不都合が依然としていくつかある。まず、多くのコンピュータユーザは、データ入力パネルに不慣れである。従って、ソフトウェアアプリケーションを作成する開発者は、データをアプリケーションに入力するためにデータ入力パネルを手動で呼び出す方法をユーザが知っていると確信できない。代わりに開発者は、ユーザがデータ入力パネルを活性化させ、使用できることを願う、または別のデータ入力方法を利用できるようにする必要がある。
また、データ入力パネルは、グラフィカルユーザインタフェースであるため、一般にデータ入力パネルからデータが入力されるアプリケーションと同時に表示される。データが入力される場所をデータ入力パネルが実際に隠してしまうのを防ぐために、データ入力パネルは一般に、アプリケーションの下に「ドッキング」される。データ入力パネルをこのように配置することによって、ユーザがデータの入力先を見るのを妨げることは確実になくなるが、ユーザが(アプリケーションを制御するために)アプリケーションと、(データをアプリケーションに入力するために)データ入力パネルとの間でスタイラスを連続的に前後に動かすのは不都合なことがある。
さらに、典型的なデータ入力パネルによって提供されるデータ入力技法は、多岐にわたるため、あるアプリケーションの特定の位置にデータを入力するのにどの技法が最適であるかをユーザが決定するのはしばしば不都合である。例えば、あるアプリケーションは、大文字と小文字が区別されるパスワードを受けるエディットコントロールを含んでいることがある。しかし、ユーザがデータ入力パネルによって提供される書き込み面に書き込むことにより、エディットコントロールにパスワードを入力しようとした場合、ユーザの手書きが誤って認識されることがある。さらに、エディットコントロールが誤って認識された手書きを表示せず、むしろ誤って認識されたテキストを意図的に隠す場合、ユーザは、そのパスワードがなぜ受け付けられないのかを理解することさえできないことがある。この状況では、ユーザは、書き込み面ではなく代わりにソフトキーボードを使用して、データをエディットコントロールに入力することが好ましいかもしれないが、ユーザは、ソフトキーボード面がそのタスクにより適していることを理解し、データ入力パネルをその表示面に自ら変更する必要がある。
従って、入力パネルからデータが挿入される位置の近くに、しかしその位置を不注意に隠すことなく、データ入力パネルを表示できることが有利である。より具体的には、ユーザが、その注意をデータ入力パネルにも、データ入力パネルを介してアプリケーションに入力されるデータの挿入にも同時に集中できる位置でデータ入力パネルをインテリジェントに表示できることが有利である。さらにアプリケーションが、アプリケーションの制御にデータを入力するために最も適したデータ入力パネル面の様々な文字を指定できることが有利である。例えば、アプリケーションが、大文字と小文字が区別されるパスワードを受けるエディットコントロールを含んでいる場合、ユーザがデータをそのエディットコントロールに入力しようとしたとき、アプリケーションが自動的にデータ入力パネルの面をキーボード面に変更できることが有用となる。
好都合には、本発明の様々な実施形態は、アプリケーションがデータ入力パネルの位置および/または外観を含むデータ入力パネルの1または複数の特徴を制御できるようにするオブジェクトを提供する。本発明の一部の実施形態によれば、オブジェクトは、あるアプリケーションにおける1または複数のエディットコントロールに関連付けられる。例えば、本発明の一部の実施形態で、コンピュータのオペレーティングシステムの入力フォーカスが、そのオブジェクトに関連付けられているエディットコントロールにシフトしたとき、オブジェクトは、データ入力パネルが表示される位置を指定する。本発明のさらに別の実施形態では、コンピュータのオペレーティングシステムの入力フォーカスが、オブジェクトに関連付けられているエディットコントロールにシフトしたとき、オブジェクトは、データ入力パネルによって表示される面を指定する。本発明のさらに別の実施形態では、コンピュータのオペレーティングシステムの入力フォーカスが、オブジェクトに関連付けられているエディットコントロールに変わると、オブジェクトは、データ入力パネルの全体的な外観を指定する。つまり、オブジェクトは、データ入力パネルの位置、およびデータ入力パネルによって表示される面の両方を指定する。本発明のさらに別の実施形態では、オブジェクトは、それに加えて、またはその代わりにデータ入力パネルがユーザによってどのように呼び出されるかを決定することができる。
(概要)
本発明の態様は、データ入力パネルなどデータ入力ユーザインタフェースの挙動を制御することに関する。より詳細には、本発明の様々な実施形態は、データ入力パネルの位置および内容を制御することに関する。当業者にはわかるように、ほとんどのソフトウェアアプリケーションは、典型的に、ユーザから入力データを受け付ける一種の特徴または構成要素を有する。グラフィカルユーザインタフェースを有するアプリケーションでは、こうした特徴または構成要素は、一般にコントロールと呼ばれている。従って、コントロールとは、アクションを実行するためにユーザが操作することができる表示されたオブジェクトである。コントロールの他の例は、例えば、ユーザがポインティング装置を使用してチェックすることができるボタン、やはりポインティング装置によって操作することができるスクロールバーなどがある。収容ウィンドウ(containing window)は、さらに別の種類のコントロールであり、これによってユーザは、ウィンドウの内容を操作することができる。当業者にはわかるように、コントロールの特徴および挙動は、一般にコントロールをホストするアプリケーションによって指定される。
例えば、キーボードなどでユーザがテキストデータを入力することができる境界付きのエリアは、一般にエディットコントロールと呼ばれる。当業者にはわかるように、異なる様々な種類のエディットコントロールがある。例えば、キーボードから文字データを受け付ける従来のエディットコントロールに加えて、Microsoft WINDOWS(登録商標)ブランドのXPオペレーティングシステムによって、アプリケーションは、リッチエディットコントロールを含むことができる。リッチエディットコントロールは、入力テキスト、および挿入されたテキストに関連付けられている様々な型のメタデータを受け付ける。また、Microsoft WINDOWS(登録商標)ブランドのXP Tablet PC Edition オペレーティングシステムによって、アプリケーションは、インクエディットコントロールを含むことができる。インクエディットコントロールとは、スタイラスタイプのポインティング装置を操作して電子インクを作成することにより、ユーザがコントロールにデータを入力できるようになるリッチエディットコントロールの一種である。一部のインクエディットコントロールでは、インクはテキストに変換され、他のタイプのインクエディットコントロールでは、インクをテキストに変換することなく電子インクを処理することができる。
本発明の様々な実施形態によれば、オブジェクトが1または複数のコントロールに関連付けられている。あるアプリケーションのコントロールに関連付けられているオブジェクトは、データ入力ユーザインタフェースを使用してデータをそのコントロールに入力しているときに、データ入力インタフェースの動作を決定する。より具体的には、本発明によるオブジェクトは、ユーザインタフェースをユーザに提供するよう働く構成要素にインタフェースの特徴を伝える。この構成要素は、例えば、ユーザインタフェースをディスプレイにレンダリングし、ユーザインタフェースを介してユーザから入力データを受信し、入力されたデータを指定された宛先に経路指定する共有ソフトウェアモジュールとすることができる。または、オブジェクト自体が指定された特徴を有するユーザインタフェースを作ることができる。
例えば、コントロールに関連付けられているオブジェクトは、コンピュータのオペレーティングシステムの入力フォーカスがそのコントロールにシフトしたとき、データ入力パネルなどのデータ入力ユーザインタフェースの外観を決定することができる。本発明の一部の実施形態では、オブジェクトは、データ入力パネルをコントロールの境界の近くに表示させる。例えば、オブジェクトは、データ入力パネルをエディットコントロールの境界のすぐ下またはすぐ上に表示させることができる。さらに、オブジェクトは、データ入力パネルが最初に表示する面を決定することができる。例えば、オブジェクトがパスワードや型式番号などランダムな文字を受け取る、または受け取った文字を隠すエディットコントロールに関連付けられている場合、オブジェクトは、データ入力パネルに、データをそのコントロールに入力するために、書き込み面ではなくキーボード面を最初に表示させるようにすることができる。
さらに、オブジェクトを使用して、データ入力パネルなどのデータ入力ユーザインタフェースを呼び出す技術を決定することができる。例えば、オブジェクトは、コンピュータのオペレーティングシステムの入力フォーカスがそのオブジェクトに関連付けられているコントロールにシフトしたときはいつでも、データ入力パネルが強制的に呼び出されるようにすることができる。または、オブジェクトは、コンピュータのオペレーティングシステムのフォーカスがそのオブジェクトに関連付けられているコントロールに変わったときに、ターゲットが表示されるようにすることができる。本発明の様々な実施形態で、ユーザがターゲット上でスタイラスを通過させ、ポインタがターゲットをポイントしている間に活性化ボタンを押し下げたとき、またはユーザがターゲットに対して他の指定された何らかのアクションを実行するとき、ターゲットが(オブジェクトによって指定されているように)データ入力パネルを呼び出す。
従って、オブジェクトのプロパティ値を設定し、オブジェクトに対して様々なメソッドを呼び出すことによって、アプリケーションは、ユーザに対して表示されるデータ入力パネルなどのデータ入力ユーザインタフェースの特徴を決定することができる。さらに、オブジェクトによって提供されるメソッドを実行することによって、アプリケーションは、ユーザのアクションに応答してデータ入力ユーザインタフェースの特徴を変更する、またはユーザインタフェースを介して入力されるデータがどのようにコントロールに引き渡されるかを制御することができる。本発明のこうした特徴のそれぞれについて、以下でより詳しく説明する。
(動作環境の例)
当業者にはわかるように、本発明の様々な実施形態によるオブジェクトは、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組合せを使用して実施することができる。例えば、本発明の様々な実施形態は、データ入力ユーザインタフェースの動作を制御するのにオブジェクトの操作を行う機能モジュールによって実施することができる。各モジュールは、単にアナログまたはデジタルの電子回路から構成される。しかし、当業者にはわかるように、モジュールは、例えば、パーソナルコンピュータ、ラップトップコンピュータなど従来のプログラム可能コンピューティング装置に見られるようなプログラム可能電子回路を制御する実行可能ソフトウェア命令を使用して構成することもできる。
より具体的には、本発明の様々な実施形態によるオブジェクトは、1または複数のプログラム可能コンピューティング装置によって実行されるプログラムモジュールなどのコンピュータ実行可能命令の一般的な文脈で説明することができる。一般にプログラムモジュールは、特定のタスクを実行する、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含むことができる。一般に、様々な実施形態では、必要に応じてプログラムモジュールの機能を組み合わせる、または分散させることができる。
本発明の様々な実施形態は、ソフトウェアでプログラムされたプログラム可能コンピュータ装置を使用して実施できるので、本発明の様々な実施形態を使用できる一般のプログラム可能コンピューティング装置(以下、単にコンピュータと呼ぶ)の構成要素および動作を簡単に説明することが、本発明をよりよく理解するのに役立つであろう。図1は、本発明の様々な態様の実施に使用できる従来の汎用デジタルコンピューティング環境の例を示す機能ブロック図である。図1では、コンピュータ100は、処理ユニット110、システムメモリ120、およびシステムメモリを含む様々なシステム構成要素を処理ユニット110に結合するシステムバス130を含む。システムバス130は、様々なバス構造のうちの任意のものを使用する、メモリバスまたはメモリコントローラ、周辺バス、およびローカルバスなど、あらゆる種類のバス構造とすることができる。システムメモリ120は、読取り専用メモリ(ROM)140およびランダムアクセスメモリ(RAM)150を含む。
起動時などコンピュータ100の要素間で情報の転送を助ける基本ルーチンを含む基本入出力システム160(BIOS)は、ROM140に格納されている。コンピュータ100は、ハードディスク(図示せず)からの読出し、およびそこへの書込みを行うためのハードディスクドライブ170、取外し可能磁気ディスク190からの読出し、またはそこへの書込みを行うための磁気ディスクドライブ180、CD ROMまたは他の光媒体など取外し可能光ディスク192からの読出し、またはそこへの書込みを行うための光ディスクドライブ191も含む。ハードディスクドライブ170、磁気ディスクドライブ180、および光ディスクドライブ191は、それぞれハードディスクドライブインタフェース192、磁気ディスクドライブインタフェース193、および光ディスクドライブインタフェース194によってシステムバス130に接続されている。ドライブおよびその関連するコンピュータ読取り可能媒体は、コンピュータ読取り可能命令、データ構造、プログラムモジュール、およびパーソナルコンピュータ100用の他のデータの不揮発性記憶装置を提供する。動作環境の例では、磁気カセット、フラッシュメモリカード、デジタルビデオディスク、ベルヌーイカートリッジ、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)など、コンピュータでアクセス可能なデータを格納することができる他のタイプのコンピュータ読取り可能媒体も使用できることを、当業者であれば理解されよう。
オペレーティングシステム195、1または複数のアプリケーションプログラム196、他のプログラムモジュール197、およびプログラムデータ198を含むいくつかのプログラムモジュールを、ハードディスクドライブ170、磁気ディスク190、光ディスク192、ROM140、またはRAM150に格納することができる。ユーザは、キーボード101やポインティング装置102などの入力装置を介してコマンドおよび情報をコンピュータ100に入力することができる。他の入力装置(図示せず)には、マイクロフォン、ジョイスティック、ゲームパッド、衛星放送受信アンテナ、スキャナなどがある。これらおよび他の入力装置は、しばしばシリアルポートインタフェース106を介して処理ユニット110に接続される。シリアルポートインタフェース106は、システムバスに結合されているが、パラレルポート、ゲームポート、ユニバーサルシリアルバス(USB)など他のインタフェースによって接続することもできる。さらに、これらの装置を、適切なインタフェース(図示せず)を介して直接システムバス130に結合することもできる。モニタ107または他の種類の表示装置も、ビデオアダプタ108などのインタフェースを介してシステムバス130に結合される。モニタに加えて、パーソナルコンピュータは一般に、スピーカ、プリンタなど他の周辺出力装置(図示せず)を含む。一例として、インクなどフリーハンド入力をデジタル式に捕捉するためにペンデジタイザ165および付属ペンまたはスタイラス166が設けられている。ペンデジタイザ165とシリアルポートの間の直接接続を示しているが、実際にはペンデジタイザ165は、当分野で知られているように、処理ユニット110に直接、パラレルポートまたは他のインタフェースおよびシステムバス130を介して結合することができる。さらに、デジタイザ165をモニタ107から離して示しているが、本発明の多くの実施形態では、デジタイザ165の使用可能なエリアは、モニタ107の表示エリアと同程度の範囲を占める。さらに、デジタイザ165をモニタ107に統合する、またはモニタ107に重ねる個別の装置として存在させる、そうでない場合はモニタ107に取り付けることができる。
アプリケーションプログラム196およびプログラムモジュール197は、スタイラス166を介してインク入力を受け取り、分析する際に使用する解析モジュール、および認識モジュールを含むことができる。解析モジュールを使用して、受信したストロークを分析し、ストロークをインクオブジェクト(文字、単語、図など)にグループ分けすることができる。認識モジュールを使用してインクオブジェクトを分析し、英数字のインクオブジェクトに対して文字認識を行う。認識情報は、インクオブジェクトのプロパティとして格納することができる。こうした解析モジュールおよび認識モジュールの例は、ワシントン州レドモンドのMicrosoft CorporationのTablet PC Platform Software Development Kit(SDK)で入手可能である。
コンピュータ100は、リモートコンピュータ109など1または複数のリモートコンピュータへの論理接続を使用してネットワーク式環境で動作することができる。リモートコンピュータ109は、サーバ、ルータ、ネットワークPC、ピア装置、または他の一般のネットワークノードとすることができ、図1にはメモリ記憶装置111のみを示しているが、一般にコンピュータ100に関連して上述した多くの、またはすべての要素を含む。図1に示した論理接続は、ローカルエリアネットワーク(LAN)112、およびワイドエリアネットワーク(WAN)113を含む。こうしたネットワーキング環境は、オフィス、企業全体のコンピュータネットワーク、イントラネット、およびインターネットにおいて一般的であり、有線および無線の通信プロトコルを使用する。
LANネットワーキング環境で使用する場合、コンピュータ100は、ネットワークインタフェースまたはアダプタ114を介してローカルネットワーク112に接続される。WANネットワーキング環境で使用する場合、パーソナルコンピュータ100は一般に、モデム115、またはインターネットなどワイドエリアネットワーク113を介して通信を確立する他の手段を含む。モデム115は、内蔵型または外付けでもよく、シリアルポートインタフェース106を介してシステムバス130に接続される。ネットワーク環境では、パーソナルコンピュータ100に関連して示したプログラムモジュール、またはその一部をリモートメモリ記憶装置に格納することができる。
図示したネットワーク接続は、例示であり、コンピュータ間の通信リンクを確立する他の技術を使用できることは理解されよう。TCP/IP、Ethernet(登録商標)、FTP、HTTPなどよく知られている様々な任意のプロトコルの存在が想定され、システムは、クライアント−サーバ構造でユーザがWebベースのサーバからWebページを取り出すことができるように動作することができる。従来の様々なWebブラウザのうちの任意のものを使用してWebページ上でデータを表示し処理することができる。
本発明の1または複数の態様は、1または複数のコンピュータまたは他の装置によって実行される1または複数のプログラムモジュールなどのコンピュータ実行可能命令で実施することができる。一般にプログラムモジュールは、コンピュータまたは他の装置のプロセッサによって実行されたときに特定のタスクを実行する、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。コンピュータ実行可能命令は、ハードディスク、光ディスク、取外し可能媒体、固体メモリ、RAMなどのコンピュータ読取り可能媒体に格納することができる。当業者にはわかるように、様々な実施形態で、必要に応じてプログラムモジュールの機能を組み合わせる、または分散させることができる。さらに機能は、集積回路、フィールドプログラマブルゲートアレイ(FPGA)など、ファームウェア、またはハードウェアの同等物で全体または一部実施することができる。
(データ入力ユーザインタフェースの挙動)
(概要)
上述したように、本発明の様々な実施形態によるオブジェクトをあるアプリケーションが使用して、データ入力グラフィカルユーザインタフェースの任意の特徴を制御することができる。例えば、本発明によるオブジェクトをアプリケーションが使用して、データ入力パネルなどのユーザインタフェースの位置および外観を制御することができる。本発明の様々な環境によるこうした特定の特徴の実装について、以下で詳しく説明する。
(ユーザインタフェースの配置)
本発明の様々な実施形態によるユーティリティオブジェクトの1つの特徴は、データ入力グラフィカルユーザインタフェースからデータを受け取るアプリケーションによって指定された作業スペースのどこかに、データ入力パネルなどのデータ入力グラフィカルユーザインタフェースを配置する能力である。本発明の一部の実施形態では、作業スペースは、ユーザに表示される任意のスペースでよい。または、作業スペースは、データ入力グラフィカルユーザインタフェースが、ユーザから入力データを受け取ることができる任意のスペースでもよい。例えば、データ入力グラフィカルユーザインタフェースがある面にわたるスタイラスの動きを介して入力データを受け取る場合、作業スペースは、スタイラスの動きを検出することができるその面の部分に対応するスペースとすることができる。
従って、本発明の一部の実施形態によるユーティリティオブジェクトは、アプリケーションに、ユーザインタフェースからのデータが送られるコントロールの近くにデータ入力グラフィカルユーザインタフェースを配置する能力を提供することができる。例えば、コントロールがエディットコントロールである場合、本発明によるユーティリティオブジェクトは、データ入力ユーザインタフェースをエディットコントロールの近くに配置することができ、その結果ユーザは、ユーザインタフェースおよびコントロールへのデータの入力の両方を同時に見ることができる。この特徴は、例えば、ユーザがデータ入力ユーザインタフェースを使用してフォームなど広いエリアにわたって広がる様々なエディットコントロールにデータを入力しているときに特に有用である。
図2Aは、アプリケーションのグラフィカルユーザインタフェースの一例を示す図である。この図からわかるように、アプリケーションのグラフィカルユーザインタフェースが表示される作業スペースは、境界201を有する。上述したように、境界201は表示エリアの縁とすることができる。または、境界201は、データ入力ユーザインタフェースの入力データを受け付けることができるエリアに対応する表示されたスペースの縁とすることができる。この図からわかるように、アプリケーションのユーザインタフェースは、3つのエディットコントロール203〜207を含み、それぞれは境界ボックスによって境界が定められている。各境界ボックスの下には、それぞれ関連付けられているエディットコントロール203〜207に入力すべきデータを識別するタイトル209〜213がある。従って、図2Aで示すアプリケーションのユーザインタフェースは、例えばユーザに個人情報を要求するコンピュータ上にレンダリングされたフォームでもよい。
図3は、図2Aに示すアプリケーションのエディットコントロール203〜207へのデータ入力に使用できるデータ入力グラフィカルユーザインタフェースの1種を示している。データエントリグラフィカルユーザインタフェースは、本明細書ではデータ入力パネル301と呼ばれ、境界303を含む。境界303の内側が書き込み面305である。当業者にはわかるように、ユーザは、スタイラスなど、適切なポインティング装置を使用して電子インクを面305上に書き込むことができる。インクをテキストとして認識することができる(本発明の様々な実施形態にかかる一部のデータ入力パネルでは、書き込み面は、スタイラスからの接触に応答して電子インクを生成するだけの場合がある)。本発明の様々な実施形態では、スタイラスによって示された特定のジェスチャを、代わりにある機能を実行するコマンドとして認識する場合もある。データ入力パネル301は、送信ボタン307、複数のコントロールボタン309、および補助インタフェースボタン311,313も含む。
ユーザが書き込み面305上に電子インクを書き込んだ後、データ入力パネル301は、所定の期間の後、電子インクをテキストに変換する。しかし、ユーザは、認識プロセスのスピードアップを望む場合、ポインティング装置を使用して送信ボタン307を活性化させてもよい。テキストは、電子インクから認識されると、一般にアプリケーションのコントロールの挿入ポイントに挿入される。認識されたテキストを挿入ポイントに挿入することに加えて、ユーザは、コントロールボタン309を使用して、文字以外のアクションも挿入ポイントに挿入することができる。例えば、コントロールボタン309を使用して、ユーザは、挿入ポイントを既存のテキストにわたって前方または後方に移動させ、削除し、バックスペースし、改行を作成することができる。
以下でより詳しく説明するように、補助インタフェースボタン311,313の活性化によって、データ入力パネル301に、それぞれ数字および記号を含む補助ソフトキーボードを表示するよう命令し、クローズボタン315を活性化させることによってデータ入力パネル301を閉じる。データ入力パネル301は、面選択ボタン317,319も含む。以下でも詳しく説明するように、面選択ボタンによってユーザは、データ入力パネル301によって表示されるデータ入力面の間を切り換えることができる。図3において、書き込み面ボタン317が活性化されると、データ入力パネル301に、書き込み面305を表示するよう促す。
ユーザは、エディットコントロールにデータを挿入したいとき、最初に、例えばスタイラス、マウスなどのポインティング装置を使用してエディットコントロールで挿入ポイントを設定する。次に図2Bを参照すると、例えば、エディットコントロール203にデータを挿入しようとしているユーザは、エディットコントロール203の境界内に挿入ポイント215を設定する。典型的には、エディットコントロール内に挿入ポイントを配置することによって、コンピュータのオペレーティングシステムが入力フォーカスをそのエディットコントロールにシフトする。つまり、オペレーティングシステムは、ユーザによる将来のデータ入力がそのエディットコントロールに引き渡されることを認識する。エディットコントロール203が入力フォーカスを受け取ったことに応答して、本発明の様々な実施形態によるユーティリティオブジェクトは、共有構成要素に指示して、エディットコントロール203にデータを入力するためのデータ入力パネル301を表示する。共有構成要素は、複数のユーティリティオブジェクトの間で共有することができるグラフィカルユーザインタフェースをカプセル化し、インスタンス化する。以下で詳しく説明するように、共有グラフィカルユーザインタフェースの特徴は、ユーザインタフェースを制御するオブジェクトによって提供されるデータに応じて異なる。
本発明の一部の実施形態では、ユーティリティオブジェクトは、ユーザが挿入ポイントをエディットコントロールに配置するときはいつでも、データ入力パネル301を表示するよう共有構成要素に指示することができる。しかし、本発明の別の実施形態では、ユーティリティオブジェクトは、ユーザがスタイラスで挿入ポイントを配置したことのみに応答して、データ入力パネル301を表示するように共有構成要素に指示することができる。スタイラスのポインティング装置で作成された挿入ポイントのみに応答することによって、オブジェクトは、ユーザがキーボードやマウスなどの異なるデータ入力ツールを使用しているときに、データ入力パネル301が表示されないようにする。従って、データ入力パネル301は、実際にデータをコントロールに入力することが必要なときのみに表示される。
エディットコントロール203が入力フォーカスを受けていると判断したとき、ユーティリティオブジェクトは、エディットコントロール203に対して特定の位置にデータ入力パネル301を表示するように共有構成要素に指示することができる。例えば、オブジェクトは、データ入力パネル301の最も近い水平方向の境界の縁と、エディットコントロール203の最も近い水平方向の境界の縁の間の垂直方向のオフセットを指定することができる。同様に、オブジェクトは、データ入力パネル301の最も近い垂直方向の境界の縁と、エディットコントロール203の最も近い垂直方向の境界の縁の間の水平方向のオフセットを指定することができる。本発明の一部の実施形態では、オブジェクトは、データ入力パネル301の高さおよび幅を指定して、関連のエディットコントロールの近くにあるままで所定の作業スペース内に確実に収まるようにすることさえできる。
実施形態の例では、スペースが作業スペースの境界201内で使用可能な場合、ユーティリティオブジェクトは、データ入力パネル301をエディットコントロール203の境界の下側に、右側にシフトさせて表示するように共有構成要素に指示する。例えば、オブジェクトは、共有構成要素に、データ入力パネル301の上側の境界を、エディットコントロールブロック203の下側の境界の0.25インチ(0.635cm)に相当するピクセル下方に配置するよう指図することができる。同様に、オブジェクトは、共有構成要素に、データ入力パネル301の左側の垂直方向の境界をエディットコントロール203の左側の垂直方向の境界の1インチ(2.54cm)の1/16に相当するピクセル右方に配置するように指図することができる。
この位置構成は、特に、アプリケーションが様々なエディットコントロールを備えるフォームを表示しているときに便利である。データ入力パネル301をエディットコントロール203の下側に、わずかに右側にシフトさせて配置することにより、データ入力パネル301は、エディットコントロール203の近くに配置されたまま、しかし、エディットコントロール203に入力されるテキストを見るユーザの視界を妨げることはない。また、この配置によって、ユーザは、エディットコントロール205の少なくとも一部をエディットコントロール203のすぐ下で見ることができ、その結果ユーザは、エディットコントロール203へのデータ入力を忘れることもない。さらに、エディットコントロール205は部分的に可視であり、その結果ユーザは、スタイラスを使用して入力フォーカスをエディットコントロール205に移動させコントロールをターゲットにすることができる。さらに、エディットコントロール203に関連付けられたタイトル209が左寄せの場合、データ入力パネル301を右側にシフトさせた位置に配置することによって、ユーザは、タイトル209の少なくとも最初の数文字を見ることができ、従って、ユーザがどのデータをエディットコントロール203に入力すべきかを覚えておくのを助ける。
データ入力パネル301が表示されると、ユーザは、データ入力パネル301の書き込み面を使用して、テキストをエディットコントロール203に入力することができる。例えば、図2Cに示すように、ユーザは、名前「John Doe」を電子インク217で書き込み面に手書きするかもしれない。所定の時間の後、またはユーザが送信ボタン307を活性化させた場合、データ入力パネル301は、インク217からテキストを認識する。次いで、図2Dに示すように、データ入力パネル301は、認識されたテキスト219をエディットコントロール203に挿入する。
本発明の様々な実施形態で、オブジェクトは、データ入力パネル301のデフォルトの位置を使用すると、関連付けられたエディットコントロールを隠さざるを得ない状況を補償することができる。例えば、図4に示すように、データ入力パネル301を使用してエディットコントロール207にテキストを挿入している。エディットコントロール207は作業スペースの境界201のすぐ上にあるため、データ入力パネル301をエディットコントロール207の下に挿入することはできない。この状況で、オブジェクトは、共有構成要素に、データ入力パネル301をエディットコントロール207の上側に、右側にシフトさせた位置にレンダリングするよう指示することができる。より具体的には、オブジェクトは、共有構成要素に垂直方向の負のオフセットを提供し、それによってデータ入力パネル301はエディットコントロール207の上側に配置される。
同様に、データ入力パネル301をエディットコントロールの右側にシフトさせて表示する余裕が十分ない場合、オブジェクトは、共有構成要素に、データ入力パネル301をエディットコントロールの左側にシフトさせて配置するよう指示することができる。例えば、図5に示すように、エディットコントロール203は、作業スペースの境界201の垂直方向部分に近すぎて、データ入力パネル301をエディットコントロール203の右側にシフトさせて表示することができない。代わりに、オブジェクトは、共有構成要素に、データ入力パネル301をエディットコントロール203の左側にシフトさせて配置するよう指示する。つまり、オブジェクトは、共有構成要素に水平方向の負のオフセット値を提供する。従って、データ入力パネル301は、背後にあるエディットコントロール205を完全には隠さない。また、アプリケーションがそのユーザインタフェースの右辺に沿ってエディットコントロールを含んでいる場合、これらのエディットコントロールの右寄せされたタイトルは、本発明のこれらの実施形態に従ってデータ入力パネル301を使用するユーザには依然として部分的に可視である。同様に、データ入力パネル301をエディットコントロールの下側に、左側にシフトさせて表示する余裕が十分ない場合、オブジェクトは、共有構成要素に、図6に示すように、データ入力パネル301をエディットコントロールの上側に、左側にシフトさせて表示するよう指示することができる。
場合によっては、ユーザは、データ入力パネル301を使用してマルチラインエディットコントロールにデータを入力したいことがある。本発明の様々な実施形態によれば、データ入力パネル301を、上記のシングルラインエディットコントロールを基準にして配置したのと同じように、マルチラインエディットコントロールを基準にして配置することができる。しかし、マルチラインエディットコントロールが大きすぎてデータ入力パネル301がマルチラインエディットコントロールの上側または下側に配置できない場合、オブジェクトは、共有構成要素に、データ入力パネル301をエディットコントロール自体の中に配置するよう指示することができる。例えば、挿入ポイント215がマルチラインエディットコントロールの上半分(または作業スペースの上半分)に配置されている場合、オブジェクトは、共有構成要素に、データ入力パネル301をマルチラインエディットコントロールの一番下の位置(または作業スペース内の一番下の使用可能な位置)に配置するよう指示することができる。同様に、挿入ポイント215がマルチラインエディットコントロールの下半分(または作業スペースの下半分)に配置されている場合、オブジェクトは、共有構成要素に、データ入力パネル301をマルチラインエディットコントロールの一番上の位置(または作業スペース内の一番上の使用可能な位置)に配置するよう指示することができる。しかし、当業者にはわかるように、ユーザを混乱させる、またはユーザの作業の流れを妨害するのを避けるために、使用中、データ入力パネル301の動きを最小限に抑えることが有利である。従って、本発明の様々な実施形態では、ユーザが挿入ポイント215をマルチラインエディットコントロールの上半分から下半分に、またはその逆に移動させたときだけデータ入力パネル301を配置し直す。
本発明の様々な実施形態では、上記の自動配置機能は無視または変更できることも当業者であれば理解されたい。例えば、本発明に従ってオブジェクトを使用するソフトウェアアプリケーションを作成している開発者は、自動配置機能を使用不可にして、代わりにアプリケーションを介して呼び出されるデータ入力ユーザインタフェースの代替の位置情報を提供することができる。従って、開発者は、常に関連するコントロールのすぐ上またはすぐ下にデータ入力パネル301を配置することを選択してもよい。または、開発者は、ユーザがデータを特定のコントロールに挿入しているときは、データ入力ユーザインタフェースについて特定の位置となることを好むかもしれない。この構成では、その特定のコントロールに関連付けられているオブジェクトは、ユーザインタフェースの位置およびサイズの正確な値を指定することができる。
本発明のさらに別の実施形態では、オブジェクトは、確実に関連付けられているデータ入力パネル301をエディットコントロールとともに移動させるようにすることができる。例えば、ユーザがポインティング装置を操作することによって移動させることができるウィンドウ内に、一部のエディットコントロールを含む。以下でより詳しく説明する方法を使用して、オブジェクトを介して動作するアプリケーションは、データ入力パネル301に、その関連付けられているエディットコントロールとともに移動するよう指図することができる。この方法によれば、データ入力パネル301は、アプリケーションによって指定された新しい位置に直接移動する。当然、データ入力タブレット301を漸進的に移動させ、従ってデータ入力パネル301の作業スペースにわたる動きを連続的に表示する別の方法を使用することもできる。
(ユーザインタフェースの外観)
データ入力グラフィカルユーザインタフェースのサイズおよび位置を指定することに加えて、本発明の様々な実施形態によるユーティリティオブジェクトは、データ入力グラフィカルユーザインタフェースの外観を指定することもできる。従って、本発明の様々な実施形態によるユーティリティオブジェクトは、共有構成要素が表示されたデータ入力パネル301にどの機能を含むかを決定することができる。
ここで図3に戻ると、データ入力パネル301は、上述したように、異なる2つのデータ入力面を提供することができる。データ入力パネル301は、その図に示すように書き込み面305を表示しているとき、書き込み面305にわたるスタイラスの動きに対応する電子インクを生成する。一方、データ入力パネル301は、キーボード面を表示している場合、ソフトキーボード上で活性化される各キーに対応するテキストの文字を生成する。上述したように、ユーザは、面ボタン317,319を活性化させることによってこれらの面の間を前後に切り換えることができる。しかし、本発明の様々な実施形態では、ユーティリティオブジェクトは、入力フォーカスがコントロールにシフトされたときにデータ入力パネル301が最初に特定の面を表示することを指定することができる。
例えば、アプリケーションは、パスワードや製品の型式番号など、数字および文字のランダムな組合せを受け取るエディットコントロールを含むことができる。この種のデータでは、書き込み面305は、データを入力するのに最適な面ではないことがある。多くの手書き認識器では、ランダムな文字を認識することは困難である。さらに、多くのパスワードエディットコントロールは、そのデータを正確には表示せず、代わりに「*」など単一の文字のみを表示して、傍観者があるユーザのパスワードをうっかり見ることを防ぐようにする。従って、ユーザの手書きが誤って認識された場合、ユーザは、認識結果を見てどの文字が誤って認識されているかを判断することさえできない。本発明の様々な実施形態では、このタイプのエディットコントロールに関連付けられているオブジェクトは、共有構成要素に、最初にキーボード面を表示するよう指示することができる。キーボード面は、ユーザに、ランダムな数字および文字を入力するのにより信頼性の高い技術を提供するためである。
書き込み面305またはキーボード面の最初の表示を指定することに加えて、ユーティリティオブジェクトは、共有構成要素によって表示できる任意の面の最初の表示または永続的な表示を指定することができる。例えば、図7は、アジア言語ユーザが使用するデータ入力パネル701を示す。単一エリアを備える書き込み面305の代わりに、このデータ入力パネル701の書き込み面は、ユーザが単一のアジア言語文字を各エリア703に書き込むことができるように複数の書き込みエリア703を同時に表示する。従って、エディットコントロールがデータをアジア言語文字の形で受信するように構成されている場合、そのエディットコントロールに関連付けられているユーティリティオブジェクトは、共有構成要素がアジア言語のデータ入力パネル701を最初に表示するよう指定することができる。ラテン語書き込み面305に加えて、アジア言語書き込み面をデータ入力パネル301に含めることができることに注意されたい。従って、本発明の一部の実施形態では、ユーザは、アジア言語書き込み面、ラテン語書き込み面305、およびキーボード面の間で切り換えることができる。
さらに別の実施形態では、任意の数の様々な特化された面を使用することができる。例えば、URLアドレスを受信するように構成されているブラウザのエディットコントロールは、文字列「www.」、「.com」、「.net」、「.org」、および「.gov」のキーを含むソフトキーボードの表示を指定することができる。同様に、ユーティリティオブジェクトは、例えばデータ入力パネル301がパスワードや部品の型式番号のランダムな文字をよりよく認識するのを助けるために、ラテン語ユーザ用の分割された書き込み面を有する面の表示を指定することができる。また、ユーティリティオブジェクトは、ユーザインタフェースが電子インクをテキストに変換することなく電子インクを集める面を含むことを指定することもできる。この種の面は、例えばユーザの原本の署名を捕捉するときに有用となり得る。
(データユーザインタフェースの呼出)
データ入力ユーザインタフェースなどのユーザインタフェースの外観または他のプロパティを決定することに加えて、本発明の様々な実施形態によるユーティリティオブジェクトを使用して、ユーザインタフェースがどのように呼び出されるかを制御することもできる。例えば、本発明の一部の実施形態では、アプリケーションからの状況情報に基づいて、ユーティリティオブジェクトは、スタイラスまたはペンがユーティリティオブジェクトに関連付けられているコントロールの境界エリア内をさまよっているかどうかを判断することができる。それに応答して、ユーティリティオブジェクトは、ペンが境界エリアの内側または外側をさまよっているかどうかに従って、共有構成要素に、データ入力ユーザインタフェースを自動的に表示する、または隠すように指示することができる。この境界エリアは、コントロールのまさに境界に接することができる、またはペンが可視のコントロールの境界に近づくだけでよいように、より大きいエリアをカバーするようにすることができる。
さらに、ペン(または他のポインティング装置)が挿入ポイントを含むコントロールの範囲に移動するとき、ユーティリティオブジェクトは、共有構成要素に、データ入力ユーザインタフェースをすぐに、またはわずかの遅延の後で表示するよう指示することができる。遅延によってユーザは、他の隣接するコントロールをターゲットにしているときに、ユーティリティオブジェクトに関連付けられているコントロールにわたって、またはその上をペン(または他のポインティング装置)でドラッグし、その結果、ユーザがユーティリティオブジェクトに関連付けられているコントロールの内側またはその上で瞬間的にペンを持つことによって、データ入力ユーザインタフェースにアクセスしたいことを明示的に示したときにのみ、データ入力ユーザインタフェースが表示されるようにすることができる。本発明の別の実施形態では、ユーティリティオブジェクトは、共有構成要素に、ペンが全表示エリアの範囲内にあるときにのみデータ入力ユーザインタフェースを表示するよう指示し、その結果、ペンが全画面の範囲内にあるときにのみデータ入力ユーザインタフェースが可視になるようにすることができる。
本発明のさらに別の実施形態によれば、ユーティリティオブジェクトは、データ入力ユーザインタフェースを直接呼び出さない。代わりに、ユーティリティオブジェクトは、データ入力ユーザインタフェースをインスタンス化するターゲットを活性化させることができる。より具体的には、共有構成要素を、データ入力ユーザインタフェースを呼び出すターゲットを作成するように構成することができる。または、アプリケーションプログラミングインタフェースなど別の構成要素を使用して、データ入力ユーザインタフェースを呼び出すターゲットを作成することができる。この構成では、ユーティリティオブジェクトは、共有構成要素(または適切な構成要素)に、例えば、ユーザがユーティリティオブジェクトに関連付けられているいくつかの型のコントロールにデータを入力したいときに、データ入力ユーザインタフェースを呼び出すターゲットを作成するよう指示することができる。従って、ターゲットを呼び出すことで、ユーティリティオブジェクトによって、ユーザは、データ入力ユーザインタフェースを連続的に表示させることなく、必要に応じてデータ入力ユーザインタフェースを容易に呼び出すことができるようになる。
さらに、ユーティリティオブジェクト(またはユーティリティオブジェクトをホストしているアプリケーション)は、ペンまたはスタイラス(または他の適切なポインティング装置)の位置に関連するイベントメッセージを監視して、ペンまたはスタイラス(または他のポインティング装置)がデータ入力ユーザインタフェースおよび表示ターゲット上、または一部の実施形態ではその近くをいつ移動したかを決定することができる。それに応答して、ユーティリティオブジェクトは、共有構成要素(または他の適切な構成要素)に、ペン(または他のポインティング装置)がターゲット上またはその近くに配置されている間のみにデータ入力ユーザインタフェースを表示するよう指示することができる。本発明の一部の実施形態では、例えば、データ入力ユーザインタフェース表示ターゲットは、四角形、円形、または他の任意の形状とすることができ、挿入ポイントを含むコントロールの上、下、左、右に、および/またはそれに重なるように配置することができる。また、ターゲットをすぐに、または遅延の後に表示し、次にデータ入力ユーザインタフェースをすぐに、または遅延の後に表示することができる。
(ユーザインタフェースの他の特徴)
本発明の様々な実施形態で使用するデータ入力ユーザインタフェースは、所望の任意のソースから実施できることに注意されたい。例えば、ユーザインタフェースの異なる面を、ユーティリティオブジェクトからの指示に応答してユーザインタフェースをレンダリングする共有構成要素によって提供することができる。または、ユーティリティオブジェクトは、1または複数の面を共有構成要素に提供することができる。さらに、アプリケーションは、1または複数の面をユーティリティオブジェクトに提供し、ユーティリティオブジェクトが、その面を共有構成要素に提供することができる。本発明の一部の例では、共有構成要素は、ユーザインタフェース自体をインスタンス化する実行可能構成要素とすることができる。共有構成要素は、代わりに、複数のユーティリティオブジェクト間でデータパネルの状態情報を共有するよう働く非実行の構成要素とすることができる。さらに、本発明の一部の実施形態では、共有構成要素をまったく除外することができる。こうした実施形態では、ユーティリティオブジェクトは、データ入力グラフィカルユーザインタフェース自体をレンダリングすることができる。
インタフェース面の表示を指定することに加えて、本発明の様々な実施形態では、ユーティリティオブジェクトは、データ入力ユーザインタフェースが任意の特徴を最初に、または永続的に表示することを指定することができる。例えば、データ入力パネル301は、補助キーボードボタン311,313を含む。補助キーボードボタン311が活性化すると、データ入力パネル301は、図8に示すように、数字0〜9、「,」文字、および「.」文字を含む補助キーボード801を表示する。同様に、補助キーボードボタン317が活性化すると、データ入力パネル301は、図9に示すように、様々な記号のキーを含む補助記号キーボード901を表示する。本発明の様々な実施形態では、ユーティリティオブジェクトは、データ入力パネル301がこれらのボタン、またはユーザに便利となり得る任意の追加の補助表示を表示または非表示できるようにすることを指定することができる。
さらに、本発明によるユーティリティオブジェクトは、単にデータ入力ユーザインタフェース内の構成要素の構成を定義することができる。例えば、図10に示すデータ入力パネル301の特徴は、図3に示すデータ入力パネル301のものと逆である。典型的には、この構成は、右手または左手で書き込む際のユーザの好みに基づく。この構成は、ユーティリティオブジェクトによって指定することもできる。
本発明の一部の実施形態では、ユーティリティオブジェクトは、単に共有構成要素に対するデータ入力ユーザインタフェースの特徴を識別するだけである。つまり、オブジェクトは、所定の値を共有構成要素に提供し、次に、共有構成要素は、その特徴に基づいて前もって格納されているユーザインタフェースをレンダリングする。または、上述したように、ユーティリティオブジェクトがインタフェースの一部またはその全体を実行可能構成要素に提供して、ユーザに表示できるようにする。本発明の様々な実施形態によるユーティリティオブジェクトは、その関連するコントロールから離してインスタンス化することはできないことに注意されたい。代わりに、オブジェクトをコントロールに埋め込むことができる。
(ユーティリティオブジェクトの特徴および動作)
(概要)
本発明によるユーティリティオブジェクトの全体的な動作は上述したが、次に、本発明の1または複数の特定の実施形態によるユーティリティオブジェクトの特徴をより詳しく説明する。本発明の一部の実施形態によるユーティリティオブジェクトは、プロパティ、メソッド、およびイベントを含む。上述したように、プロパティは、オブジェクトによって制御されるデータ入力ユーザインタフェースの特徴を定義する。メソッドによってアプリケーションは、例えばユーザによるアクションに応答してデータ入力ユーザインタフェースの特徴を変更することができる。その場合、イベントとは、オブジェクトが応答する、オブジェクトが注目する特定のアクションの発生である。
(プロパティ)
本発明の様々な実施形態によるユーティリティオブジェクトは、AttachedEditWindowプロパティ、Busyプロパティ、およびFactoidプロパティを含むことができる。AttachedEditWindowプロパティは、データ入力パネルが結び付けられるエディットコントロールボックスのウィンドウハンドルを識別し、それによってデータ入力パネルからのデータが不正なエディットコントロールにうっかり送信されないようにする。Busyプロパティは、オブジェクトを使用するアプリケーションによって読み取ることができ、関連するデータ入力パネルが現在インクで書かれているか、インクを認識しているかを識別する。Factoidプロパティは、データ入力パネルの手書き認識にバイアスをかけるファクトイド(factoid)、または1組のヒューリスティックを識別して、特定のコントロールのその精度を向上させる。例えば、ユーザの年齢を受け取るコントロールに関連付けられているファクトイドは、文字より数字として入力電子インクを認識するようにデータ入力パネルにバイアスをかけることができる。
ユーティリティオブジェクトは、Heightプロパティ、Widthプロパティ、HorizontalOffsetプロパティ、およびVerticalOffsetプロパティを含むこともできる。上述したように、HorizontalOffsetプロパティおよびVerticalOffsetプロパティは、アプリケーションによってエディットコントロールを基準にして、データ入力パネルの位置を定義するよう設定することができる。HorizontalOffsetプロパティのデフォルト値は、1インチ(2.54cm)の1/16に相当するピクセルとすることができ、VerticalOffsetプロパティのデフォルトの値は、0.25インチ(0.635cm)に相当するピクセルとすることができる。これらのプロパティのそれぞれは、アプリケーションが読み取り、書き込むことができる。Heightプロパティは、アプリケーションにテキストパネルユーザインタフェースの高さを提供する。本発明の様々な実施形態では、様々なディスプレイの解像度に適したパネルの一貫した外観サイズを維持するために、Heightプロパティのデフォルトの値を、例えば、96dpiのディスプレイでは157ピクセル、120dpiのディスプレイでは196.25ピクセル、133dpiのディスプレイでは217.51ピクセルとすることができる。同様に、Widthプロパティは、アプリケーションにデータ入力パネルの幅を提供する。本発明の一部の実施形態では、様々なディスプレイの解像度に適したパネルの一貫した外観サイズを維持するために、Widthプロパティのデフォルトの値を、96dpiのディスプレイでは570ピクセル、120dpiのディスプレイでは712.5ピクセル、133dpiのディスプレイでは789.7ピクセルとすることができる。本発明の一部の実施形態では、アプリケーションがHeightプロパティまたはWidthプロパティを変更することはできないが、本発明のさらに別の実施形態では、代わりにアプリケーションが片方または両方のプロパティを変更することができる。
ユーティリティオブジェクトは、さらに、アプリケーションにデータ入力パネルの左縁の水平方向の位置を提供するLeftプロパティ、およびアプリケーションにデータ入力パネルの上縁の垂直方向の位置を提供するTopプロパティを含むことができる。また、ユーティリティオブジェクトは、入力パネルの可視状態を取り出す、または設定するVisibleプロパティを含むこともできる。従ってアプリケーションは、表示されるデータ入力パネルを表示したい、または隠したい場合、Visibleプロパティの値を変更することができる。典型的には、このプロパティのデフォルトの値は、データ入力パネルを表示せず、ユーザがスタイラスを使用してフォーカスをその関連するエディットコントロールにシフトして、そのエディットコントロールに挿入ポイントを配置したときにのみ変わるが、Visibleプロパティによってアプリケーションは、ユーザがペンでエディットコントロール内に挿入ポイントを配置することによって、入力フォーカスをエディットコントロールに変更したかどうかに関係なく、パネルが可視であるかを明示的に制御できるようになる。このデフォルトの値を使用して、複数のデータ入力パネルが同時に表示されるのを防ぐこともできる。しかし、本発明の代替実施形態では、ユーティリティオブジェクトによって、複数のデータ入力パネルを同時に表示させることもできる。
上記に示したプロパティに加えて、ユーティリティオブジェクトは、DefaultPanelプロパティおよびCurrentPanelプロパティを有することもできる。DefaultPanelプロパティは、デフォルトでデータ入力パネルにどの面が表示されるかを決定し、CurrentPanelプロパティは、データ入力パネルにどの面が現在表示されているかを決定する。特化されたパネルに使用できるパネル値は、多種多様であるが、(キーボード面および書き込みパッド面を有する)本発明の実施形態の例では、4つの可能なパネル値がある。
第1のパネル値、Default値は、DefaultPanelプロパティのみに提供され、データ入力パネルが最初に適切な入力言語用のデフォルトの手書き面で開始し、次にオブジェクトインスタンスの残りの寿命の間ユーザが選択する任意の面を保持することを指定する。第2のパネル値、Inactive値は、オブジェクト自体によってCurrentPanelプロパティのみに割り当てられ、アプリケーションによってのみ読み取ることができる。この値は、データ入力パネルが使用不可であることを示す。これは、別のデータ入力パネルに関連付けられているコントロールに現在フォーカスがある場合に起こり得る。第3のパネル値、Handwriting値は、CurrentPanelプロパティおよびDefaultPanelプロパティの両方に割り当てられ、そこから読み取ることができる。このパネル値は、共有構成要素に、データ入力パネルが表示されるときに適切な入力言語用の手書き面を表示させる。同様に、第4のパネル値、Keyboard値は、CurrentPanelプロパティおよびDefaultPanel値の両方に割り当てられ、そこから読み取ることができる。Keyboardパネル値は、共有構成要素に、データ入力パネルが表示されるときに適切な入力言語用のキーボード面を表示させる。
上述したプロパティに加えて、本発明の様々な実施形態によるオブジェクトは、データ入力グラフィカルユーザインタフェースの特徴を設定する所望の任意のプロパティを含むことができることを理解されたい。例えば、あるオブジェクトは、特定の認識辞書、入力手書きの認識にバイアスをかけるファクトイド・ヒューリスティック、一般的な、または特定のコントロールに挿入されるテキストを認識するための特定の認識エンジンの使用、またはユーザが新しい手書きを入力するのをやめるのを待つことなくユーザインタフェースが入力手書きの背景認識を行うようにする命令など、ユーザインタフェースに1または複数の認識コンテキストの特徴を指定するプロパティを含むことができる。さらに、オブジェクトは、ユーザインタフェースに、認識されたテキストを戻すための割り当てられた認識タイムアウト値、特定の電子インクの濃さまたは色を使用する、またはキーボード面の所望のキーを強調表示させるプロパティを含むことができる。オブジェクトのプロパティまたはメソッドは、入力パネルがインクを直接コントロールに挿入する、またはすでにコントロールに挿入されているインクにアクセスできるようにすることができる。また、オブジェクトは、データ入力パネルに複数行を書き込み面に表示させる、ユーザが自発的にデータ入力パネルを閉じるかどうかを決定する、またはアプリケーションにデータ入力パネルの状況(すなわち、パネルが使用中であるか、パネルが電子インクを含んでいるかなど)を知らせるプロパティを含むこともできる。
上述した種類の1または複数のプロパティは、コントロール自体に埋め込むことができることにも注意されたい。例えば、アプリケーションは、社会保障番号を受けるリッチエディットコントロールに入力されたデータが、文字に優先して数字が認識されるよう手書きの認識にバイアスをかけるファクトイドを使用して認識されるよう指定することができる。本発明の様々な実施形態では、こうした任意のプロパティを、関連付けられたオブジェクトによって使用するのではなく、特定のコントロールに埋め込むことができる。また、アプリケーションは、ユーティリティオブジェクトを内部で使用するコントロールを含むことができ、オブジェクトのアプリケーションプログラミングインタフェースを、それ自体のアプリケーションプログラミングインタフェース上で見えるようにする、または見せないようにすることができる。しかし、この種のコントロールは、たとえ個別のユーティリティオブジェクトを使用していても、入力フォーカスを受信したときに依然として入力パネルを表示する。
(メソッド)
上述したプロパティに加えて、本発明の様々な実施形態によるユーティリティオブジェクトは、いくつかのメソッドを実行することができる。例えば、ユーティリティオブジェクトは、共有構成要素に、待ち状態の任意の手書きに対して手書き認識をすぐに実行し、認識結果を結び付けられているエディットコントロールに送信するよう要求するCommitPendingInputメソッドを実行することができる。共有構成要素は、典型的には、ある事前設定されたタイムアウト期間の後で、手書き認識を自動的に実行するので、アプリケーションがCommitPendinglnputメソッドを使用して、直接入力を認識させ、送らせるようにする。また、オブジェクトは、ユーザがその結び付けられているエディットコントロールから入力フォーカスを離しつつあることを検出したとき、またはアプリケーションがシャットダウンされつつあることを検出したとき、このメソッド自体を使用することもできる。
また、ユーティリティオブジェクトは、コントロールの入力フォーカスがスタイラスを使用して設定されているときに、データ入力パネルが表示されるかどうかを指定するブール値を設定または取り出すAutoShowメソッドを含むこともできる。従って、AutoShowメソッドを使用して、ユーザがペンまたはスタイラスを使用して結び付けられているコントロールにフォーカスを設定したとき、データ入力パネルの活性化を不能にすることができる。つまり、AutoShowメソッドを使用して、アプリケーションがVisibleプロパティの値を変更するときにのみデータ入力パネルが確実に可視になるようにすることができる。ユーティリティは、データ入力パネルの位置を固定画面位置に設定するMoveToメソッド、および初期化時にも読み取られるデータ入力パネル設定値を共有構成要素に更新させるRefreshメソッドを実行することもできる。
また、アプリケーションが、Microsoft WINDOWS(登録商標)ブランドのXP Tablet PC Edition オペレーティングシステムなど、テキストサービスフレームワークを提供するオペレーティングシステムとともに使用されている場合、ユーティリティオブジェクトは、リッチエディットコントロールまたはインクエディットコントロール(つまりテキストサービスフレームワークをサポートするエディットコントロール)に関連付けられたときにEnableTextServicesFrameworkメソッドを実行することができる。当業者にはわかるように、テキストサービスフレームワークは、様々なメタデータをテキストに関連付けることができる。例えば、テキストが手書きまたは音声から認識された場合、そのテキストは別の認識選択を有する。アプリケーションがテキストサービスフレームワークをサポートしている場合、アプリケーションがテキストを受信したとき、そのテキストに関連付けられている任意のメタデータも受信し、維持する。従って、このメソッドを実行することによって、共有構成要素に、結び付けられているコントロール上で適切なテキストサービスフレームワーク(Microsoft WINDOWS(登録商標)ブランドのXP Tablet PC Edition オペレーティングシステムとともに使用するCommon Text Frameworkなど)を開始するよう指示する。
修正機能の提供とともに、テキストサービスフレームワークを使用して、認識された入力データが確実にその宛先エディットコントロールと正確に一致するようにすることもできる。より具体的には、リッチエディットコントロールまたはインクエディットコントロールがCommon Text Frameworkを呼び出したとき、Common Text Frameworkは、認識されたテキストをコントロールと関連付けるための、その後認識されるテキストのメタデータを作成する。従って、入力フォーカスがコントロールからシフトされた後でさえ、Common Text Frameworkは、認識されたテキストをコントロールと一致させ、認識されたテキストが確実にコントロールに挿入されるようにすることができる。
しかし、Common Text Frameworkでは、オブジェクトは、リッチエディットコントロールに、Common Text FrameworkへのOLEインタフェースを要求するよう指示するメッセージを送信する必要がある(つまりリッチエディットコントロールは、COMインタフェースへのポインタにCOMの特徴にアクセスするよう要求する必要がある)ことに注意されたい。本発明の一部の実施形態では、このメッセージを、自動的に実行するのではなく、EnableTextServicesFrameworkメソッドで実行する。何故ならば、オブジェクトがリッチエディットコントロールに結び付けられていない場合、メッセージには意味がなく、望ましくない結果を引き起こす可能性があるからである。しかし、本発明の代替実施形態では、ユーティリティオブジェクトは、コントロールまたはウィンドウのクラス名を検査し、識別されたクラス名に基づいて自動的にメッセージを送信することができる。
上述のメソッドに加えて、本発明の様々な実施形態とともに追加で、またはその代わりに他のメソッドを使用することができる。従って、アプリケーションがそれ自体のデ―タ入力パネルを備えるオペレーティングシステムによって実行されている場合、ユーティリティオブジェクトは、そのシステムデータ入力パネルに関連する様々なメソッドを実行することもできる。例えばオブジェクトは、システムデータ入力パネルの現在の可視性を決定するメソッドを呼び出し、システムデータ入力パネルの可視状態を設定し、オブジェクトに関連付けられているデータ入力パネルがどのようにシステムデータ入力パネルと対話するかを制御することができる。
(イベント)
上述したメソッドおよびプロパティに加えて、本発明の様々な実施形態によるユーティリティオブジェクトは、様々なイベントを監視することができる。例えば、ユーティリティオブジェクトは、オブジェクトがユーザ入力をその結び付けられているコントロールに挿入する前、入力フォーカスが変わったときに起きるInputFailedイベントを監視することができる。以下で詳しく説明するように、InputFailedイベントを使用して、認識されたテキストがエディットコントロールに適切に引き渡されていないことをアプリケーションに警告することができる。また、オブジェクトは、データ入力パネルの面が変わったときに起きるPanelChangedイベント、およびデータ入力パネルが移動しているときに起きるPanelMovingイベントを監視することもできる。また、(パネルが画面上のその位置を再計算したとき、およびアプリケーションがMoveToメソッドを呼び出したときに実行される)PanelMovingイベント中に渡される値を変更することによって、アプリケーションがユーザインタフェースの左上の座標を無視することができることに留意されたい。ユーティリティオブジェクトは、データ入力パネルが表示から非表示、およびその逆に変わったときに起きるVisibleChangedイベントを監視することもできる。さらに、本発明の様々な実施形態によるオブジェクトは、インクストロークが認識され、テキストに変換される前に実行するイベントを含むことができる。このイベントによって、アプリケーションは、認識される前にインクを捕捉でき、その結果、例えばその元の形でインクを受信し、またはインクを別の認識エンジンに提供できるようになる。
(代替のアプリケーションプログラミングインタフェースとの使用)
本発明の一部の実施形態は、一般にMicrosoft WINDOWS(登録商標)ブランドのXP Tablet PC Edition オペレーティングシステムとの関連で説明しているが、本発明の様々な実施形態を、様々なソフトウェア環境で使用できることを理解されたい。特に、本発明によるユーティリティオブジェクトをCOM環境で使用することができる。COM環境では、ユーティリティオブジェクトをGUID(つまりデータ入力ユーザインタフェースを作成する共有構成要素)に関連付けられているダイナミックリンクライブラリと関連付けることができる。アプリケーションがインスタンス化されたとき、Microsoft WINDOWS(登録商標)ブランドのXP Tablet PC Edition オペレーティングシステムは、例えばレジストリを見て、そのアプリケーションに関連付けられているダイナミックリンクライブラリを見つける。次に、オペレーティングシステムは、ダイナミックリンクライブラリに含まれている関数を呼び出し、ダイナミックリンクライブラリは、COMインタフェースを介して共有構成要素を呼び出す。また、COM環境では、例えば、オブジェクトはウィンドウハンドルを介してコントロールに結び付ける。同様に、データ入力パネルの外観を自動化オブジェクトをラップするクラスに連動させることにより、本発明にかかるユーティリティオブジェクトを.NET環境で使用することができる。しかし、上述したように、本発明の様々な実施形態によるユーティリティオブジェクトを、適した任意の動作環境で使用することができる。
(オブジェクトのアプリケーションとの動作)
(アプリケーションによるオブジェクトのインスタンス化)
次に、本発明の様々な実施形態によるユーティリティオブジェクトの動作を、図11A、11B、12との関連で説明する。図12で示す構成の例に示すように、アプリケーション1201は、3つのコントロール1203、1205、1207を含む。ユーティリティオブジェクト1209は、コントロール1203に結び付けられる。同様にユーティリティオブジェクト1211は、コントロール1205に結び付けられる。ユ―ティリティオブジェクト1213は、コントロール1207に結び付けられる。第2のアプリケーション1215は、コントロール1217およびコントロール1219を含む。本発明による様々な実施形態によるユーティリティオブジェクトは、コントロール1217およびコントロール1219に結び付けられる。ユーティリティオブジェクト1209、1211、1213、1221のそれぞれは、共有構成要素1223とのインタフェースをとる。つまり、オブジェクト1209、1211、1213、1221のそれぞれは、単一の共有構成要素1223の使用を共有する。上述したように、共有構成要素1223は、ユーティリティオブジェクト1209、1211、1213、1221によって提供されるプロパティ値に基づいて、データ入力グラフィカルユーザインタフェースを作成する。実施形態の例では、共有構成要素1223は、図3に示したデータ入力パネルを作成するが、本発明の代替実施形態では、共有構成要素が他の種類のユーザインタフェースを作成できることを理解されたい。
図11を参照すると、ユーザがデータをコントロール1203に入力しようとしたとき、オブジェクト1209は、コントロール1203がオペレーティングシステムから入力フォーカスを受信しつつあると判断する。それに応答して、共有構成要素1223は、ステップ1101で、オブジェクト1209から呼出を受け取る。これには、オブジェクト1209によって定義されるプロパティ値が含まれている。これらの値を使用して、共有構成要素1223は、ステップ1103でユーザがそれを介してデータをコントロール1203に入力できるデータ入力パネルを表示する。実施形態の例では、オブジェクト1209のDefaultPanelプロパティの値はDefaultであり、この例では、最初は書き込み面である。従って、共有構成要素1223は、書き込み面305を含むデータ入力パネルを表示する。
共有構成要素1223は、入力フォーカスが新しいコントロールにシフトしたと判断したとき、そのコントロールの識別を格納することに注意されたい。この識別を使用して、共有構成要素1223は、そのコントロールが入力フォーカスを有する間に受信された電子インクをコントロールに関連付けることができる。前のコントロールに関連付けられている電子インクが依然として認識されている間に入力フォーカスがその後新しいコントロールにシフトした場合、共有構成要素1223は、認識されたインクを適切なコントロールに引き渡すことができないと判断する(しかし、上述したように、結び付けられたコントロールに対してCommon Text Frameworkが呼び出された場合、フォーカスがコントロールを離れた後でさえ、データ入力パネルは、手書きの結果をコントロールに送信することができる)。従って、共有構成要素1223は、認識されたテキストとともに、InputFailedイベントをアプリケーションに発行する。このことによって、アプリケーションは、認識されたテキストを適切なコントロールに経路指定して戻すことができる。
ユーザは、データを別のコントロールに入力したいとき、入力フォーカスをコントロール1203から所望のコントロールにシフトする。例えば、ユーザは、データをコントロール1217に入力したい場合、コントロール1217の境界内でスタイラスをタップして挿入ポイントを置くことにより、フォーカスをこのコントロールに変更する。ステップ1105において、共有構成要素1223は、フォーカスがコントロール1203からコントロール1217に変わろうとしていると判断する。ステップ1107において、共有構成要素1223は、フォーカスを受信しつつあるコントロールに関連付けられているオブジェクトのDefaultPanelプロパティの値(つまりオブジェクト1221のDefaultPanelプロパティの値)もDefaultであるか否かを判断する。今度のオブジェクトのDefaultPanelプロパティの値がDefaultではない場合、共有構成要素1223は、データ入力パネルの現在の状態をキャッシュする。この例では、オブジェクト1221のDefaultPanelプロパティの値は代わりにKeyboardである。従って、ステップ1109で、共有構成要素1223は、DefaultPanelプロパティの現在の値をキャッシュする。しかし、オブジェクト1221のDefaultPanelプロパティの値もDefaultであった場合、動作は何も起こらない。
オブジェクト1221は、共有構成要素1223の制御権を握っているとき、共有構成要素1223に、最初にキーボード面を表示するデータ入力パネルをユーザに提供するようにさせる。その後、ユーザが入力フォーカスをまた別のコントロール、例えばコントロール1207などに変更したくなったとき、共有構成要素1223は、再度フォーカスの変更を検出し、以前キャッシュされていたDefaultPanelプロパティの値(依然として書き込み面)を取り出し、復元する。従って、以前表示された書き込みパッドが復元される。次に、共有構成要素1223は、ステップ1107に戻ってDefaultPanelプロパティの値がDefaultであるかどうかを判断する。この場合、コントロール1207のDefaultPanelプロパティもDefaultであるため、共有構成要素1223は動作を何も起こさず、コントロール1207は、データ入力パネルの外観を現在の状態のままにしておく。従って、Default値は単に、現在のパネル種別は、何であろうと、共有構成要素1223が新しいパネル種別を受け取るのに応答してキャッシュされ、入力フォーカスが再度変更されたとき復元される。
(共有構成要素の使用)
詳しく説明したように、各ユーティリティオブジェクトは、単一の共有構成要素を使用して、ユーザインタフェースの動作を制御する。従って、各オブジェクトは、単一の共有構成要素と通信し、それに応答して情報を受け取る。例えば、本発明の一部の実装形態では、オブジェクトおよび共有構成要素は、Microsoft WIN32 アプリケーションプログラミングインタフェースを使用して、異なるソフトウェアプロセスにわたって情報を交換することができる。このアプリケーションプログラミングインタフェースを使用して、オブジェクトは、タスクを実行する命令で、イベント「ハンドル」または他の参照を構成要素に渡し、共有構成要素がイベントをそのタスクの完了を示すように「設定」したときを識別する。その代わりに、またはそれに加えて、オブジェクトは、返事としてデータ付きメッセージ(例えばデータ入力パネルの状態など)を提供するよう共有構成要素に要求する命令を共有構成要素に提供することができる。さらに別の通信技術および方法を使用して、本発明の異なる実施形態によるオブジェクトと共有構成要素の間で通信することができる。
図13に、本発明の様々な実施形態で使用できる様々なオブジェクトと共有構成要素の間の代表的な1つの関係を示している。この図に示すように、ソフトウェアアプリケーション1301は、様々なオブジェクト1303を使用することができる。同様に、別のソフトウェアアプリケーション1305は、1または複数のオブジェクト1307を使用することができる。実施形態の例では、例えば、オブジェクト1303,1307は、それぞれのソフトウェアアプリケーション1301,1305によって作成されたCOMオブジェクトとすることができる(ソフトウェアプロセスによって維持されたオブジェクトは、ソフトウェアプロセスに関連して「インプロセス(in-process)」オブジェクトと呼ばれることもある)。しかし、本発明の様々な代替実施形態は、COM技術を使用しないソフトウェアオブジェクトを含めて、このタイプの関係の他のタイプのオブジェクトを使用することもできる。
各オブジェクト1303,1307は、共有構成要素1309と通信する。これは本発明の一部の実施形態に従ってCOM技術を使用して実装することもできる。起動中、各オブジェクト1303,1307は、共有構成要素1309をインスタンス化する。例えば、オブジェクト1303、オブジェクト1307、および共有構成要素1309がCOM技術を使用して実装されたとき、オブジェクト1303,1307は、「CoCreate Instance」操作を行い、共有構成要素1309をインスタンス化することができる。共有構成要素1309は複数のオブジェクト間で共有することができるので、共有構成要素1309がすでに実装されている場合は、それに応答して既存の共有構成要素1309への参照がオブジェクトに提供される。または、共有構成要素1309がすでに存在していない場合、共有構成要素1309が作成される。図13に示す関係では、共有構成要素1309のインタフェースに対してメソッド(または関数)の呼出1311を行うことによって、各オブジェクト1303,1307は、共有構成要素1309と対話する。次に、共有構成要素1309は、イベント1313をオブジェクト1303,1307に戻す。
図13に示す関係によってオブジェクト1303,1307は、共有構成要素1309と直接通信できるようになるが、場合によってはこの特定の構成によってエラーがもたらされることがある。例えば、オブジェクト1303またはオブジェクト1307から共有構成要素1309への各呼出は同期であり、従ってコントロールが呼出側オブジェクト1303またはオブジェクト1307に戻される前に完了していなければならない。従って、オブジェクトからの呼出に対応する任意のイベントを共有構成要素1309により設定して、コントロールが呼出側オブジェクト1303またはオブジェクト1307に戻される前にその呼出の完了を確認する必要がある。従って、共有構成要素1309がイベントを実行した場合、そのイベントの受信側オブジェクトの処理の遅延によって、共有構成要素1309がまったく応答しなくなる可能性がある。例えば、アプリケーション1305は、共有構成要素1309からイベントを受け取るインタフェースを使用して、メッセージボックスを表示することができる。ユーザがメッセージボックスを消すまで、共有構成要素1309は、イベントへの応答が戻るのを待つ間、使用不可である。従って、データ入力パネルは、ユーザがメッセージボックスを消すまで使用することができないことになる。
また、この種のクロスプロセス(cross-process)呼出(両方向に進む)を行うことによって、再入可能な関数の呼出を引き起こし、その結果、予測できない振る舞いがもたらされるおそれがある。例えば、オブジェクト1303またはオブジェクト1307が共有構成要素1309に対してメソッドを呼び出すとき、共有構成要素1309は、それに応答してメソッドを実行して、共有構成要素1309がそれ自体外部のプロセス外(out-of-process)オブジェクトへの呼出を行うようになる。従って、COM技術を使用して共有構成要素1309が実装された場合、標準のAddRefメソッド、Releaseメソッド、またはQueryInterfaceメソッド、または外部ソフトウェアプロセスによって実施される他の任意のメソッドへの呼出を行うことができる。共有構成要素1309が外部ソフトウェアプロセスに対するメソッドへのこうした呼出を行っている間、オブジェクト1303および1307の一方など異なるオブジェクトにより、共有構成要素1309への他の呼出を行うことができる小さい時間枠が存在する。この「再入」の結果として、共有構成要素1309への呼出の順序は、適切には同期されないことがある。従って、共有構成要素1309に入ってくる呼出は、共有構成要素1309に入ってくる他の呼出によって割り込まれることがある。この再入によって、割り込まれる前に呼出が適切に完了しないとき、状態の問題がもたらされることがある。さらに、イベントは、呼出が処理される速度に影響を与えるランダムな環境要因によって予測できない順序で受信される可能性があるので、共有構成要素1309によって実行されたイベントは、決定的ではない。
従って、本発明の様々な実施形態として、図14および図15に示す構成の例を使用する。図14に示すように、オブジェクト1303,1307は、呼出を直接共有構成要素1309に送信しない。代わりに各オブジェクト1303,1307は、対応するプロキシまたは「スタビー(stubby)」構成要素1401に呼出を送信する。例えば、オブジェクト1303Aは、プロキシ構成要素1401Aに呼出を送信し、オブジェクト1303Bは、プロキシ構成要素1401Bに呼出を送信する。同様に、オブジェクト1303Cは、プロキシ構成要素1401Cに対して呼出を行い、オブジェクト1307は、プロキシ構成要素1401Dに対して呼出を行う。
この構成を使用する本発明の様々な実施形態では、オブジェクト1303,1307は、もはや共有構成要素1309を直接インスタンス化しない。代わりに、オブジェクト1303またはオブジェクト1307は、単一のプロキシ構成要素1401をインスタンス化することができ、プロキシ構成要素1401は、それを呼び出すオブジェクト1303またはオブジェクト1307の専用となる。作成された最初のプロキシ構成要素1401は、次に共有構成要素1309が存在するかどうかを判断し、すでに存在していない場合は共有構成要素1309をインスタンス化することができる。同様に、破棄すべき最後のプロキシ構成要素1401は、共有構成要素1309が存在しなくなる前にそれを解放することができる。最初に作成されたプロキシ構成要素1401と最後に破棄されるプロキシ構成要素1401との間にインスタンス化されたプロキシ構成要素1401は、単に、以前作成された共有構成要素1309を発見し、使用するだけである。本発明の様々な実施形態によれば、プロキシ構成要素1401は、単一のCOMオブジェクトなど、単一のオブジェクトでよい。図14に示すように、プロキシ構成要素1401は、アプリケーション1301,1305、および共有構成要素1309のプロセスの間の複数プロセス境界の反対側のオブジェクト1303および1307への1対1のマッピングを有する。より具体的には、図14では、プロセス境界を破線で表しており、オブジェクト1303,1307とプロキシ構成要素1401の間の1対1マッピング、およびプロキシ構成要素1401と共有構成要素1309の間の多対1マッピングは、一点鎖線で表している。
図15は、オブジェクトおよび共有構成要素をより詳しく示している。この図からわかるように、オブジェクト1303のそれぞれは、アプリケーション1301によって維持されるメッセージキューからメッセージを受信するメッセージの宛先1501を含む。同様に、各オブジェクト1307は、アプリケーション1305によって維持されるメッセージキューからメッセージを受信するメッセージの宛先1503を含む。メッセージの宛先1501および1503のそれぞれは、例えば、Microsoft WINDOWS(登録商標)ブランドのオペレーティングシステムを使用して実施される隠しウィンドウ表示ユーザインタフェース(hidden windowed user interface)、または他のタイプのユーザインタフェースでよい。より具体的には、Microsoft WINDOWS(登録商標)ブランドのオペレーティングシステムを使用して実施されるウィンドウ表示ユーザインタフェース(および他のタイプのユーザインタフェース)は、ユーザインタフェースをホストしているアプリケーションによって維持されるメッセージキューからメッセージを受信するためのメッセージアドレスを提供する。ホストしているアプリケーションがこれらのアドレスを使用して、例えば入力データ(キーボードからの文字データやポインティング装置からの位置データなど)を適切なユーザインタフェースに送信する。従って、隠しウィンドウ表示ユーザインタフェースのメッセージアドレスを、メッセージの宛先1501として使用することができる。しかし、本発明の代替実施形態では、アプリケーションのメッセージキューからメッセージを受信する他の技術も使用できることを理解されたい。
同様に、共有構成要素1309もメッセージの宛先1505を含む。メッセージの宛先1505は、例えば、共有構成要素1309に関連付けられているデータ入力パネルユーザインタフェースによって提供することができる。本発明の一部の実施形態では、メッセージの宛先1505は、共有構成要素1309自体によって維持されているメッセージキューからメッセージを受信することができ、しかし、本発明の他の実施形態では、メッセージの宛先は、他のリソースによって維持されているメッセージキューからメッセージを受信することができる。以下でさらに詳しく説明するように、メッセージの宛先1505を使用して、アプリケーションによって使用されるメソッドの呼出が確実に同期して振る舞うようにすることができる。つまり、メッセージの宛先1505を使用して、応答が呼出元に戻される前、または処理が別のメソッドの呼出に取りかかる前に各メソッドの呼出が確実に完了するようにすることができる。
オブジェクト1303またはオブジェクト1305、例えばオブジェクト1303Cは、メソッドの呼出を共有構成要素1309に対して行うべきであると判断すると、メソッドの呼出の状態の追跡に使用できるイベントを定義することができる。例えば、オブジェクト1303CがMicrosoft WINDOWS(登録商標)ブランドのオペレーティングシステム環境で動作している場合、オブジェクト1303Cは、上述したようにWin32イベントを作成することができる。次にオブジェクト1303Cは、その対応するプロキシ構成要素1401Cから所望のメソッドを要求する。プロキシ構成要素1401Cに呼出を行う際、オブジェクト1303Cは、作成されたイベントのハンドル(または他の識別する参照)を、メソッドの呼出に適切な他の任意のパラメータとともにプロキシ構成要素1401Cに渡す。また、オブジェクト1303Cは、そのメッセージの宛先1501Cを識別するハンドル(または他の識別する参照)を共有構成要素1309に渡す。
メソッドの呼出の受信に応答して、プロキシ構成要素1401Cは、メッセージの呼出を中継するメッセージを共有構成要素1309のメッセージの宛先1503に書き込む。また、イベントハンドルを複写して、そのメソッドの呼出に対応するイベントに対する制御を共有構成要素1309に与えるために、イベントハンドル(またはその複写)を共有構成要素1309に渡す。メソッドの呼出の実行に必要なすべてのパラメータは、一緒にパックされて、イベントハンドルおよび呼出メッセージとともに、パラメータとして共有構成要素1309に送信できるようにする。有利なことに、この構成によって複数のプロキシ構成要素1401は、対応するオブジェクト1303,1307からメッセージの呼出が受信されるどんな順序でも、メソッドの呼出を要求するメッセージを共有構成要素1309のメッセージの宛先1503に書き込むことができる。このメッセージキューを使用して、共有構成要素1309は、オブジェクト1303,1307から受信される順序で呼出を処理することができる。さらに、プロキシ構成要素1401に渡される任意のインタフェースを、メソッドを呼び出すメッセージが共有構成要素1309のインタフェース1505のメッセージキューに書き込まれた後でのみ、共有構成要素1309によって使用することができる。従って、共有構成要素1309は、メッセージがメッセージキューに書き込まれる前はメッセージの呼出に「気づか」ず、それによって、再入が回避され、共有構成要素1309が適切なデータを使用して確実にメソッドの呼出を実行するようになる。メソッドを要求するメッセージがインタフェース1505に書き込まれると、プロキシ構成要素1401は、呼出側オブジェクト1303または1307に実行を戻す。
プロキシ構成要素1401からの実行コントロールの受信に応答して、オブジェクト1303またはオブジェクト1307は、呼び出されたメソッドが完了するのを待つ。例えば、オブジェクト1303またはオブジェクト1307がCOMオブジェクトの場合、CoWaitForEventを発行して、別の関数を続ける前に定義されたイベントが共有構成要素1309によって戻される(または「設定される」)のを待つことができる。このプロセスは、所望のメソッドを同期して実行しなければならないときに使用できることに注意されたい。例えば、オブジェクト1303またはオブジェクト1307が単に情報の目的のために出来事を共有構成要素1309に通知するだけの場合、イベントの作成、およびその後のイベントが設定されることを待つことは省くことができる。
共有構成要素1309は、メッセージの宛先1505に送信されるメッセージを順番に処理し、各メソッドをメッセージキュー内の要求の順序で実行する。例えば、共有構成要素1309がCOM技術を使用して実装されている場合、メッセージは、GetMessage操作を使用してメッセージキューから抽出することができる。従って、この例では、共有構成要素1309は、プロキシ構成要素1401Cによって書き込まれたメッセージに到達したとき、要求されたアクションを実行する。また、該当する場合、要求されたアクションを実行した後、共有構成要素1309は、対応する通知メッセージを、実行されたメソッドの結果とともにオブジェクト1303Cのメッセージの宛先1501Cに書き込む。例えば、共有構成要素1309は、COM技術を使用して実装される場合、PostMessageプロセスを使用してメッセージの宛先1501Cに通知メッセージを書き込む。様々な技術を使用してメッセージをメッセージの宛先1501,1503に書き込むことができることを理解されたい。例えば、Microsoft WINDOWS(登録商標)ブランドのオペレーティングシステムWIN32メッセージング技術を使用した場合、ATOMを使用して、標準のWPARAMパラメータおよびLPARAMパラメータで渡すことができないデータをコード化して、COMオブジェクトのクロスプロセスの性質によって作成されるマーシャルデータに関する問題を避けることができる。メソッド結果をオブジェクト1303またはオブジェクト1307に直接提供するのではなく、通知メッセージをメッセージの宛先1501(またはメッセージの宛先1503)に書き込むことによって、再入状況が回避され、シングルトンによってオブジェクト1303またはオブジェクト1307に送信されるイベントの順序が確実にオブジェクト1303またはオブジェクト1307によってなされたメソッドの呼出の順序に対応するようになる。
さらに、共有構成要素1309は、実行されたメソッドに対応するイベントを、要求されたメソッドが完了したことを示すように設定する。共有構成要素1309は、(以前通過されたイベントハンドルによって与えられた)イベントを設定するとき、イベントを定義したオブジェクト1303またはオブジェクト1307を解放し、それによってオブジェクト1303またはオブジェクト1307が、メソッドを呼び出したところから処理を再開することができる。例えば、オブジェクト1303またはオブジェクト1307は、メソッドの呼出から戻される情報を期待する場合、メソッドの呼出に対応するイベントが設定されていることを検出した後、期待された情報があるかどうかについてメッセージキューをチェックする。
本発明の様々な実施形態では、オブジェクト1303またはオブジェクト1307がイベントを作成するのを省くことができることに注意されたい。例えば、一部のタイプのメソッドの呼出では、オブジェクト1303またはオブジェクト1307は、応答を期待することなく、単に共有構成要素1309に情報を書き込みたいだけの場合がある。さらに、本発明の一部の実施形態では、オブジェクト1303またはオブジェクト1307は、メッセージをメッセージの宛先1505に書き込むことなく共有構成要素1309にメッセージの呼出を行うことができる。例えば、本発明の一部の実施形態によって、オブジェクト1303またはオブジェクト1307がデータ入力パネルの状態について(例えば、データ入力パネルがビジーかどうかについての問合せなど)共有構成要素1309に尋ねることができる。このタイプのメソッドの呼出は迅速に処理され、それによって再入力の機会が低減され、有用となるように呼出側オブジェクト1303または1307によってすぐに返事が受信されなければならないので、この種の呼出を、対応するメッセージを共有構成要素1309のメッセージの宛先1505に書き込むことなく、共有構成要素1309に直接渡すことができる。
(結論)
本発明は、本発明を実行するのに現時点で好ましい様式を含む特定の例に関連して説明してきたが、上述したシステムおよび技術の変形および置換が多数あることを当業者であれば理解できよう。例えばデータ入力グラフィカルユーザインタフェースは、上述の本発明の様々な実施形態によるユーティリティオブジェクトを介して個々のソフトウェアアプリケーションによって制御できるが、本発明の代替実施形態では、データ入力パネルの特徴を他のソース、例えばシステム全体にわたる挿入ポイントの位置などによって決定することができる。
従って、本発明の意図および範囲は、大筋で添付の特許請求の範囲に記載のものと解釈されるべきである。
本発明の実施形態にかかる動作環境を示す概略図である。 本発明の様々な実施形態とともに使用できるアプリケーションユーザインタフェースのエディットコントロールウィンドウを示す図である。 エディットコントロールへのテキストの挿入を示す図である。 エディットコントロールへのテキストの挿入を示す図である。 エディットコントロールへのテキストの挿入を示す図である。 本発明の様々な実施形態にかかるデータ入力パネルを示す図である。 本発明の実施形態にかかるエディットコントロールウィンドウに対するデータ入力パネルの代替の配置を示す図である。 本発明の実施形態にかかるエディットコントロールウィンドウに対するデータ入力パネルの代替の配置を示す図である。 本発明の実施形態にかかるエディットコントロールウィンドウに対するデータ入力パネルの代替の配置を示す図である。 アジア言語の書き込み面を備えるデータ入力パネルを示す図である。 補助数字キーパッドを備えるデータ入力パネルを示す図である。 補助記号キーパッドを備えるデータ入力パネルを示す図である。 反対向きのテキスト入力パネルを示す図である。 本発明の様々な実施形態にかかるパネルタイプ値を処理する方法を示す図である。 本発明の様々な実施形態にかかるパネルタイプ値を処理する方法を示す図である。 本発明の様々な実施形態にかかる制御に関連付けられている異なるユーティリティオブジェクト間での共有構成要素の共有を示す図である。 異なるユーティリティオブジェクトがどのように単一の共有構成要素を使用するかの一例を示す図である。 異なるユーティリティオブジェクトがどのように単一の共有構成要素を使用するかの別の例を示す図である。 異なるユーティリティオブジェクトがどのように単一の共有構成要素を使用するかの別の例を示す図である。
符号の説明
100 コンピュータ
101 キーボード
102 ポインティング装置
106 シリアルポートインタフェース
107 モニタ
108 ビデオアダプタ
109 リモートコンピュータ
110 処理ユニット
111 メモリ記憶装置
112 ローカルエリアネットワーク(LAN)
113 ワイドエリアネットワーク(WAN)
114 アダプタ
115 モデム
120 システムメモリ
130 システムバス
140 読取り専用メモリ(ROM)
150 ランダムアクセスメモリ(RAM)
160 基本入出力システム(BIOS)
165 ペンデジタイザ
166 付属ペンまたはスタイラス
170 ハードディスクドライブ
180 磁気ディスクドライブ
190 取外し可能磁気ディスク
191 光ディスクドライブ
192 ハードディスクドライブインタフェース
193 磁気ディスクドライブインタフェース
194 光ディスクドライブインタフェース
195 オペレーティングシステム
196 アプリケーションプログラム
197 プログラムモジュール
198 プログラムデータ
201、303 境界
203、205、207 エディットコントロール
209、211、213 タイトル
215 挿入ポイント
217 電子インク
219 認識されたテキスト
301、701 データ入力パネル
305 書き込み面
307 送信ボタン
309 コントロールボタン
311、313 補助インタフェースボタン
315 クローズボタン
317、319 面選択ボタン
703 書き込みエリア
801 補助キーボード
901 補助記号キーボード
1201、1215 アプリケーション
1203、1205、1207、1217、1219 コントロール
1209、1211、1213、1221 ユーティリティオブジェクト
1223、1309 共有構成要素
1301、1305 ソフトウェアアプリケーション
1303、1303A、1303B、1303C、1307 オブジェクト
1311 メソッドの呼出
1313 イベント
1401、1401A、1401B、1401C、1401D プロキシ構成要素
1501、1503、1505 メッセージの宛先

Claims (56)

  1. 手書きインクを受け付けるためのコンピュータ生成されたユーザインタフェースであって、
    ペンに関連付けられている手書きインクを受け付ける第1の領域と、
    前記ユーザインタフェースと関連付けられているオブジェクトを構成することによってその内容が制御される第2の領域と
    を備えたことを特徴とするユーザインタフェース。
  2. 前記オブジェクトは、挿入領域の挿入ポイントの近くの前記ユーザインタフェースの位置を制御することを特徴とする請求項1に記載のユーザインタフェース。
  3. 前記手書きインクは、前記ペンが前記ユーザインタフェースから離れると挿入ポイントに送信されることを特徴とする請求項1に記載のユーザインタフェース。
  4. 前記ペンは、前記手書きインクが前記挿入ポイントに送信される前に前記ユーザインタフェースが表示される面から少なくとも所定の距離離れて移動することを特徴とする請求項3に記載のユーザインタフェース。
  5. 対話の後、前記第1の領域の前記手書きインクを挿入領域の挿入ポイントに送信する第3の領域をさらに備えたことを特徴とする請求項1に記載のユーザインタフェース。
  6. 前記オブジェクトは、開発者によって変更可能であることを特徴とする請求項1に記載のユーザインタフェース。
  7. 前記挿入領域は、エディットコントロールに関連付けられていることを特徴とする請求項2に記載のユーザインタフェース。
  8. 前記エディットコントロールは、前記挿入領域からの前記第1および第2の領域を収容するパネルのオフセットを指定することを特徴とする請求項7に記載のユーザインタフェース。
  9. 前記オフセットは、垂直方向のオフセットを含むことを特徴とする請求項8に記載のユーザインタフェース。
  10. 前記オフセットは、水平方向のインタフェースを含むことを特徴とする請求項8に記載のユーザインタフェース。
  11. 前記手書きインクは、インクとして前記挿入領域に挿入されることを特徴とする請求項3に記載のユーザインタフェース。
  12. 前記手書きインクは、テキストに変換され、前記テキストは前記挿入領域に挿入されることを特徴とする請求項3に記載のユーザインタフェース。
  13. 前記オフセットは、デフォルトのオフセットであることを特徴とする請求項8に記載のユーザインタフェース。
  14. 前記オフセットは、前記エディットコントロールに固有であることを特徴とする請求項8に記載のユーザインタフェース。
  15. 前記オフセットは、開発者によって定義可能であることを特徴とする請求項8に記載のユーザインタフェース。
  16. 上側領域および下側領域を有するコンピュータ表示ウィンドウであって、
    挿入領域でアクティブの挿入ポイントと、
    手書きインクを捕捉する第1の領域を含む手書き捕捉パネルとを備え、
    前記手書き捕捉パネルは、前記挿入領域が前記下側領域にあるとき前記挿入領域の上に表示され、前記手書き捕捉パネルは、前記挿入領域が前記上側領域にあるとき前記挿入領域の下に表示されることを特徴とするコンピュータ表示ウィンドウ。
  17. 前記上側領域と前記下側領域の間の分離が定義可能であることを特徴とする請求項16に記載のコンピュータ表示ウィンドウ。
  18. ユーザインタフェースを制御する方法であって、
    ソフトウェアアプリケーションから情報を受信すること、および
    前記受信した情報に基づいてユーザインタフェースを呼び出すこと
    を備えたことを特徴とする方法。
  19. 前記ユーザインタフェースを呼び出して、前記受信した情報に基づいて指定された位置に表示されること
    をさらに備えたことを特徴とする請求項18に記載の方法。
  20. 前記ユーザインタフェースを呼び出して、前記受信した情報に基づいて指定された特徴を含むこと
    をさらに備えたことを特徴とする請求項18に記載の方法。
  21. 前記ユーザインタフェースを呼び出して、前記受信した情報に基づいて指定された特徴を含み、指定された位置に表示されること
    をさらに備えたことを特徴とする請求項18に記載の方法。
  22. 前記情報は、コントロールを識別することを特徴とする請求項18に記載の方法。
  23. 前記情報は、前記コントロールの位置情報をさらに含むことを特徴とする請求項22に記載の方法。
  24. 前記ユーザインタフェースを呼び出して、前記コントロールに近い位置に表示されること
    をさらに備えたことを特徴とする請求項23に記載の方法。
  25. 前記ユーザインタフェースを呼び出して、前記コントロールの境界から垂直方向にオフセットされた位置に表示されること
    をさらに備えたことを特徴とする請求項23に記載の方法。
  26. 前記ユーザインタフェースを呼び出して、前記コントロールの境界から水平方向にオフセットされた位置に表示されること
    をさらに備えたことを特徴とする請求項23に記載の方法。
  27. 前記ユーザインタフェースを呼び出して、前記コントロールの境界から水平方向および垂直方向にオフセットされた位置に表示されること
    をさらに備えたことを特徴とする請求項23に記載の方法。
  28. 前記ユーザインタフェースを呼び出して、前記コントロールの位置に基づいて指定された境界サイズを有すること
    をさらに備えたことを特徴とする請求項23に記載の方法。
  29. 前記情報は、前記コントロールの境界のサイズ情報をさらに含むことを特徴とする請求項22に記載の方法。
  30. 前記ユーザインタフェースを呼び出して、前記コントロールの前記境界の前記サイズ情報に基づいて前記コントロール内に表示されること
    をさらに備えたことを特徴とする請求項29に記載の方法。
  31. 前記ユーザインタフェースを呼び出して、前記コントロールの境界から垂直方向にオフセットされた位置に表示されること
    をさらに備えたことを特徴とする請求項30に記載の方法。
  32. 前記ユーザインタフェースを呼び出して、前記コントロールの境界から水平方向にオフセットされた位置に表示されること
    をさらに備えたことを特徴とする請求項30に記載の方法。
  33. 前記情報は、作業エリアの境界をさらに含むことを特徴とする請求項22に記載の方法。
  34. 前記ユーザインタフェースを呼び出して、前記コントロールおよび前記作業エリアの前記境界を基準にして指定された位置に表示されること
    をさらに備えたことを特徴とする請求項33に記載の方法。
  35. 前記情報は、第2のコントロールの位置をさらに含むことを特徴とする請求項23に記載の方法。
  36. 前記ユーザインタフェースを呼び出して、前記コントロールおよび前記第2のコントロールを基準にして指定された位置に表示されること
    をさらに備えたことを特徴とする請求項35に記載の方法。
  37. 前記情報は、コントロールの型を識別することを特徴とする請求項18に記載の方法。
  38. 前記ユーザインタフェースを呼び出して、前記識別された型のコントロールに対応する入力面を含むこと
    をさらに備えたことを特徴とする請求項37に記載の方法。
  39. 前記ユーザインタフェースを呼び出して、キーボード入力面を含むこと
    をさらに備えたことを特徴とする請求項38に記載の方法。
  40. 前記ユーザインタフェースを呼び出して、書き込み入力面を含むこと
    をさらに備えたことを特徴とする請求項38に記載の方法。
  41. 前記ユーザインタフェースを呼び出して、アジア言語書き込み入力面を含むこと
    をさらに備えたことを特徴とする請求項38に記載の方法。
  42. 指示をユーティリティオブジェクトで受信すること、および
    前記指示の受信に応答して、前記ユーティリティオブジェクトにアプリケーションプログラムインタフェースを制御させて前記ユーザインタフェースを呼び出すこと
    をさらに備えたことを特徴とする請求項18に記載の方法。
  43. 呼出技術を使用して前記受信された情報に基づいて前記ユーザインタフェースを呼び出すこと
    をさらに備えたことを特徴とする請求項18に記載の方法。
  44. 前記ユーザインタフェースは、ターゲットの活性化に応答して呼び出されることを特徴とする請求項43に記載の方法。
  45. 前記ターゲットは、ポインティング装置が前記ターゲットの近くに移動したとき活性化されることを特徴とする請求項44に記載の方法。
  46. 前記ターゲットは、ポインティング装置が前記ターゲット上を移動したとき活性化されることを特徴とする請求項44に記載の方法。
  47. 前記ターゲットは、ポインティング装置が所定の時間前記ターゲットの上で保持されたときに活性化されることを特徴とする請求項44に記載の方法。
  48. 終了技術を使用して前記受信した情報に基づいて前記ユーザインタフェースを終了させることをさらに備えたことを特徴とする請求項18に記載の方法。
  49. 入力データを受信する少なくとも1つのコントロールを有するアプリケーションと、
    前記少なくとも1つのコントロールにデータを入力するユーザインタフェースと、
    前記少なくとも1つのコントロールに関する情報を前記アプリケーションから受信し、前記受信した情報に応答して前記ユーザインタフェースを制御するユーティリティオブジェクトと
    を備えたことを特徴とするコンピューティング環境。
  50. 前記アプリケーションは複数のコントロールを有し、
    前記ユーティリティオブジェクトは、前記複数のコントロールのそれぞれに関する情報を前記アプリケーションから受信する
    ことを特徴とする請求項49に記載のコンピューティング環境。
  51. 前記アプリケーションは、第2のコントロールを含み、
    前記第2のコントロールに関する情報を前記アプリケーションから受信し、前記第2のコントロールに関する前記受信した情報に応答して前記ユーザインタフェースを制御する第2のユーティリティオブジェクトをさらに備えたことを特徴とする請求項49に記載のコンピューティング環境。
  52. 前記ユーティリティオブジェクトからの命令に応答して前記ユーザインタフェースを制御する前記少なくとも1つのコントロールの間で共有される構成要素をさらに備えたことを特徴とする請求項49に記載のコンピューティング環境。
  53. 前記共有構成要素は、前記ユーザインタフェースからデータを受信し、前記データを少なくとも1つのコントロールに経路指定することを特徴とする請求項52に記載のコンピューティング環境。
  54. 前記ユーティリティオブジェクトからの命令を前記共有構成要素に中継するプロキシ構成要素をさらに含むことを特徴とする請求項52に記載のコンピューティング環境。
  55. 前記共有構成要素は、メッセージを受信し格納するメッセージキューを含み、
    前記プロキシ構成要素は、前記ユーティリティオブジェクトからの命令を前記共有構成要素の前記メッセージキューに中継して、前記共有構成要素が、前記命令が前記メッセージキューで受信された順序で、前記メッセージキューに中継される前記命令を取り出し、応答することを特徴とする請求項54に記載のコンピューティング環境。
  56. 複数のオブジェクトと、
    前記ユーティリティオブジェクトからの命令を前記共有構成要素に中継する前記複数のオブジェクトのそれぞれに対応するプロキシ構成要素と
    をさらに備えたことを特徴とする請求項52に記載のコンピューティング環境。
JP2004003369A 2003-01-31 2004-01-08 特化されたデータ入力用のユーティリティオブジェクト Expired - Fee Related JP4658480B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US45370103P 2003-01-31 2003-01-31
US44444403P 2003-02-01 2003-02-01
US10/427,159 US7490296B2 (en) 2003-01-31 2003-04-30 Utility object for specialized data entry

Publications (3)

Publication Number Publication Date
JP2004234647A true JP2004234647A (ja) 2004-08-19
JP2004234647A5 JP2004234647A5 (ja) 2007-05-24
JP4658480B2 JP4658480B2 (ja) 2011-03-23

Family

ID=32659957

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004003369A Expired - Fee Related JP4658480B2 (ja) 2003-01-31 2004-01-08 特化されたデータ入力用のユーティリティオブジェクト

Country Status (5)

Country Link
US (4) US7490296B2 (ja)
EP (1) EP1443395A3 (ja)
JP (1) JP4658480B2 (ja)
KR (1) KR20040069984A (ja)
CN (1) CN100444088C (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004234651A (ja) * 2003-01-31 2004-08-19 Microsoft Corp ユーザインタフェースを制御するための挿入位置の追跡
JP2012527696A (ja) * 2009-05-21 2012-11-08 株式会社ソニー・コンピュータエンタテインメント 携帯型電子装置、携帯型電子装置を動作させるための方法、及び記録媒体
JP2015026386A (ja) * 2014-09-18 2015-02-05 キヤノン株式会社 入力装置、入力装置の制御方法、及びプログラム
JP2016537694A (ja) * 2013-11-19 2016-12-01 株式会社ワコム インクデータの生成、インクデータのレンダリング、インクデータの操作、及び、インクデータの伝達のための方法及びシステム

Families Citing this family (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7490296B2 (en) * 2003-01-31 2009-02-10 Microsoft Corporation Utility object for specialized data entry
US7106312B2 (en) 2003-11-10 2006-09-12 Microsoft Corporation Text input window with auto-growth
US7475406B2 (en) * 2003-12-15 2009-01-06 International Business Machines Corporation Event notification structure for dynamically aggregated logical components
US7561145B2 (en) * 2005-03-18 2009-07-14 Microsoft Corporation Systems, methods, and computer-readable media for invoking an electronic ink or handwriting interface
KR100703771B1 (ko) * 2005-05-17 2007-04-06 삼성전자주식회사 문자 입력판을 디스플레이하는 장치 및 방법
US8145997B2 (en) * 2005-06-30 2012-03-27 Canon Kabushiki Kaisha Method for simultaneously performing a plurality of handwritten searches
EP1958044A4 (en) * 2005-12-08 2013-03-13 Core Wireless Licensing Sarl IMPROVED TEXT ENTRY FOR ELECTRONIC EQUIPMENT
US8169467B2 (en) * 2006-03-29 2012-05-01 Nvidia Corporation System, method, and computer program product for increasing an LCD display vertical blanking interval
US7724211B2 (en) * 2006-03-29 2010-05-25 Nvidia Corporation System, method, and computer program product for controlling stereo glasses shutters
US8872754B2 (en) * 2006-03-29 2014-10-28 Nvidia Corporation System, method, and computer program product for controlling stereo glasses shutters
US7881923B2 (en) * 2006-03-31 2011-02-01 Research In Motion Limited Handheld electronic device including toggle of a selected data source, and associated method
US8106903B2 (en) * 2006-05-04 2012-01-31 Bentley Systems, Incorporated System and method for visually representing a project using graphic elements
US9304675B2 (en) 2006-09-06 2016-04-05 Apple Inc. Portable electronic device for instant messaging
US8564544B2 (en) 2006-09-06 2013-10-22 Apple Inc. Touch screen device, method, and graphical user interface for customizing display of content category icons
US20080168402A1 (en) 2007-01-07 2008-07-10 Christopher Blumenberg Application Programming Interfaces for Gesture Operations
US8689132B2 (en) 2007-01-07 2014-04-01 Apple Inc. Portable electronic device, method, and graphical user interface for displaying electronic documents and lists
US20080168478A1 (en) 2007-01-07 2008-07-10 Andrew Platzer Application Programming Interfaces for Scrolling
JP5256712B2 (ja) * 2007-11-28 2013-08-07 ブラザー工業株式会社 インストールプログラムおよび情報処理装置
JP4935658B2 (ja) * 2007-12-11 2012-05-23 ブラザー工業株式会社 ブラウザプログラムおよび情報処理装置
KR101484776B1 (ko) * 2007-12-13 2015-01-20 엘지전자 주식회사 휴대 단말기 및 이를 이용한 문자입력방법
US8717305B2 (en) 2008-03-04 2014-05-06 Apple Inc. Touch event model for web pages
US8645827B2 (en) 2008-03-04 2014-02-04 Apple Inc. Touch event model
US9081590B2 (en) * 2008-06-24 2015-07-14 Microsoft Technology Licensing, Llc Multimodal input using scratchpad graphical user interface to edit speech text input with keyboard input
US8285499B2 (en) 2009-03-16 2012-10-09 Apple Inc. Event recognition
US9684521B2 (en) 2010-01-26 2017-06-20 Apple Inc. Systems having discrete and continuous gesture recognizers
US8566045B2 (en) 2009-03-16 2013-10-22 Apple Inc. Event recognition
US20100275126A1 (en) * 2009-04-27 2010-10-28 Scott David Lincke Automatic On-Screen Keyboard
US7721222B1 (en) * 2009-06-10 2010-05-18 Cheman Shaik Dynamic language text generation system and method
US9223590B2 (en) 2010-01-06 2015-12-29 Apple Inc. System and method for issuing commands to applications based on contextual information
KR101633332B1 (ko) * 2009-09-30 2016-06-24 엘지전자 주식회사 단말기 및 그 제어 방법
KR101615964B1 (ko) * 2009-11-09 2016-05-12 엘지전자 주식회사 이동 단말기 및 그 표시방법
US9052894B2 (en) * 2010-01-15 2015-06-09 Apple Inc. API to replace a keyboard with custom controls
JP4950321B2 (ja) * 2010-04-26 2012-06-13 京セラ株式会社 文字入力装置、文字入力方法および文字入力プログラム
US8552999B2 (en) 2010-06-14 2013-10-08 Apple Inc. Control selection approximation
US9600135B2 (en) * 2010-09-10 2017-03-21 Vocollect, Inc. Multimodal user notification system to assist in data capture
US9094676B1 (en) 2010-09-29 2015-07-28 Nvidia Corporation System, method, and computer program product for applying a setting based on a determined phase of a frame
US9094678B1 (en) 2010-09-29 2015-07-28 Nvidia Corporation System, method, and computer program product for inverting a polarity of each cell of a display device
JP5691748B2 (ja) * 2011-03-31 2015-04-01 富士通株式会社 プログラム、情報通信機器および連携方法
JP5858641B2 (ja) * 2011-05-10 2016-02-10 キヤノン株式会社 情報処理装置、情報処理装置と外部装置とを含むシステム、システムの制御方法、及びプログラム
KR20130002046A (ko) * 2011-06-28 2013-01-07 삼성전자주식회사 멀티 코어를 포함하는 저장 장치의 전력 관리 방법
US9164288B2 (en) 2012-04-11 2015-10-20 Nvidia Corporation System, method, and computer program product for presenting stereoscopic display content for viewing with passive stereoscopic glasses
US9235324B2 (en) * 2012-05-04 2016-01-12 Google Inc. Touch interpretation for displayed elements
KR20140008987A (ko) * 2012-07-13 2014-01-22 삼성전자주식회사 필기 이미지 인식을 이용한 어플리케이션 제어 방법 및 장치
KR102076539B1 (ko) * 2012-12-06 2020-04-07 삼성전자주식회사 터치용 펜을 이용하는 휴대 단말기 및 이를 이용한 필기 입력 방법
US8952897B2 (en) 2012-08-10 2015-02-10 Microsoft Corporation Single page soft input panels for larger character sets
JP5798532B2 (ja) * 2012-08-23 2015-10-21 株式会社Nttドコモ ユーザインタフェース装置、ユーザインタフェース方法及びプログラム
US9329778B2 (en) 2012-09-07 2016-05-03 International Business Machines Corporation Supplementing a virtual input keyboard
US9720558B2 (en) * 2012-11-30 2017-08-01 Verizon and Redbox Digital Entertainment Services, LLC Systems and methods for providing a personalized media service user interface
USD741354S1 (en) * 2012-12-14 2015-10-20 Lg Electronics Inc. Display screen with graphical user interface
US9898187B2 (en) 2013-06-09 2018-02-20 Apple Inc. Managing real-time handwriting recognition
US9733716B2 (en) 2013-06-09 2017-08-15 Apple Inc. Proxy gesture recognizer
KR102162836B1 (ko) * 2013-08-30 2020-10-07 삼성전자주식회사 필드 속성을 이용한 컨텐트를 제공하는 전자 장치 및 방법
US20150089431A1 (en) * 2013-09-24 2015-03-26 Xiaomi Inc. Method and terminal for displaying virtual keyboard and storage medium
US9109917B2 (en) * 2013-09-26 2015-08-18 Google Inc. Systems and methods for providing input suggestions via the head unit of a vehicle
US10054463B2 (en) 2013-09-26 2018-08-21 Google Llc Systems and methods for providing navigation data to a vehicle
US9958289B2 (en) 2013-09-26 2018-05-01 Google Llc Controlling navigation software on a portable device from the head unit of a vehicle
US9639234B2 (en) * 2015-09-10 2017-05-02 Qualcomm Incorporated Dynamic control schemes for simultaneously-active applications
CN105975260B (zh) * 2016-04-28 2019-05-03 广州华多网络科技有限公司 一种文件生成方法及装置
DK179329B1 (en) * 2016-06-12 2018-05-07 Apple Inc Handwriting keyboard for monitors
US11194467B2 (en) 2019-06-01 2021-12-07 Apple Inc. Keyboard management user interfaces
CN115118714A (zh) * 2022-06-24 2022-09-27 Oppo广东移动通信有限公司 数据共享方法、系统及装置、终端设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11167569A (ja) * 1997-12-02 1999-06-22 Sony Corp 文章入力装置及び方法並びに記録媒体
JPH11282595A (ja) * 1998-03-26 1999-10-15 Brother Ind Ltd 入力装置および記録媒体
JP2000222525A (ja) * 1999-02-01 2000-08-11 Poritekku:Kk タブレットおよび郵便番号辞書・電話番号辞書を利用した住所・氏名入力システム
JP2002230466A (ja) * 2000-11-30 2002-08-16 Nippon Ics Kk 会計処理装置及び会計処理プログラムを記録した記録媒体

Family Cites Families (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4531231A (en) * 1983-01-19 1985-07-23 Communication Intelligence Corporation Method for distinguishing between complex character sets
US6002799A (en) * 1986-07-25 1999-12-14 Ast Research, Inc. Handwritten keyboardless entry computer system
EP0439087B1 (en) * 1990-01-25 1996-12-11 Radius Inc. Method for resizing and moving computer display windows
US5267327A (en) * 1990-03-30 1993-11-30 Sony Corporation Apparatus and method for registering the handwriting of a user so it can be translated into block characters
US5276794A (en) * 1990-09-25 1994-01-04 Grid Systems Corporation Pop-up keyboard system for entering handwritten data into computer generated forms
JPH07117868B2 (ja) * 1991-04-30 1995-12-18 インターナショナル・ビジネス・マシーンズ・コーポレイション タツチ型作動キーボード定義方法及び装置
US5550930A (en) * 1991-06-17 1996-08-27 Microsoft Corporation Method and system for training a handwriting recognizer at the time of misrecognition
US5946406A (en) 1991-06-17 1999-08-31 Microsoft Corporation Method and system for data entry of handwritten symbols
US5233686A (en) 1991-09-24 1993-08-03 Ceridian Corporation Open systems software backplane architecture for federated execution of independent application programs
US5592566A (en) * 1992-05-27 1997-01-07 Apple Computer, Incorporated Method and apparatus for computerized recognition
US6697524B1 (en) * 1992-09-04 2004-02-24 Canon Kabushiki Kaisha Information processing method and apparatus
US5666139A (en) * 1992-10-15 1997-09-09 Advanced Pen Technologies, Inc. Pen-based computer copy editing apparatus and method for manuscripts
DE69315969T2 (de) * 1992-12-15 1998-07-30 Sun Microsystems Inc Darstellung von Informationen in einem Anzeigesystem mit transparenten Fenstern
US5511193A (en) * 1993-02-19 1996-04-23 Apple Computer, Inc. Text services manager providing multiple instances of input methods for text language processing and automatic synchronization between met hods
CA2124505C (en) * 1993-07-21 2000-01-04 William A. S. Buxton User interface having simultaneously movable tools and cursor
US5500937A (en) * 1993-09-08 1996-03-19 Apple Computer, Inc. Method and apparatus for editing an inked object while simultaneously displaying its recognized object
WO1995017711A1 (en) * 1993-12-23 1995-06-29 Diacom Technologies, Inc. Method and apparatus for implementing user feedback
JPH07261918A (ja) * 1994-03-18 1995-10-13 Pfu Ltd 情報入力装置および手書き文字処理方法
US5812697A (en) * 1994-06-10 1998-09-22 Nippon Steel Corporation Method and apparatus for recognizing hand-written characters using a weighting dictionary
JPH0816313A (ja) * 1994-07-04 1996-01-19 Sanyo Electric Co Ltd 手書き入力方法及び装置
JP2944439B2 (ja) * 1994-12-27 1999-09-06 シャープ株式会社 手書き文字入力装置および方法
JP2817646B2 (ja) * 1995-02-01 1998-10-30 日本電気株式会社 文書編集装置
US5682439A (en) * 1995-08-07 1997-10-28 Apple Computer, Inc. Boxed input correction system and method for pen based computer systems
US5778404A (en) * 1995-08-07 1998-07-07 Apple Computer, Inc. String inserter for pen-based computer systems and method for providing same
JPH0981320A (ja) * 1995-09-20 1997-03-28 Matsushita Electric Ind Co Ltd ペン入力式選択入力装置及びその方法
JP3727399B2 (ja) * 1996-02-19 2005-12-14 ミサワホーム株式会社 画面表示式キー入力装置
US5745099A (en) * 1995-12-18 1998-04-28 Intergraph Corporation Cursor positioning method
TW421764B (en) 1996-05-21 2001-02-11 Hitachi Ltd Input character string estimation and identification apparatus
US6128007A (en) * 1996-07-29 2000-10-03 Motorola, Inc. Method and apparatus for multi-mode handwritten input and hand directed control of a computing device
US5784060A (en) * 1996-08-22 1998-07-21 International Business Machines Corp. Mobile client computer programmed to display lists and hexagonal keyboard
US5760772A (en) * 1996-08-30 1998-06-02 Novell, Inc. Method for automatically resizing a child window
US5889888A (en) * 1996-12-05 1999-03-30 3Com Corporation Method and apparatus for immediate response handwriting recognition system that handles multiple character sets
JPH1153117A (ja) * 1997-08-01 1999-02-26 Nippon Steel Corp 手書き文字認識装置、手書き入力インターフェース及びその記録媒体
US6278991B1 (en) * 1997-08-22 2001-08-21 Sap Aktiengesellschaft Browser for hierarchical structures
GB9824482D0 (en) * 1998-11-09 1999-01-06 Nokia Mobile Phones Ltd Portable controller
US7720682B2 (en) * 1998-12-04 2010-05-18 Tegic Communications, Inc. Method and apparatus utilizing voice input to resolve ambiguous manually entered text input
CN1173247C (zh) * 1999-01-13 2004-10-27 国际商业机器公司 具有文字分割用户接口的手写信息处理系统
US7120870B1 (en) * 2000-01-06 2006-10-10 International Business Machines Corporation Method, system, and program for presenting data in a limited display area
KR100343950B1 (ko) * 2000-02-16 2002-07-24 주식회사 디오텍 필기인식을 위한 소프트 키보드가 포함된 휴대용 단말기및 펜입력에 의한 필기 인식방법
JP2001236451A (ja) 2000-02-21 2001-08-31 Oki Data Corp 電子帳票作成システム
US6707942B1 (en) * 2000-03-01 2004-03-16 Palm Source, Inc. Method and apparatus for using pressure information for improved computer controlled handwriting recognition, data entry and user authentication
KR100380600B1 (ko) * 2000-04-17 2003-04-21 (주)네이스텍 터치스크린을 갖는 단말기에서의 문자입력방법
KR100865598B1 (ko) * 2000-05-29 2008-10-27 브이케이비 인코포레이티드 수문자 조합 및 다른 데이터의 입력을 위한 가상 데이터입력 장치 및 방법
US7627596B2 (en) * 2001-02-22 2009-12-01 International Business Machines Corporation Retrieving handwritten documents using multiple document recognizers and techniques allowing both typed and handwritten queries
US7730401B2 (en) * 2001-05-16 2010-06-01 Synaptics Incorporated Touch screen with user interface enhancement
US7158678B2 (en) * 2001-07-19 2007-01-02 Motorola, Inc. Text input method for personal digital assistants and the like
US6986050B2 (en) * 2001-10-12 2006-01-10 F-Secure Oyj Computer security method and apparatus
US20030163525A1 (en) * 2002-02-22 2003-08-28 International Business Machines Corporation Ink instant messaging with active message annotation
US7080325B2 (en) * 2002-02-22 2006-07-18 Call-Tell Llc Graphical device for comprehensive viewing and input of variable data via a browser-based display
US8583440B2 (en) * 2002-06-20 2013-11-12 Tegic Communications, Inc. Apparatus and method for providing visual indication of character ambiguity during text entry
US7002560B2 (en) * 2002-10-04 2006-02-21 Human Interface Technologies Inc. Method of combining data entry of handwritten symbols with displayed character data
US7490296B2 (en) 2003-01-31 2009-02-10 Microsoft Corporation Utility object for specialized data entry
US7305627B2 (en) * 2003-04-01 2007-12-04 International Business Machines Corporation Apparatus and method for correcting previously sent messages in a real-time messaging system
US8296680B2 (en) * 2009-01-15 2012-10-23 Research In Motion Limited Method and handheld electronic device for displaying and selecting diacritics

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11167569A (ja) * 1997-12-02 1999-06-22 Sony Corp 文章入力装置及び方法並びに記録媒体
JPH11282595A (ja) * 1998-03-26 1999-10-15 Brother Ind Ltd 入力装置および記録媒体
JP2000222525A (ja) * 1999-02-01 2000-08-11 Poritekku:Kk タブレットおよび郵便番号辞書・電話番号辞書を利用した住所・氏名入力システム
JP2002230466A (ja) * 2000-11-30 2002-08-16 Nippon Ics Kk 会計処理装置及び会計処理プログラムを記録した記録媒体

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4491249B2 (ja) * 2003-01-31 2010-06-30 マイクロソフト コーポレーション ユーザインタフェースを制御するための挿入位置の追跡
JP2004234651A (ja) * 2003-01-31 2004-08-19 Microsoft Corp ユーザインタフェースを制御するための挿入位置の追跡
US9524085B2 (en) 2009-05-21 2016-12-20 Sony Interactive Entertainment Inc. Hand-held device with ancillary touch activated transformation of active element
JP2012527696A (ja) * 2009-05-21 2012-11-08 株式会社ソニー・コンピュータエンタテインメント 携帯型電子装置、携帯型電子装置を動作させるための方法、及び記録媒体
JP2012527698A (ja) * 2009-05-21 2012-11-08 株式会社ソニー・コンピュータエンタテインメント 携帯型電子装置、携帯型電子装置を動作させるための方法、及び記録媒体
JP2014186748A (ja) * 2009-05-21 2014-10-02 Sony Computer Entertainment Inc 2本指のタッチがアクティブ要素の選択及び変換の契機となる携帯型装置
US9009588B2 (en) 2009-05-21 2015-04-14 Sony Computer Entertainment Inc. Customization of GUI layout based on history of use
US9367216B2 (en) 2009-05-21 2016-06-14 Sony Interactive Entertainment Inc. Hand-held device with two-finger touch triggered selection and transformation of active elements
US9448701B2 (en) 2009-05-21 2016-09-20 Sony Interactive Entertainment Inc. Customization of GUI layout based on history of use
US10705692B2 (en) 2009-05-21 2020-07-07 Sony Interactive Entertainment Inc. Continuous and dynamic scene decomposition for user interface
US11042292B2 (en) 2013-11-19 2021-06-22 Wacom Co., Ltd. Method and system for ink data generation, ink data rendering, ink data manipulation and ink data communication
US10534530B2 (en) 2013-11-19 2020-01-14 Wacom Co., Ltd. Method and system for ink data generation, ink data rendering, ink data manipulation and ink data communication
JP2016537694A (ja) * 2013-11-19 2016-12-01 株式会社ワコム インクデータの生成、インクデータのレンダリング、インクデータの操作、及び、インクデータの伝達のための方法及びシステム
US10768805B2 (en) 2013-11-19 2020-09-08 Wacom Co., Ltd. Method and system for ink data generation, ink data rendering, ink data manipulation and ink data communication
US11023127B2 (en) 2013-11-19 2021-06-01 Wacom Co., Ltd. Method and system for ink data generation, ink data rendering, ink data manipulation and ink data communication
US11169696B2 (en) 2013-11-19 2021-11-09 Wacom Co., Ltd. Method and system for ink data generation, ink data rendering, ink data manipulation and ink data communication
US11188223B2 (en) 2013-11-19 2021-11-30 Wacom Co., Ltd. Method and system for ink data generation, ink data rendering, ink data manipulation and ink data communication
US11747976B2 (en) 2013-11-19 2023-09-05 Wacom Co., Ltd. Method and system for ink data generation, ink data rendering, ink data manipulation and ink data communication
JP7446385B2 (ja) 2013-11-19 2024-03-08 株式会社ワコム デジタルインクの出力方法
JP2015026386A (ja) * 2014-09-18 2015-02-05 キヤノン株式会社 入力装置、入力装置の制御方法、及びプログラム

Also Published As

Publication number Publication date
US7490296B2 (en) 2009-02-10
US20040150670A1 (en) 2004-08-05
EP1443395A3 (en) 2006-08-30
EP1443395A2 (en) 2004-08-04
US20090132951A1 (en) 2009-05-21
CN100444088C (zh) 2008-12-17
US8140994B2 (en) 2012-03-20
CN1525288A (zh) 2004-09-01
US20090150777A1 (en) 2009-06-11
US8745528B2 (en) 2014-06-03
KR20040069984A (ko) 2004-08-06
US20090150776A1 (en) 2009-06-11
JP4658480B2 (ja) 2011-03-23
US9671921B2 (en) 2017-06-06

Similar Documents

Publication Publication Date Title
JP4658480B2 (ja) 特化されたデータ入力用のユーティリティオブジェクト
US20040225965A1 (en) Insertion location tracking for controlling a user interface
CN111339032B (zh) 管理具有多页面的文件夹的设备、方法和图形用户界面
JP6138866B2 (ja) 文書操作のためのデバイス、方法及びグラフィカルユーザインタフェース
EP1363183B1 (en) Write anywhere tool
US7904823B2 (en) Transparent windows methods and apparatus therefor
US7966352B2 (en) Context harvesting from selected content
RU2366006C2 (ru) Динамическая обратная связь для жестов
US6928619B2 (en) Method and apparatus for managing input focus and z-order
US20210049321A1 (en) Device, method, and graphical user interface for annotating text
US8922490B2 (en) Device, method, and graphical user interface for entering alternate characters with a physical keyboard
US20030214531A1 (en) Ink input mechanisms
JPH0724007B2 (ja) ジェスチャ認識を行うグラフィッカル・ユーザ・インターフェース及びその方法
CN1864155A (zh) 带自增长的文本输入窗
US20070214436A1 (en) Positional navigation graphic link system
CN109643213A (zh) 用于协同编辑工具的触摸屏用户界面的系统和方法
JP4868469B2 (ja) ユーザインタフェースを制御するための挿入位置の追跡
JP2005284559A (ja) ツールバー表示切替方法
JP7365935B2 (ja) 表示装置
JP7248279B2 (ja) コンピュータシステム、プログラム、及び方法
JPH01155424A (ja) 座標入力装置を用いたコマンド入力方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070105

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070402

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090717

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091019

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100105

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100405

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100629

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101029

RD13 Notification of appointment of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7433

Effective date: 20101101

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20101101

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20101122

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20101217

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101224

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140107

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees