(57)【特許請求の範囲】
【請求項１】
第２グラフィカルユーザインターフェースにオーバーレイする透明第１グラフィカルユーザインターフェースを提供するステップと、
前記透明第１グラフィカルユーザインターフェースに対応する手書き領域内で、該手書き領域に対するペンの接触を介してポインタ入力を受け取るステップと、
前記透明第１グラフィカルユーザインターフェース内で手書きガイドラインを表示するステップであって、
前記ペンが前記手書き領域内の第１位置に接触する場合に、該第１位置にガイドラインを表示するステップと、
前記ペンが時間の閾値長さにわたって前記第１位置から持ち上げられ、その後、前記手書き領域内で前記第１位置から閾値距離を越えた第２位置に前記ペンが接触する場合に限って、該第２位置に前記ガイドラインの位置を変更するステップとによって
前記ガイドラインを表示するステップと、
前記透明第１グラフィカルユーザインターフェース内に、前記ポインタ入力によって表される手書きオブジェクトを表示するステップと、
前記ポインタ入力からテキストを認識するステップと、
前記認識されたテキストをソフトウェアアプリケーションに供給するステップと
を含むことを特徴とするポインタ入力を処理する方法。
【請求項２】
前記第２グラフィカルユーザインターフェースをホストするソフトウェアアプリケーションに前記認識されたテキストを供給するステップと、
前記認識されたテキストが前記透明第１グラフィカルユーザインターフェースを介して可視になるように、前記第２グラフィカルユーザインターフェース内で前記認識されたテキストを表示するステップと
をさらに含むことを特徴とする請求項１に記載のポインタ入力を処理する方法。
【請求項３】
前記手書き領域のうちで前記第２グラフィカルユーザインターフェースにも対応する部分で前記ポインタ入力を受け取るステップをさらに含むことを特徴とする請求項２に記載のポインタ入力を処理する方法。
【請求項４】
前記第２グラフィカルユーザインターフェースをホストしない第２ソフトウェアアプリケーションによって第３グラフィカルユーザインターフェースを表示するステップと、
前記手書き領域のうちで前記第３グラフィカルユーザインターフェースに対応する部分で前記ポインタ入力を受け取るステップと
をさらに含むことを特徴とする請求項２に記載のポインタ入力を処理する方法。
【請求項５】
前記第２グラフィカルユーザインターフェースに対する更新が前記透明第１グラフィカルユーザインターフェースを介して可視になるように、前記第２グラフィカルユーザインターフェースを更新するステップをさらに含むことを特徴とする請求項１に記載のポインタ入力を処理する方法。
【請求項６】
前記手書き領域を識別するマージンを表示するステップをさらに含むことを特徴とする請求項１に記載のポインタ入力を処理する方法。
【請求項７】
前記透明第１グラフィカルユーザインターフェース内の固定された位置だけに前記手書きガイドラインを表示するステップをさらに含むことを特徴とする請求項１に記載のポインタ入力を処理する方法。
【請求項８】
受け取られたポインタ入力が前記透明第１グラフィカルユーザインターフェースに表示されない場合に、前記手書きガイドラインを削除するステップをさらに含むことを特徴とする請求項１に記載のポインタ入力を処理する方法。
【請求項９】
前記手書き領域に対するペンの接触を介して前記ポインタ入力を受け取るステップと、
前記ペンが前記手書き領域の外部に移動される場合に、前記手書きガイドラインを削除するステップと
をさらに含むことを特徴とする請求項１に記載のポインタ入力を処理する方法。
【請求項１０】
前記手書き領域に対するペンの接触を介して前記ポインタ入力を受け取るステップと、
前記ペンが前記手書き領域の上の閾値距離を超える場合に、前記手書きガイドラインを削除するステップと
をさらに含むことを特徴とする請求項１に記載のポインタ入力を処理する方法。
【請求項１１】
前記時間の閾値長さまたは前記閾値距離は、前記第１位置から前記第２位置への前記ペンの移動の方向に依存することを特徴とする請求項１に記載のポインタ入力を処理する方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ユーザがディスプレイスクリーンのワークエリアのほぼどこにでも手書き入力を書き込めるようにするユーザインターフェースに関する。より詳細には、本発明は、他のユーザインターフェースにオーバーレイする透明ユーザインターフェースに関する。したがって、本発明を用いると、ユーザが、ポインティングデバイスを使用してシステムアプリケーションと対話すると同時に、ワークエリアのどこにでも手書き入力を書き込んで、たとえばテキストを入力できるようになる。
【０００２】
【従来の技術】
コンピュータがますます現代社会に組み込まれるにつれて、ユーザがコンピュータに効率的にデータを入力できるようにするツールの必要が高まる。最も望まれる入力ツールの一部は、ユーザが、物理的キーボードまたはソフトウェアのＱＷＥＲＴＹキーボードでタイプするのではなく、自然な入力技法を使用してデータを入力できるようにするツールである。手書きを含むこれらの自然な入力技法は、特殊な技量を必要としない、馴染みのある便利なデータ作成の方法の保証をユーザに提供する。この目的のために、手書き入力からテキストおよびコマンドを認識するアプリケーションの開発で、長足の進歩が成し遂げられた。
【０００３】
普通の特殊目的手書き入力インターフェースは、比較的小さいサイズのウィンドウとして表示され、このウィンドウによって、ユーザがテキストの数単語を書き込めるようにするのにちょうど十分なスペースがもたらされる。これらの普通の手書き入力インターフェースは、認識されたテキストが挿入されるアプリケーションから分離され、通常は距離を置かれる。その代わりに、いくつかの普通の手書き入力インターフェースは、単一のアプリケーションに一体化され、他のアプリケーションに手書きデータを入力するのに使用することができない。
【０００４】
【発明が解決しようとする課題】
これらの普通の特殊目的手書き入力インターフェースは、複数の短所を有する。第１に、前述したように、これらは、通常は、ユーザが数単語の手書き入力だけを書き込めるようにする。ユーザが、さらに手書き入力を追加することを望む場合に、ユーザは、最初の手書き入力が認識され、インターフェースから消去されるまで待たなければならない。第２に、ユーザインターフェースが、認識されたテキストが挿入されつつあるアプリケーションのとなりに配置されない限り、ユーザは、手書き入力を作成するのに使用されるポインタ（ペンまたはスタイラス）を、ユーザインターフェースと、手書き入力から認識されたテキストを受け取るアプリケーションの間で、常に移動させなければならない。したがって、ユーザの注意を、常にアプリケーションと手書き入力インターフェースの間で移動させなければならない。その代わりに、ユーザが、常に自分の注意を移動させる必要をなくすために、手書き入力インターフェースをアプリケーションの近くに配置する場合に、手書き入力の量が増えるにつれて、認識されたテキストが、手書きインターフェースによって隠されるようになる。
【０００５】
したがって、ユーザが一時に大量の手書き入力を作成できるようにする手書き入力インターフェースの必要がある。さらに、ユーザが、認識された手書き入力を受け取るアプリケーションから注意をそらさずに手書き入力を書き込めるようにし、なおかつアプリケーション内の認識された手書き入力を隠さない手書き入力インターフェースの必要もある。
【０００６】
【課題を解決するための手段】
有利なことに、本発明によるライトエニウェアツール（ｗｒｉｔｅ  ａｎｙｗｈｅｒｅ  ｔｏｏｌ）は、他のアプリケーションのユーザインターフェースにオーバーレイし、透明ユーザインターフェースの領域内で受け取られる手書き入力によって表されるインクオブジェクトを表示する、透明グラフィカルユーザインターフェースを提供する。本発明の透明ユーザインターフェースは、コンピュータのディスプレイ領域のほとんどを含むように拡大することができ、これによって、ユーザが、ディスプレイ領域内のどこにでも書き込めるようになる。これによって、ユーザが、複数行のテキストを書き込めるようになる。さらに、このユーザインターフェースは透明なので、ユーザが、透明ユーザインターフェースに書き込まれる手書き入力から認識されたテキストを受け取るアプリケーションを含む他のアプリケーションの、下にあるグラフィカルユーザインターフェースを見られるようになる。したがって、ユーザは、下にあるユーザインターフェースの挿入ポイントに隣接して手書き入力を書き込むことができると同時に、自分の焦点を透明ユーザインターフェースと下にあるユーザインターフェースの両方に合わせていることができる。さらに、ユーザは、透明ユーザインターフェースを隠さずに下にあるユーザインターフェースと対話することができる。
【０００７】
本発明の前述の要約ならびに好ましい実施形態の以下の詳細な説明は、添付図面と共に読む時によりよく理解される。
【０００８】
【発明の実施の形態】
概要
本発明は、下にあるユーザインターフェースを隠さずに手書き入力を受け取り、表示する透明ユーザインターフェースを提供するツールに関する。本発明によるライトエニウェアツールは、コンピューティングデバイス上で実行することができる命令を用いて実施することができる。したがって、そのような命令を実行する例示的なコンピューティング環境を説明する。本発明の動作および使用を示すさまざまなインターフェースも、本発明によるライトエニウェアツールのコンポーネントおよび機能と共に説明する。
【０００９】
例示的オペレーティング環境
前述したように、本発明のライトエニウェアツールは、ソフトウェアを使用して実施することができる。すなわち、ライトエニウェアを、１つまたは複数のコンピューティングデバイスによって実行される、プログラムモジュールなどのコンピュータ実行可能命令の全般的な文脈で説明することができる。一般に、プログラムモジュールには、特定のタスクを実行するか特定の抽象データ型を実施する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれる。通常は、プログラムモジュールの機能性を、さまざまな実施形態で望み通りに組み合わせるか分散させることができる。
【００１０】
本発明は、ソフトウェアを使用して実施することができるので、本発明のさまざまな実施形態を使用することができる通常のプログラマブルコンピュータのコンポーネントおよび動作を簡単に述べることが、本発明のよりよい理解に役立つ可能性がある。そのような例示的コンピュータシステムを、図１に示す。このシステムには、汎用コンピュータ１００が含まれる。このコンピュータ１００は、普通の携帯情報端末、タブレットパーソナルコンピュータ、デスクトップパーソナルコンピュータ、またはラップトップパーソナルコンピュータ、ネットワークサーバ、あるいは同様の形態とすることができる。
【００１１】
コンピュータ１００には、通常は、少なくともいくつかの形態のコンピュータ可読媒体が含まれる。コンピュータ可読媒体は、コンピュータ１００によってアクセスできるすべての使用可能な媒体とすることができる。限定ではなく例として、コンピュータ可読媒体に、コンピュータ記憶媒体および通信媒体を含めることができる。コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュール、他のデータなどの情報の記憶のための、あらゆる方法または技法で実施される、揮発性および不揮発性の、取外し可能および取外し不能の媒体が含まれる。コンピュータ記憶媒体には、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、または他のメモリ技術、ＣＤ−ＲＯＭ、ディジタル多用途ディスク（ＤＶＤ）、または他の光学ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、または他の磁気記憶装置、あるいは、所望の情報を保管するのに使用することができ、コンピュータ１００によってアクセスすることができるすべての他の媒体が含まれるが、これらに限定はされない。
【００１２】
通信媒体は、通常は、搬送波や他のトランスポート機構などの変調されたデータ信号内でコンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを実施し、通信媒体には、すべての情報配布媒体が含まれる。用語「変調されたデータ信号」は、その１つまたは複数の特性を、信号内で情報をエンコードする形で設定または変更された信号を意味する。制限ではなく例として、通信媒体には、有線ネットワークや直接配線接続などの有線媒体と、音響、ＲＦ、赤外線、他の無線媒体などの無線媒体が含まれる。上記の任意の組合せも、コンピュータ可読媒体の範囲に含まれなければならない。
【００１３】
コンピュータ１００には、通常は、処理ユニット１１０、システムメモリ１２０、および、システムメモリを含むさまざまなシステムコンポーネントを処理ユニット１１０に結合するシステムバス１３０が含まれる。システムバス１３０は、メモリバスまたはメモリコントローラ、周辺バス、およびさまざまなバスアーキテクチャのどれかを使用するローカルバスを含む、複数のタイプのバス構造のどれにでもすることができる。システムメモリ１２０には、読取専用メモリ（ＲＯＭ）１４０およびランダムアクセスメモリ（ＲＡＭ）１５０が含まれる。スタートアップ中などにコンピュータ１００内の要素の間で情報を転送するのを助ける基本ルーチンを含む基本入出力システム１６０（ＢＩＯＳ）が、ＲＯＭ１４０に格納される。
【００１４】
コンピュータ１００には、さらに、ハードディスクから読み取り、これに書き込むためのハードディスクドライブ１７０、取外し可能磁気ディスク１９０から読み取るかこれに書き込むための磁気ディスクドライブ１８０、ＣＤ  ＲＯＭや他の光学媒体などの取外し可能光ディスク１９２Ａから読み取るかこれに書き込むための光ディスクドライブ１９１などの追加のコンピュータ記憶媒体デバイスが含まれる。ハードディスクドライブ１７０、磁気ディスクドライブ１８０、および光ディスクドライブ１９１は、それぞれハードディスクドライブインターフェース１９２、磁気ディスクドライブインターフェース１９３、および光ディスクドライブインターフェース１９４によってシステムバス１３０に接続される。ドライブおよびそれに関連するコンピュータ可読媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、およびパーソナルコンピュータ１００の他のデータの不揮発性記憶を提供する。磁気カセット、フラッシュメモリカード、ディジタルビデオディスク、ベルヌーイカートリッジ、ランダムアクセスメモリ（ＲＡＭ）、読取専用メモリ（ＲＯＭ）、および同様のものなどの、コンピュータによってアクセス可能なデータを保管することができる他のタイプのコンピュータ可読媒体も、例示的オペレーティング環境で使用できることを、当業者は理解するであろう。また、タブレットパーソナルコンピュータや携帯情報端末などのコンピュータ１００のよりポータブルな実施形態で、上で述べたコンピュータ記憶媒体デバイスの１つまたは複数を省略できることを理解されたい。
【００１５】
オペレーティングシステム１９５、１つまたは複数のアプリケーションプログラム１９６、他のプログラムモジュール１９７、およびプログラムデータ１９８を含む複数のプログラムモジュールを、ハードディスクドライブ１７０、磁気ディスク１９０、光ディスク１９２Ａ、ＲＯＭ１４０、またはＲＡＭ１５０に格納することができる。ユーザは、キーボード１０１やポインティングデバイス１０２（たとえば、マウス、タッチパッド、またはポインティングスティック）などのさまざまな入力デバイスを介して、コンピュータ１００にコマンドおよび情報を入力することができる。前述したように、本発明は、手書き入力を受け取り、表示するライトエニウェアツールを対象とする。当業者が理解するように、手書き入力を、さまざまなポインティングデバイスを使用して生成することができるが、手書き入力の作成に最も便利なポインティングデバイスは、ペンである。したがって、コンピューティングデバイス１００には、通常は、ディジタイザ１６５およびスタイラスまたはペン１６６が含まれ、ユーザは、これらを使用して手書き入力を作成することができる。ディジタイザ１６５は、スタイラスまたはペン１６６がディジタイザ１６５の表面に接触する時に、手書き入力を受け取る。コンピュータ１００は、ジョイスティック、ゲームパッド、衛星放送受信用パラボラアンテナ、スキャナ、タッチスクリーン、または同様のものなどの追加入力デバイスを有することもできる。
【００１６】
これらおよび他の入力デバイスは、しばしば、システムバス１３０に結合されたシリアルポートインターフェース１０６を介して処理ユニット１１０に接続されるが、パラレルポート、ゲームポート、ＩＥＥＥ−１３９４Ｂバス、ｕｎｉｖｅｒｓａｌ  ｓｅｒｉａｌ  ｂｕｓ（ＵＳＢ）などの他のインターフェースによって接続することもできる。さらに、これらのデバイスを、適当なインターフェース（図示せず）を介してシステムバス１３０に直接に結合することができる。モニタ１０７または他のタイプのディスプレイデバイスも、ビデオアダプタ１０８などのインターフェースを介してシステムバス１３０に接続される。モニタ１０７のほかに、パーソナルコンピュータには、通常は、スピーカやプリンタなどの他の周辺出力デバイス（図示せず）が含まれる。当業者が理解するように、モニタ１０７に、ディジタイザ１６５を組み込むことができる。この配置を用いると、便利なことに、ユーザが、ペン１６６を使用して、モニタ１０７のディスプレイスクリーンに接触することによって、モニタ１０７に表示されたオブジェクトを直接にポイントできるようになる。
【００１７】
コンピュータ１００は、リモートコンピュータ１０９などの１つまたは複数のリモートコンピュータへの論理接続を使用して、ネットワーク化された環境で動作することができる。リモートコンピュータ１０９は、サーバ、ルータ、ネットワークＰＣ、ピアデバイス、または他の一般的なネットワークノードとすることができ、リモートコンピュータ１０９には、通常は、コンピュータ１００に関して上で説明した要素の多数またはすべてが含まれるが、図１では、アプリケーションプログラム１９６に関するメモリストレージデバイス１１１だけが図示されている。図１に示された論理接続には、ローカルエリアネットワーク（ＬＡＮ）１１２および広域ネットワーク（ＷＡＮ）１１３が含まれる。そのようなネットワーキング環境は、オフィス、企業コンピュータネットワーク、イントラネット、およびインターネットでありふれたものであり、したがって、本明細書では詳細に説明しない。
【００１８】
ＬＡＮネットワーキング環境で使用される時に、コンピュータ１００は、ネットワークインターフェースまたはネットワークアダプタ１１４を介してローカルエリアネットワーク１１２に接続される。ＷＡＮネットワーキング環境で使用される時に、コンピュータ１００に、通常は、たとえばインターネットなどの広域ネットワーク１１３への通信リンクを確立するモデム１１５または他の手段が含まれる。モデム１１５は、内蔵または外付けとすることができるが、シリアルポートインターフェース１０６を介してシステムバス１３０に接続される。ネットワーク化された環境では、パーソナルコンピュータ１００に関して図示されたプログラムモジュールまたはその一部を、リモートメモリストレージデバイスに格納することができる。もちろん、図示のネットワーク接続が例示的であり、コンピュータの間の通信リンクを確立する他の技法を使用できることを理解されたい。ＴＣＰ／ＩＰ、イーサネット（登録商標）、ＦＴＰ、ＨＴＴＰ、および同様のものなどのさまざまな周知のプロトコルのどれかの存在が仮定され、システムを、クライアント−サーバ構成で動作させて、ユーザがウェブベースサーバからウェブページを検索できるようにすることができる。さまざまな普通のウェブブラウザのどれでも、ウェブページの表示およびデータの操作に使用することができる。
【００１９】
透明インクオーバーレイインターフェース
図２に、コンピュータのモニタによって提供されるディスプレイ領域２０１を示す。図示の実施形態では、ディスプレイ領域２０１が、ディジタイザ１６５と同一の広がりを持つ。したがって、ユーザは、ディスプレイ領域２０１の表面にペンまたはスタイラス１６６を接触させることによって、コンピュータ用の手書き入力を作成することができる。この図からわかるように、ディスプレイ領域２０１には、Ｍｉｃｒｏｓｏｆｔ  Ｗｏｒｄ（商標）ワードプロセッシングソフトウェアアプリケーションのグラフィカルユーザインターフェース２０３が表示される。ディスプレイには、Ｗｏｒｄユーザインターフェース２０３（以下では、簡単にするために、下にあるユーザインターフェースと呼ぶ）のほとんどにオーバーレイする透明ユーザインターフェース２０５も含まれる。
【００２０】
ユーザインターフェース２０５は透明なので、図２では明瞭に見ることができない。しかし、この図では、破線２０７が、ユーザインターフェース２０５の境界が存在する場所を表すのに使用されている。図示の実施形態では、透明ユーザインターフェース２０５が、ディスプレイ領域２０１のかなりの部分にオーバーレイする。下で詳細に説明するように、ユーザが、ディスプレイのうちで透明ユーザインターフェース２０５に対応する部分で手書き入力を作成する時に、手書き入力によって表される手書きオブジェクトが、手書き入力の認識の前に透明ユーザインターフェース２０５に表示される。手書き入力が認識されたならば、手書き入力から認識されたテキストが、下にあるユーザインターフェース２０３（すなわち、時折簡単にするために、下にあるアプリケーションと呼ばれるＭｉｃｒｏｓｏｆｔ  Ｗｏｒｄワードプロセッシングソフトウェアアプリケーションのユーザインターフェース）に表示され、透明ユーザインターフェース２０５から削除される。
【００２１】
図２からわかるように、透明ユーザインターフェース２０５は、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）オペレーティングシステムまたはＭａｃｉｎｔｏｓｈオペレーティングシステムで通常使用される普通のウィンドウズ（登録商標）タイプのユーザインターフェースではない。すなわち、透明ユーザインターフェース２０５には、普通のウィンドウズ（登録商標）タイプのユーザインターフェースのようなボーダーまたはツールバーが含まれない。その代わりに、透明ユーザインターフェース２０５には、ディスプレイ領域２０１のうちで透明ユーザインターフェース２０５が手書き入力を受け入れる手書き領域を画定するマージンライン２０９が表示される。マージンは、たとえば、５０％ディザの灰色で描くことができる。あるいは、アルファブレンディングを使用してマージンライン２０９を表示することができるが、ディザの使用によって、当業者によって理解されるように、電力消費が減る。もちろん、透明ユーザインターフェース２０５を修正して、望みに応じてボーダーまたはツールバーを含めることができることを、当業者は理解するであろう。
【００２２】
手書き入力を作成するために、ユーザは、図３に示されているように、ペン１６６をディスプレイ領域２０１に接触させる。透明ユーザインターフェース２０５の手書き領域に向かうペン１６６の移動に応答して、透明ユーザインターフェース２０５によって、手書きガイドライン２１１も表示される。これらのガイドライン２１１は、一方のマージンラインから反対のマージンラインまで延び、ユーザが水平な手書き入力を書くのを支援する。当業者によって理解されるように、ユーザの手書きが水平になるほど、その手書き入力がより正確に認識されるようになる。したがって、ガイドライン２１１は、ユーザの手書き入力の認識精度を改善するのに役立つ。
【００２３】
ガイドライン２１１は、透明ユーザインターフェース２０５の動作状況に関するフィードバックをユーザに提供するようにも働く。具体的に言うと、ガイドライン２１１は、透明ユーザインターフェース２０５が手書き入力を受け入れる準備ができている時に限って、透明ユーザインターフェース２０５によって表示される。したがって、ガイドライン２１１は、フォーカスが透明ユーザインターフェース２０５から下にあるユーザインターフェース２０３などの別のユーザインターフェースに移されている時には表示されない。さらに、ガイドライン２１１は、ペン１６６が、マージンライン２０９によって形成される境界の外に移動された時、またはペン１６６が、ディスプレイ領域２０１の表面から閾値高さより上に移動された時に、表示されない。図４に、ユーザがペン１６６を使用して手書き入力を書き込んだ後の透明ユーザインターフェース２０５を示す。この図からわかるように、透明ユーザインターフェース２０５によって、手書き入力に対応する手書きインクオブジェクトが表示される。手書き入力をガイドライン２１１の間に保つことによって、手書き入力が、水平に保たれ、したがって、より正確に認識することができる。
【００２４】
ユーザが、図５に示されているようにテキストのもう１つの行を書き始める時に、ガイドライン２１１の位置が、テキストの新しい行に一致するように変更される。図示の実施形態では、ガイドライン２１１が、透明ユーザインターフェース２０５内の固定された位置だけにはりつく。もちろん、本発明の他の実施形態では、透明ユーザインターフェース２０５内のすべての適する位置にガイドライン２１１を再位置決めできるようにすることができる。
【００２５】
ユーザの書込みの意図によりよく対応するために、ガイドライン２１１の位置は、ペン１６６のコンテキストに依存する。ユーザが、ペン１６６をスクリーンに接触させたならば、ガイドライン２１１が、同じ場所に固定される。これは、たとえば、ユーザの手書きに、ガイドライン２１１の上または下に延びる文字が含まれる時に、便利である。したがって、手書き領域に接触した後に、ユーザは、ペン１６６を、手書き領域内のどこにでも移動することができ、ガイドライン２１１の位置は、同一に保たれる。
【００２６】
ペン１６６が、手書き領域の表面から持ち上げられる場合であっても、ガイドライン２１１は、ペン１６６の位置に依存する時間の閾値長さの間、同じ位置にとどまる。これによって、ユーザが、書き込む時に手書き領域からペン１６６を短時間だけ持ち上げ、ガイドライン２１１の移動なしに行の書込みを続けられるようになる。しかし、ユーザが、ペン１６６を持ち上げ、前の接触位置から閾値距離だけ移動する場合には、ガイドライン２１１の位置が、ペン１６６の新しい位置に一致するように自動的に移動される。
【００２７】
本発明の一部の実施形態では、ペン１６６の移動の方向によって、ガイドライン２１１を再位置決めする前の閾値時間が決定される。たとえば、ユーザが、ペン１６６を、現在書き込まれつつある行の上の位置に移動する場合に、ガイドライン２１１を、ペン１６６が現在書き込まれつつある行の下の位置に移動された場合より長い期間だけ固定されたままにすることができ、これは、２つの位置への距離が同一の場合であっても行われる。当業者に知られているように、いくつかのディジタイザが、ホバリング機能を提供するが、これを用いると、ディジタイザが、ペン１６６がディジタイザの表面より上にある時でも、ペン１６６の位置を検出できるようになる。このホバリング機能を使用して、ペン１６６が手書き領域に近づく時を検出して、ガイドラインの最初の表示を行うことができる。ホバリング機能は、ガイドライン２１１が新しい位置に再位置決めされる前に固定されたままになる閾値時間をよりよく判定するために、ユーザがペン１６６を移動している方向をよりすばやく判定するのにも使用することができる。
【００２８】
図３および図４からわかるように、透明ユーザインターフェース２０５の実施形態では、ペン１６６の位置を囲む長方形の半透明領域２１３が提供される。透明ユーザインターフェース２０５は、ユーザが、下にあるグラフィカルユーザインターフェースで気を散らすことなく自分の手書き入力に対応する手書きオブジェクトをよりよく読み取ることができるようにするために、この半透明領域２１３を提供する。この半透明領域２１３は、たとえば、透明ユーザインターフェース２０５をアルファブレンディングすることによって作成することができる。半透明領域２１３は、現在ユーザによって書かれている手書き入力の行を含めるのに十分な高さとし、現在書かれている手書き入力の行の上および下の行の上下に小さい距離を置くことができる。もちろん、本発明の他の実施形態では、長方形の半透明領域２１３のサイズ、形状、および外見を変更することができ、半透明領域２１３の表示を完全に省略することができる。
【００２９】
手書き入力に対応する手書きオブジェクトは、手書き入力が認識されるまで透明ユーザインターフェース２０５に表示される。これらの手書きオブジェクトは、フォーカスが透明ユーザインターフェース２０５から下にあるユーザインターフェース２０３などの別のユーザインターフェースに移される場合であっても表示され続ける。手書き入力の認識は、タイムアウト期間の後に行うことができ、あるいは、ユーザによる指示の際に行うことができる。手書き入力は、認識される時に、透明ユーザインターフェース２０５の下にあるユーザインターフェースの挿入ポイントに挿入される。したがって、図６に示されているように、手書き入力から認識されたテキストが、Ｍｉｃｒｏｓｏｆｔ  Ｗｏｒｄユーザインターフェースに表示され、対応する手書きオブジェクトが、透明ユーザインターフェース２０５から削除される。したがって、本発明の透明ユーザインターフェース２０５によって、ユーザが下にあるアプリケーションに手書き入力を提供できるようにすると同時に、下にあるアプリケーションのユーザインターフェースと手書き入力に対応する手書きオブジェクトの両方を同時に見ることができる便利な技法が提供される。
【００３０】
本発明のいくつかの実施形態を使用して、アジアの言語の書込みを翻訳することができる。これらの実施形態では、ガイドライン２１１が、直線ではなく箱として表示される。さらに、透明ユーザインターフェース２０５によって、認識された手書き翻訳を下にあるアプリケーションに渡す前に、手書き翻訳を訂正するグラフィカルオブジェクトを表示することができる。
【００３１】
もちろん、透明ユーザインターフェース２０５に、望み通りにさまざまなグラフィカルオブジェクトを含めることができることを、当業者は理解するであろう。たとえば、前述したように、透明ユーザインターフェース２０５のいくつかの実施形態に、ボーダーまたはツールバーを含めることができる。さらに、透明ユーザインターフェース２０５のいくつかの実施形態に、手書きオブジェクトの外見を修正するグラフィカルオブジェクト、透明ユーザインターフェース２０５を隠すグラフィカルオブジェクト、または他の機能を実行するグラフィカルオブジェクトを含めることができる。
【００３２】
パンチスルー（ｐｕｎｃｈ  ｔｈｒｏｕｇｈ）技法
当業者によって理解されるように、ユーザが、ペン１６６を用いて作成されるポインタ入力を、透明ユーザインターフェース２０５への手書き入力としてではなく、下にあるユーザインターフェース２０３への入力として扱わせることを望む場合がある。たとえば、ユーザが、既に認識され、下にあるユーザインターフェース２０３に表示されているテキストの選択を望む場合があり、あるいは、下にあるユーザインターフェース２０３のボタンまたはメニュー選択肢をアクティブにすることを望む場合がある。これらの状況では、透明ユーザインターフェース２０５が、透明ユーザインターフェース２０５に関する手書き入力であるポインタ入力と、下にあるユーザインターフェース２０３への他の入力とを区別しなければならない。有利なことに、本発明の透明ユーザインターフェース２０５は、下にあるユーザインターフェース２０３にポインタ入力をパススルーできるようにする複数の技法を提供する。
【００３３】
そのような技法の１つを、「クイックタップ（ｑｕｉｃｋ  ｔａｐ）」技法と称する。この技法では、透明ユーザインターフェース２０５が手書きオブジェクトを表示していない時の手書き領域でのペン１６６のクイックタップが、下にあるユーザインターフェース２０３への入力として扱われる。具体的に言うと、透明ユーザインターフェース２０５が、手書きオブジェクトを表示しておらず、手書き領域が、下にあるユーザインターフェース２０３にも対応するディスプレイ上の位置でペン１６６からタップを受け取る場合に、そのポインタ入力が、透明ユーザインターフェース２０５に関する手書き入力としてではなく、下にあるユーザインターフェース２０３に関する入力として扱われる。
【００３４】
要因の組合せによって、ペンタップが透明ユーザインターフェース２０５に関する手書き入力ではなく、下にあるユーザインターフェース２０３に関するポイント入力とみなす場合と決定する。ペンタップが下にあるユーザインターフェース２０３に関するポインタ入力とみなす場合を決定する第１の要因は、手書き領域へのペン１６６の最初の接触と、ペン１６６が手書き領域から持ち上げられる時の間の時間の長さである。閾値時間を超える手書き領域とのペン１６６の長い接触は、下にあるユーザインターフェース２０３への入力を提供するためのシングルペンタップではなく、手書き入力を作成するためのペンストロークの始まりとみなされる。
【００３５】
ペンタップが下にあるユーザインターフェース２０３に関するポインタ入力とみなす場合を決定するもう１つの要因は、ペン１６６が接触の期間中に手書き領域で移動する距離である。ペン１６６の移動が、その初期接触点の周囲の狭い領域に制限される場合には、ペンタップが、下にあるアプリケーションへのポインタ入力を提供する試みとみなされる。その一方で、ペン１６６が、手書き領域と接触しながらその初期接触点から閾値距離を超えて移動する場合には、そのポインタ入力が、ペン１６６のシングルタップではなく手書き入力とみなされる。
【００３６】
もう１つの要因は、前述したように、タップが受け取られるコンテキストである。透明ユーザインターフェース２０５に、手書きオブジェクトが表示されていない場合には、ユーザが、空のインターフェースでシングルポイント手書きオブジェクトを作成することを試みている可能性が低い。そうではなく、透明ユーザインターフェース２０５は、タップが、タップの位置の下の、下にあるユーザインターフェース２０３へのポインタ入力を意図されている可能性が高いことを認識する。もちろん、本発明のいくつかの実施形態で、透明ユーザインターフェース２０５に手書きオブジェクトが全く含まれないことを必要とするではなく、クイックペンタップを認識するためにペンタップから閾値距離以内に手書きオブジェクトが存在しないことだけを必要とすることを、当業者は理解するであろう。たとえば、本発明のいくつかの実施形態では、手書きオブジェクトがペンの接触点から２インチ（５．０８ｃｍ）以内に表示されていない場合に、クイックペンタップを認識することができる。
【００３７】
同様に、下にあるユーザインターフェース２０３内のオブジェクトに対するペンタップの位置も、透明ユーザインターフェース２０５に関する手書き入力から下にあるユーザインターフェース２０３に関するポインタ入力を区別する際に考慮することができる。たとえば、ペンタップを、下にあるユーザインターフェース２０３内のボタンまたはメニュー選択肢の上から受け取る場合には、透明ユーザインターフェース２０５は、透明ユーザインターフェース２０５への手書き入力ではなく下にあるユーザインターフェース２０３へのポインタ入力としてペンタップを認識するのに必要な時間および距離の閾値を緩和することができる。同様に、下にあるユーザインターフェース２０３内でペンタップの真下にグラフィカルオブジェクトがない場合に、透明ユーザインターフェース２０５は、時間または距離の閾値を減らし、透明ユーザインターフェース２０５が下にあるユーザインターフェース２０３へのポインタ入力ではなく手書き入力としてペンタップを扱う可能性を高めることができる。
【００３８】
もちろん、他の方法および判断基準を使用して、クイックタップを手書き入力から区別することができることを、当業者は理解するであろう。たとえば、ライトエニウェアツールで、ニューラルネットワークや統計的決定システムなどのトレーニング可能システムを使用して、下にあるユーザインターフェースにポインタ入力をパンチスルーするためのクイックタップを、透明ユーザインターフェース２０５への手書き入力と区別することができる。
【００３９】
ポインタ入力を下にあるアプリケーションにパススルーするもう１つの技法が、ホールドスルー（ｈｏｌｄ  ｔｈｒｏｕｇｈ）技法である。この技法によれば、ユーザが、過度の時間にわたってペン１６６を単一の位置で静止したままにする場合に、透明ユーザインターフェース２０５は、ユーザが、手書き入力を作成することを試みるのではなく、下にあるユーザインターフェース２０３へのポインタ入力のサブミットを試みていることを認識する。もちろん、ユーザが、ディジタイジングディスプレイの表面に対してペン１６６を完全に静止して保持することが、実質的に不可能であることを、当業者は理解するであろう。
【００４０】
したがって、ユーザがホールドスルー技法を使用しているか否かを判定する際に、透明ユーザインターフェース２０５は、ペン１６６がその位置で位置決めされた時間の総合計およびペン１６６が初期位置から移動した距離を検討して、ポインタ入力が手書き入力または下にあるアプリケーションに関する入力のどちらであるかを判定する。たとえば、ペン１６６が新しい位置に移動されるたびに、透明インターフェース２０５は、ペン１６６が閾値時間だけその位置から閾値距離以内にとどまるか否かを判定するためのカウンタを開始することができる。したがって、ペン１６６は、その位置からわずかに揺れるまたは移動するかもしれないが、透明インターフェース２０５は、ペン１６６が時間の閾値長さ以内にその位置から閾値距離を超えて移動しない場合に、依然としてホールドスルーコマンドを登録する。本発明の代替実施形態では、ペン１６６が、初期位置から閾値距離以内にすばやく戻される限り、非常に短い時間期間のあいだだけ閾値距離を超えてペン１６６を移動できるようにすることすらできる。
【００４１】
同様に、透明ユーザインターフェース２０５は、ポインタ入力を手書き入力または下にあるユーザインターフェース２０３に関する入力のどちらとして扱わなければならないかを判定する際に、ポインタ入力のコンテキストも考慮することができる。たとえば、ペン１６６が、下にあるユーザインターフェース２０３のボタンまたはメニュー選択肢に対応する単一の位置に保持される場合に、透明ユーザインターフェース２０５は、ポインタ入力を、その下にあるインターフェースへの入力として扱う可能性が高い。たとえば、透明ユーザインターフェースは、ユーザがホールドスルー技法を使用しているか否かを判定する際に、閾値時間、閾値距離、またはこの両方を緩和することができる。その代わりに、ペン１６６が、下にあるユーザインターフェース２０３のグラフィカルオブジェクトに対応しない単一の位置に保持される場合には、透明ユーザインターフェース２０５は、そのポインタ入力を手書き入力として扱う可能性が高い。
【００４２】
有利なことに、ポインタ入力のある部分が、下にあるユーザインターフェース２０３に関する入力であると判定されたならば、そのポインタ入力のすべてが、手書きではなく下にあるユーザインターフェース２０３に関する入力として扱われる。したがって、ユーザが、下にあるユーザインターフェース２０３へのポインタ入力のホールドスルーを確立するのに十分に長くペン１６６を単一の位置に保持した後に、ペン１６６が書込み領域から持ち上げられる前に得られた後続のポインタ入力のすべてが、手書きではなく下にあるユーザインターフェース２０３に関する入力として扱われる。これによって、便利なことに、ユーザが、下にあるユーザインターフェース２０３にホールドスルーし、その後、ペン１６６を手書き領域から持ち上げずにペン１６６を移動することによってグラフィカルオブジェクトを移動する（または複数のグラフィカルオブジェクトを選択する）ことができるようになる。
【００４３】
同様に、ユーザが、ホールドスルーを確立するのに十分に長くペン１６６を単一の位置に保持する前に受け取られるポインタ入力も、手書き入力ではなく下にあるユーザインターフェース２０３への入力として扱われる。たとえば、ユーザが、手書き領域を横切ってペン１６６を移動することができる。ペン１６６からのこの初期ポインタ入力は、手書き入力として扱われ、透明インターフェースによって、この手書き入力に対応する手書きオブジェクトが表示される。ユーザが、手書き領域からペン１６６を持ち上げずに時間の閾値長さを超えてペン１６６を静止状態に保持する場合に、前に手書き入力として認識されたポインタ入力のすべてが、下にあるユーザインターフェース２０３に関するポインタ入力として扱われる。このポインタ入力に対応する手書きオブジェクトが、削除される。ポインタ入力に対応するアクションが、適当な下にあるユーザインターフェース２０３（すなわち、ポインタ入力の下にあるユーザインターフェース）で行われる。したがって、ユーザが、下にあるユーザインターフェース２０３にフォーカスを変更せずに、下にあるユーザインターフェース２０３内のグラフィカルオブジェクトをドラッグ（または複数のグラフィカルオブジェクトを選択）しようとしてうっかりペン１６６を移動した場合に、ユーザは、単純にペン１６６をその宛先の位置に保持することによって、所期の目的のためにポインタ入力を使用することができる。
【００４４】
ポインタ入力を下にあるユーザインターフェース２０３にパススルーするもう１つの技法が、ジェスチャの認識である。当業者によって理解されるように、いくつかの手書き認識処理では、手書き入力ストロークの特定の配置が、テキストではなくコマンドとして認識される。これらの特定の手書き入力ストロークを、一般にジェスチャと称する。たとえば、本発明による透明ユーザインターフェース２０５は、手書きストロークの特定の組合せを、コマンドスペース、バックスペース、およびタップ（すなわち、ユーザがマウスのボタンを押した時などの制御機能のアクティブ化）に関するジェスチャとして認識することができる。もちろん、透明ユーザインターフェース２０５を、追加のまたは代替のジェスチャを認識するように修正することができる。
【００４５】
透明ユーザインターフェース２０５は、透明ユーザインターフェース２０５に固有のものとしていくつかのジェスチャを認識し、下にあるアプリケーションに固有のものとして他のジェスチャを認識することができる。その代わりにまたは追加して、透明ユーザインターフェース２０５は、ヒューリスティックを使用して、ジェスチャが透明ユーザインターフェース２０５または下にあるユーザインターフェース２０３のどちらに関する入力であることを意図されたかを判定することができる。たとえば、透明ユーザインターフェース２０５は、ひっかくジェスチャを、ジェスチャによって示されるテキストを削除するコマンドとして認識することができる。ひっかくジェスチャが、透明ユーザインターフェース２０５のうちで手書きオブジェクトを含む部分で受け取られる場合に、透明ユーザインターフェース２０５は、ひっかくジェスチャを透明ユーザインターフェース２０５への入力として扱い、示された手書きオブジェクトおよび関連する手書き入力を削除する。
【００４６】
代わりに、ひっかくジェスチャが、手書き領域内で手書きオブジェクトを含まない位置で受け取られる場合には、そのひっかくジェスチャが、挿入ポイントを含む下にあるユーザインターフェース２０３に渡される。そのひっかくジェスチャを適用して、下にあるユーザインターフェース２０３から前に認識されたテキストを削除することができる。さらに、ひっかくジェスチャが、手書き領域内で最近に手書きオブジェクトが含まれた位置で受け取られる場合に、そのひっかくジェスチャが、手書きオブジェクトに対応する認識された手書き入力を受け取った下にあるユーザインターフェース２０３に渡される。さらに、手書きジェスチャを使用して、認識されたテキストを削除することができる。
【００４７】
ジェスチャを認識するほかに、透明ユーザインターフェース２０５は、ヒューリスティックを使用して、ユーザが手書き入力として意図としたポインタ入力を、ユーザが下にあるユーザインターフェース２０３に関する入力として意図したポインタ入力と区別することができる。たとえば、これらのヒューリスティックでは、手書き入力として使用されることを意図されたポインタ入力に固有の特性を識別し、これらの特性を含まないポインタ入力を、下にあるユーザインターフェース２０３に関する入力として扱うことができる。あるいは、これらのヒューリスティックで、下にあるユーザインターフェース２０３への入力として使用されることを意図されるポインタ入力に固有の特性を識別し、これらの特性を含まないポインタ入力のすべてへのエントリを、手書き入力として扱うことができる。
【００４８】
本発明の透明ユーザインターフェース２０５によって、下にあるユーザインターフェース２０３にポインタ入力をパススルーするのに使用することができるもう１つの技法が、その、下にあるユーザインターフェース２０３を、除外されたウィンドウとして指定することである。具体的に言うと、透明ユーザインターフェース２０５によって、ユーザまたはソフトウェアアプリケーションが、特定のユーザインターフェースを除外されたウィンドウとして指定できるようにすることができる。透明ユーザインターフェース２０５は、除外されたウィンドウに対応する位置でポインタ入力を受け取る時に、ポインタ入力を手書きとして扱わない。その代わりに、透明ユーザインターフェース２０５は、自動的にポインタ入力を下にある除外されたウィンドウに関する入力とみなし、そのポインタ入力を下にあるユーザインターフェース２０３に供給する。したがって、手書き入力を、除外されたウィンドウの上で書き込むことはできず、手書きオブジェクトは、除外されたウィンドウに表示されない。しかし、本発明のいくつかの実施形態では、書込みのユーザ継続性を可能にするために、手書き領域のうちで除外されたウィンドウの上でない部分で開始される手書きを、除外されたウィンドウの上で継続することができる。
【００４９】
そのような除外されるウィンドウの例に、たとえばスクロールバーが含まれる。スクロールバーを、除外されるウィンドウとして指定することによって、ユーザが、クイックタップ技法またはホールドスルー技法に対応するポインタ入力を作成する必要なしに、下にあるアプリケーションを介してスクロールできるようになる。除外されるウィンドウとして指定することができるユーザインターフェースのもう１つのタイプが、不正確に認識されたテキストを訂正する訂正ユーザインターフェースである。本発明のいくつかの実施形態では、ユーザが、除外されるウィンドウとしてユーザインターフェースを指定することだけが許可され、本発明の他の実施形態では、外部ソフトウェアアプリケーションが、除外されるウィンドウとしてユーザインターフェースを指定することだけが許可される。もちろん、本発明の他の実施形態では、ユーザおよび外部ソフトウェアアプリケーションの両方が、除外されるウィンドウとしてユーザインターフェースを指定することが許可される。
【００５０】
ライトエニウェアツール
図７に、上で説明した本発明の透明ユーザインターフェース２０５を実施するライトエニウェアツールを示す。この図からわかるように、ライトエニウェアツール７０１には、階層化インク制御モジュール７０３が含まれる。下で詳細に述べるように、階層化インク制御モジュール７０３には、手書き入力認識モジュール７０５、ポインタ入力宛先モジュール７０７、およびレンダリングモジュール７０９が含まれ、レンダリングモジュール７０９は、マージンライン２０９、ガイドライン２１１、および手書き入力に対応する手書きオブジェクトを表示する。ライトエニウェアツール７０１は、テキスト入力パネルモジュール７１１によってホストされる。下で詳細に述べるように、テキスト入力パネルモジュール７１１の目的は、本発明の透明ユーザインターフェース２０５の使用を含めて、ユーザに複数のデータ入力オプションを提供することである。コールバックモジュール７１３が、階層化インク制御モジュール７０３からレンダリングモジュール７０９にデータを運ぶ。
【００５１】
ライトエニウェアツール７０１のコンポーネントのほかに、図７には、ペン入力アプリケーションプログラムインターフェース（ＡＰＩ）７１５およびディジタイジングディスプレイ７１７も示されている。当業者に知られているように、ペン入力ＡＰＩ７１５は、ペンまたはスタイラス１６６がディジタイジングディスプレイ７１７に接触する時に作成されるポインタ入力を受け取る。ペン入力ＡＰＩ７１５が次いで、受け取ったポインタ入力を、ライトエニウェアツール７０１の階層化インク制御モジュール７０３に渡す。ペン入力ＡＰＩ７１５にペン入力を供給するほかに、ディジタイジングディスプレイ７１７は、レンダリングモジュール７０９および下にあるアプリケーションユーザインターフェースからデータを受け取り、表示する。前述したように、ディジタイジングディスプレイ７１７では、モニタディスプレイがディジタイザ１６５と組み合わされ、その結果、ユーザが、単純にペンまたはスタイラス１６６をディジタイジングディスプレイ７１７の表面に接触させることによって、表示されたグラフィカルオブジェクトを便利にポイントできるようになる。しかし、当業者に理解されるように、本発明の他の実施形態では、ディジタイザ１６５を、ディスプレイと別に実施することができる。
【００５２】
図７には、関連する下にあるアプリケーションユーザインターフェースと共に、下にあるアプリケーションも示されている。上で説明したように、下にあるユーザインターフェース２０３は、本発明の透明入力パネルの下に表示されるインターフェースである。下にあるアプリケーションは、下にあるユーザインターフェース２０３をホストするソフトウェアアプリケーションである。図７には、単一の下にあるアプリケーションおよび関連する下にあるアプリケーションユーザインターフェースだけが示されているが、本発明の透明ユーザインターフェース２０５は、複数の異なる下にあるユーザインターフェース２０３にオーバーレイすることができる。これらの下にあるユーザインターフェース２０３を、単一の下にあるソフトウェアアプリケーションによって、または複数の下にあるソフトウェアアプリケーションによって、ホストすることができる。
【００５３】
ライトエニウェアツール７０１の動作を、図８に示された流れ図に関して説明する。ステップ８０１で、階層化インク制御モジュール７０３が、ペン入力ＡＰＩ７１５からポインタ入力を受け取る。その後、ステップ８０３で、ポインタ入力宛先モジュール（ｐｏｉｎｔｅｒ  ｉｎｐｕｔ  ｄｅｓｔｉｎａｔｉｏｎ  ｍｏｄｕｌｅ）７０７が、ポインタ入力を手書き入力または下にあるアプリケーションに関する入力のどちらとして扱わなければならないかを判定する。したがって、ポインタ入力宛先モジュール７０７は、ポインタ入力が、クイックタップ、ホールドスルー入力、または上で説明した下にあるアプリケーションに関するコマンドを表すジェスチャとして限定されるか否かを判定するヒューリスティックを適用する。さらに、ポインタ入力宛先モジュール７０７は、ポインタ入力が、除外されるウィンドウとして指定された下にあるユーザインターフェース２０３に対応するディスプレイ領域２０１上の位置で受け取られたか否かを判定する。
【００５４】
ポインタ入力宛先モジュール７０７が、ポインタ入力が下にあるアプリケーションに関する入力であると判定する場合には、ステップ８０５で、階層化インク制御モジュール７０３が、その入力を下にあるアプリケーションに供給する。本発明のいくつかの実施形態で、階層化インク制御モジュール７０３が、下にあるアプリケーションに直接にポインタ入力を供給することができる。その代わりに、階層化インク制御モジュール７０３が、ポインタ入力を下にあるアプリケーションに伝えることの指示と共に、ペン入力ＡＰＩ７１５にポインタ入力を単純に返すことができる。下にあるアプリケーションがポインタ入力を受け取ったならば、そのアプリケーションは、ポインタ入力に応答し、下にあるアプリケーションユーザインターフェース内で適当な対応するアクションを表示する。
【００５５】
その一方で、ポインタ入力宛先モジュール７０７が、ポインタ入力が手書き入力であると判定する場合には、ステップ８０７で、ポインタ入力宛先モジュール７０７が、ポインタ入力を認識のために手書き入力認識モジュール７０５に中継する。さらに、ステップ８０９で、ポインタ入力宛先モジュール７０７が、手書き入力をレンダリングモジュール７０９への手書き入力に渡す。ステップ８１１で、レンダリングモジュール７０９が、手書き入力に対応する手書きオブジェクトを表示する。手書き入力認識モジュール７０５が、手書き入力の認識を開始する時に、コールバックモジュール７１３が、認識処理の開始のそれぞれをテキスト入力パネルモジュール７１１に報告する。テキスト入力パネルモジュール７１１は、認識処理が開始されたことをユーザに確認するインジケータを表示する。このインジケータは、たとえばスクロールするバーインジケータまたはスピニングオブジェクトとすることができるが、レンダリングモジュール７０９によって、または別の表示プロセスによって表示することができる。
【００５６】
コールバックモジュール７１３は、階層化インク制御モジュール７０３の状況がイネーブルまたはディスエーブルのどちらであるかに関してテキスト入力パネルモジュール７１１に報告する。この情報は、階層化インク制御モジュール７０３が開始された時とそれが実際に処理を開始する時との間の遅延を入力パネルモジュールに評価させ続けるのに有用である。テキスト入力パネルが、透明ユーザインターフェース２０５をアクティブ化するための別のユーザインターフェースを維持する場合には、このフィードバックの結果をそのインターフェースに表示することができる。たとえば、テキスト入力パネルが、ユーザがボタンを用いて透明ユーザインターフェース２０５をアクティブ化することができる別のユーザインターフェースを維持する場合に、階層化インク制御モジュール７０３がアクティブである時に、そのボタンを強調表示することができる。
【００５７】
手書き入力認識モジュール７０５は、手書き入力の認識を完了した時に、ステップ８１３で、認識されたテキストをテキスト入力パネルモジュール７１１に供給する。ステップ８１５で、テキスト入力パネルモジュール７１１が、認識された手書き入力を下にあるアプリケーションに供給する。下にあるアプリケーションは、下にあるアプリケーションユーザインターフェースに認識されたテキストを表示することができる。さらに、ステップ８１７で、階層化インク制御モジュール７０３が、レンダリングモジュール７０９に、認識された手書き入力に対応する手書きオブジェクトを削除するように指示する。本発明のいくつかの実施形態では、コールバックモジュール７１３が、認識処理が完了したことをテキスト入力パネルモジュール７１１にも知らせる。この場合に、テキスト入力パネルモジュール７１１は、認識処理の完了を確認する状況インジケータを表示することができる。このインジケータは、レンダリングモジュール７０９によって、または別の表示プロセスによって表示することができる。
【００５８】
レンダリングモジュール７０９に移ると、レンダリングモジュール７０９は、ディスプレイ領域２０１に約４００個の小さい階層化ウィンドウのアレイを実施する。このタイプのウィンドウは、階層化ウィンドウとして識別され、たとえばＭｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）ＸＰオペレーティングシステムで、Ｗｉｎ３２  ＡＰＩを使用して作成することができる。当業者に知られているように、このタイプの階層化ウィンドウは、透明であるが、グラフィカルオブジェクトを含めることができ、なおかつ下にあるユーザインターフェース２０３を更新でき、表示できるようになる。具体的に言うと、階層化ウィンドウの外見は、下にあるユーザインターフェース２０３とブレンドされ、その結果、ユーザが、両方に含まれるグラフィカルオブジェクトを明瞭に見られるようになる。階層化ウィンドウは透明なので（すなわち、ボーダー、ツールバー、またはメニューバーを含まない）、下にあるユーザインターフェース２０３に対する透明なオーバーレイとして機能する。
【００５９】
当業者によって理解されるように、このタイプの階層化ウィンドウは、部分的に更新することができず、完全に更新されなければならない。したがって、ディスプレイ領域２０１の適度な部分を含む単一の階層化ウィンドウを提供することによって、かなりの処理リソースが必要になる。階層化ウィンドウの外見は、下にあるユーザインターフェース２０３の外見とブレンドされるので、下にあるユーザインターフェース２０３または階層化ウィンドウの更新のそれぞれで、かなりの処理時間が必要になる。したがって、レンダリングモジュール７０９は、数百個の小さい階層化ウィンドウのアレイを使用する。これによって、便利なことに、単一の階層化ウィンドウを更新するのに必要な処理時間が減る。さらに、グラフィカルオブジェクトを含まない階層化ウィンドウ（すなわち、透明ユーザインターフェース２０５のうちでマージンライン２０９、ガイドライン２１１、または手書きオブジェクトを含まない部分）を、そのウィンドウに対応するポインタ入力をペン入力ＡＰＩ７１５が検出するまで、隠すことができる。
【００６０】
テキスト入力パネルモジュール７１１の目的は、データをコンピュータにサブミットするための複数のユーザインターフェースを提供することである。たとえば、階層化インク制御モジュール７０３をホストするほかに、テキスト入力パネルモジュール７１１は、上で述べた普通の単一目的手書き入力ユーザインターフェースを提供する他のモジュールもホストすることができる。さらに、テキスト入力パネルモジュール７１１は、音声認識処理およびソフトキーボード処理を実施するモジュールをホストすることができる。したがって、テキスト入力パネルモジュール７１１は、手書き入力認識モジュール７０５によって認識されたテキストを受け取って、下にあるアプリケーションに中継し、他のプロセスからの追加の認識されたテキストも受け取って、下にあるアプリケーションに中継することができる。もちろん、本発明による透明ユーザインターフェース２０５を提供するために、他のソフトウェアアプリケーションによって、階層化インク制御モジュール７０３およびレンダリングモジュール７０９をホストできることを、当業者は理解するであろう。
【００６１】
結論
本発明は、請求項を使用して定義されたが、これらの請求項は、本発明にいずれかの組合せまたはサブの組み合わせで本明細書に記載された要素およびステップを含めることができるので、例示的である。したがって、説明、請求項、および図面を含む本明細書からの１つまたは複数の要素をさまざまな組合せまたはサブの組み合わせせに組み込む、本発明を定義する任意の数の代替の組合せがある。本明細書に鑑みて、単独あるいは本明細書で定義される１つまたは複数の要素またはステップとの組合せのいずれであれ、本発明の諸態様の代替組合せは、本発明の修正形態または代替形態あるいは本発明の一部として使用することができることは当該分野の技術者には明らかであろう。本明細書に含まれる本発明の書かれた説明は、そのような修正形態および代替形態のすべてを含むことが意図されている。たとえば、さまざまな実施形態で、データに対するある順序を示した。しかし、データの任意の順序付けが、本発明に含まれる。また、サイズ（たとえばバイト単位またはビット単位）などの特性のある単位を使用したが、他のすべての単位も想定される。
【図面の簡単な説明】
【図１】本発明のさまざまな態様を実施するのに使用することができる汎用ディジタルコンピューティング環境を示す概略図である。
【図２】手書き入力を受け取る前の、本発明の一実施形態による手書きユーザインターフェースを示す図である。
【図３】ペンまたはスタイラスによって接触された時の、図２に示された手書きユーザインターフェースを示す図である。
【図４】手書き入力の１行を受け取った後の、図２に示された手書きユーザインターフェースを示す図である。
【図５】手書き入力の２行を受け取った後の、図２に示された手書きユーザインターフェースを示す図である。
【図６】下にあるユーザインターフェースが２行の手書き入力から認識されたテキストを受け取った後の、図５に示された手書きユーザインターフェースを示す図である。
【図７】本発明の一実施形態によるライトエニウェアツールのコンポーネントを示すブロック図である。
【図８】本発明の一実施形態によるライトエニウェアツールの動作のステップを示す流れ図である。
【符号の説明】
７０１  ライトエニウェアツール
７０３  階層化インク制御モジュール
７０５  手書き入力認識モジュール
７０７  ポインタ入力宛先モジュール
７０９  レンダリングモジュール
７１１  テキスト入力パネルモジュール
７１３  コールバックモジュール
７１５  ペン入力アプリケーションプログラムインターフェース（ＡＰＩ）
７１７  ディジタイジングディスプレイ
【図１】
0004373116.tif 000002
【図２】
0004373116.tif 000003
【図３】
0004373116.tif 000004
【図４】
0004373116.tif 000005
【図５】
0004373116.tif 000006
【図６】
0004373116.tif 000007
【図７】
0004373116.tif 000008
【図８】
0004373116.tif 000009