(57)【要約】      （修正有）【課題】グラフィックユーザインタフェース内のグラフィックオブジェクトの外観を制御する。【解決手段】グラフィックユーザインタフェース内のウィジェットなどのオブジェクトが、オブジェクトの動作を制御する定義されたプロパティ及び／またはメソッドがあるウィジェットクラスのインスタンス、及びオブジェクトの外観を制御する定義されたプロパティ及び／またはメソッドがある外観オブジェクトクラスの関連付けられたインスタンスを備える。【選択図】図７
2014089751.tif 000002
【特許請求の範囲】
【請求項１】
外観オブジェクトを定義することと、
外観オブジェクトをグラフィックオブジェクトと関連付けることと、
を備える、グラフィックユーザインタフェース内のグラフィックオブジェクトの外見を制御するための方法。
【請求項２】
外観オブジェクトが、グラフィックオブジェクトがどのように表示されるのかを決定するコードまたはパラメータを含む、請求項１に記載の方法。
【請求項３】
外観オブジェクトが、オブジェクト指向型プログラムコードによって定義される、請求項１または２に記載の方法。
【請求項４】
外観オブジェクトが、外観オブジェクトクラスを具体化することによって定義される、先行する請求項のいずれかに記載の方法。
【請求項５】
外観オブジェクトが、別の外観オブジェクトクラスに対するポインタを含む、請求項５に記載の方法。
【請求項６】
グラフィックオブジェクトが、グラフィックオブジェクトと関連付けられる外観オブジェクトを識別する属性を含む、先行する請求項のいずれかに記載の方法。
【請求項７】
外観オブジェクトを再定義するまたは修正することによって、あるいは別の外観オブジェクトをグラフィックオブジェクトと関連付けることによってグラフィックオブジェクトの外観を修正することをさらに備える、先行する請求項のいずれかに記載の方法。
【請求項８】
外観オブジェクトが、外観オブジェクトが再定義または修正されるときにその値が更新される更新カウンタを含む、先行する請求項のいずれかに記載の方法。
【請求項９】
外観オブジェクトが、外観オブジェクトによって呼び出すことのできるメソッドを示すバリデーションマスクを含む、先行する請求項のいずれかに記載の方法。
【請求項１０】
グラフィックユーザインタフェース内の複数のグラフィックオブジェクトの外見を制御する方法であり、外観オブジェクトを複数のグラフィックオブジェクトに関連付けることを備える、先行する請求項のいずれかに記載の方法。
【請求項１１】
複数のグラフィックオブジェクトが連結チェーンを備える、請求項１０に記載の方法。
【請求項１２】
外観オブジェクトが、その外観オブジェクトと関連付けられるグラフィックオブジェクトの数を示すカウンタを含む、先行する請求項のいずれかに記載の方法。
【請求項１３】
グラフィックオブジェクトの外見を制御する外観オブジェクトを提供することと、 グラフィックオブジェクトの動作を制御するウィジェットオブジェクトを提供することと、を備える、グラフィックユーザインタフェース内のグラフィックオブジェクトを定義する方法。
【請求項１４】
グラフィックオブジェクトを表示することをさらに備える、先行する請求項のいずれかに記載の方法。
【請求項１５】
グラフィックオブジェクトの表示可能なグループを定義することと、外観オブジェクトをグラフィックオブジェクトのグループと関連付けることとを備える、任意の先行する請求項に記載の方法。
【請求項１６】
グラフィックオブジェクトのグループの外見を制御する方法であって、グラフィックオブジェクトの複数の様々な表示可能なグループを定義するための、及び複数の表示可能なグループからグラフィックオブジェクトのグループを選択するための手段を提供するステップを含む前記方法。
【請求項１７】
グラフィックオブジェクトのグループの外見を制御する方法であって、グラフィックオブジェクトの表示可能なグループを定義することを含む方法。
【請求項１８】
あるグループからのグラフィックオブジェクトの表現が、例えば、色、形状、サイズ、テクスチャまたはパターンの１つまたは複数において、別のグループのグラフィックオブジェクトの表現と異なる、請求項１５〜１７のいずれか１つに記載の方法。
【請求項１９】
グラフィックオブジェクトのグループが、グラフィックオブジェクトの連結チェーンを表示するための要素を備える、請求項１５〜１８のいずれか１つに記載の方法。
【請求項２０】
グラフィックオブジェクトのグループが、静的オブジェクト及びアクティブオブジェクトを備える、請求項１５〜１９のいずれか１つに記載の方法。
【請求項２１】
グラフィックユーザインタフェース内のグラフィックオブジェクトの外見を制御する方法であって、グラフィックオブジェクトの表現を表示する上で使用するためのグラフィックオブジェクトの複数のグラフィックオブジェクト要素を定義することを備える前記方法。
【請求項２２】
方法が、グラフィックオブジェクトのグラフィックオブジェクト要素の複数の様々な集合を定義することを含む、請求項２１に記載の方法。
【請求項２３】
固定された要素の集合及び繰り返し可能な要素の集合を定義することを含む、請求項２１または請求項２２に記載の方法。
【請求項２４】
グラフィックオブジェクトのために要素のキットを作成する方法であって、グラフィックオブジェクトのインスタンスに共通の固定要素の集合を定義し、さらに繰り返し可能な要素の集合を定義することを備える前記方法。
【請求項２５】
グラフィックユーザインタフェース内のグラフィックオブジェクトの表現を表示する方法であって、複数のグラフィックオブジェクト要素をアセンブルすることを備える、前記方法。
【請求項２６】
固定要素の集合を表示することと、複数の繰り返し可能な要素を表示することとを備える、請求項２５に記載の方法。
【請求項２７】
ＧＵＩ内のグラフィックオブジェクトの外見を制御する方法であって、グラフィックオブジェクトの第１の表示可能な表現を定義することと、グラフィックオブジェクトの第２の表示可能な表現をさらに定義することとを備え、第２表現が第１表現に隣接して表示可能である前記方法。
【請求項２８】
第１表現がアイコンを備える、請求項２７に記載の方法。
【請求項２９】
第２表現がグラフィックオブジェクトのテキスト記述を備える、請求項２７または２８に記載の方法。
【請求項３０】
第２表現が選択的に表示可能であり、好ましくは、第１表現にフォーカスを当てることによって表示可能である、請求項２７〜２９のいずれか１つに記載の方法。
【請求項３１】
方法が、グラフィックオブジェクトの連結チェーンを定義することを含み、第１表現及び第２表現がチェーンの連結として表示可能である、請求項２７〜３０のいずれか１つに記載の方法。
【請求項３２】
第１表現と第２表現を連結するための連結要素を定義することを備える、請求項２７〜３１のいずれか１つに記載の方法。
【請求項３３】
外観オブジェクトを第１表現、第２表現、及び好ましくは連結要素に関連付けることを備える、請求項２７〜３１のいずれか１つに記載の方法。
【請求項３４】
グラフィックオブジェクトを表示する方法であって、グラフィックオブジェクトの第１表現を表示することと、グラフィックオブジェクトの第２表現を表示することと、第１表現と第２表現を連結する連結要素を表示することとを備える方法。
【請求項３５】
グラフィックユーザインタフェース内のグラフィックオブジェクトの外見を制御する方法であって、グラフィックオブジェクトの連結チェーンを定義することを備える方法。
【請求項３６】
グラフィックユーザインタフェース内のグラフィックオブジェクトの外見を制御する方法であって、第１グラフィックオブジェクトを定義することと、第２グラフィックオブジェクトを定義することと、グラフィックオブジェクトを連結するための連結要素を定義することとを備える方法。
【請求項３７】
方法が、さらに、グラフィックオブジェクトのサブチェーンを定義することを含み、前記サブチェーンが、連結チェーンからの分岐を備え、好ましくは前記サブチェーンが選択的に表示可能である、請求項３５または請求項３６に記載の方法。
【請求項３８】
グラフィックユーザインタフェース内のグラフィックオブジェクトの表現を表示する方法であって、グラフィックオブジェクトの表現を表示することと、グラフィックオブジェクト間の連結を示すための連結要素の表現を表示することとを備える方法。
【請求項３９】
連結要素の表現がグラフィックオブジェクトの表現の間に及び、好ましくは、方法はグラフィックオブジェクトの表現の連結チェーンを表示することを含む、請求項３８に記載の方法。
【請求項４０】
ＧＵＩ内のグラフィックオブジェクトの外見を制御する方法であって、グラフィックオブジェクトの第１表現及びグラフィックオブジェクトの第２表現を定義することとを備え、第１表現と第２表現が、選択的に表示可能である、好ましくは周期的に表示可能である前記方法。
【請求項４１】
第１表現がアイコンを含み、及び／または第２表現がグラフィックオブジェクトのテキスト記述を含む、請求項４０に記載の方法。
【請求項４２】
ＧＵＩ内のグラフィックオブジェクトの表現を表示する方法であって、グラフィックオブジェクトの第１表現を表示することと、それ以降グラフィックオブジェクトの第２表現を表示することとを備える前記方法。
【請求項４３】
方法が、第１表現と第２表現の間で表現のシーケンスを表示することを含む、請求項４２に記載の方法。
【請求項４４】
１つまたは複数のグラフィックオブジェクトを表示することをさらに備える、任意の先行する請求項に記載の方法。
【請求項４５】
好ましくは、テレビセットとともに使用するためである受信機／デコーダ、好ましくはデジタルまたはアナログのテレビ受信機／デコーダによって実行される、あるいは移動電話によって実行される、請求項１〜４４のいずれか１つに記載の方法。
【請求項４６】
外観オブジェクトを定義するための手段と、 外観オブジェクトをグラフィックオブジェクト関連付けるための手段と、を備える、グラフィックユーザインタフェース内のグラフィックオブジェクトの外見を制御するための装置。
【請求項４７】
グラフィックオブジェクトのグループの外見を制御するための装置であって、グラフィックオブジェクトの複数の様々な表示可能なグループを定義するための、及び複数の表示可能なグループからグラフィックオブジェクトのグループを選択するための手段を備える装置。
【請求項４８】
グラフィックオブジェクトのグループの外見を制御するための装置であって、グラフィックオブジェクトの表示可能なグループを定義するための手段を含む装置。
【請求項４９】
グラフィックオブジェクトのグループが、グラフィックオブジェクトの連結チェーンを表示するための要素を備え、及び／またはグラフィックオブジェクトのグループが静的オブジェクト及びアクティブオブジェクトを備える、請求項４７または４８に記載の装置。
【請求項５０】
グラフィックユーザインタフェース内のグラフィックオブジェクトの外見を制御するための装置であって、グラフィックオブジェクトの表現を表示する際に使用するためのグラフィックオブジェクトの複数のグラフィックオブジェクト要素を定義するための手段を備える装置。
【請求項５１】
グラフィックオブジェクトのインスタンスに共通の固定要素の集合、及び繰り返し可能要素の集合を備える、グラフィックオブジェクトを表示する際に使用するための要素のキット。
【請求項５２】
グラフィックユーザインタフェース内のグラフィックオブジェクトの表現を表示するための装置であって、複数のグラフィックオブジェクト要素をアセンブルするための手段を備える装置。
【請求項５３】
ＧＵＩ内のグラフィックオブジェクトの外見を制御するための装置であって、グラフィックオブジェクトの第１表示可能表現を定義するための手段と、グラフィックオブジェクトの第２表示可能表現を定義するための手段、及び第１表現に隣接している第２表現を表示するための手段を備える装置。
【請求項５４】
好ましくは第１表現にあるフォーカスを検出するときに、第２表現を選択的に表示するための手段を含む、請求項５３に記載の装置。
【請求項５５】
グラフィックオブジェクトを表示するための装置であって、グラフィックオブジェクトの第１表現を表示するための手段と、グラフィックオブジェクトの第２表現を表示するための手段と、第１表現と第２表現を連結する連結要素を表示するための手段とを備える装置。
【請求項５６】
グラフィックユーザインタフェース内のグラフィックオブジェクトの外見を制御するための装置であって、グラフィックオブジェクトの連結チェーンを定義するための手段を備える装置。
【請求項５７】
グラフィックユーザインタフェース内のグラフィックオブジェクトの外見を制御するための装置であって、第１グラフィックオブジェクトを定義する、第２グラフィックオブジェクトを定義する、及びグラフィックオブジェクトを連結するための連結要素を定義するための手段を備える装置。
【請求項５８】
グラフィックユーザインタフェース内のグラフィックオブジェクトの表現を表示するための装置であって、グラフィックオブジェクトの表現を表示するための手段と、グラフィックオブジェクト間に連結を示すための連結要素の表現を表示するための手段とを備える装置。
【請求項５９】
ＧＵＩ内のグラフィックオブジェクトの外見を制御するための装置であって、グラフィックオブジェクトの第１表現及びグラフィックオブジェクトの第２表現を定義するための手段と、第１表現と第２表現を選択的に表示するための手段と、好ましくは第１表現と第２表現を周期的に表示するための手段を備える装置。
【請求項６０】
ＧＵＩ内のグラフィックオブジェクトの表現を表示するための装置であって、グラフィックオブジェクトの第１表現を表示するための手段と、グラフィックオブジェクトの第２表現をそれ以降表示するための手段とを備える装置。
【請求項６１】
表示する第１表現と第２表現の間で表現のシーケンスを表示するための手段をさらに備える、請求項６０に記載の装置。
【請求項６２】
好ましくはテレビセットとともに使用するためである、受信機／デコーダ、好ましくはデジタルまたはアナログのテレビ受信機／デコーダを備える、あるいは移動電話を備える、請求項４６〜６１のいずれか１つに記載の装置。
【請求項６３】
請求項４６〜６１のいずれか１つに記載の装置を備える受信機／デコーダ。
【請求項６４】
請求項６３に記載の受信機／デコーダ、及び前記受信機／デコーダに接続される、あるいは接続可能であるテレビセットを備えるテレビシステム。
【請求項６５】
オブジェクトの動作を制御するウィジェットクラスのインスタンスと、 オブジェクトの外見を制御する外観オブジェクトクラスのインスタンスと、を備える、グラフィックユーザインタフェース内のオブジェクト。
【請求項６６】
ウィジェット集合が複数のウィジェットクラス及び１つまたは複数の外観オブジェクトクラスを備える、請求項６５に記載のオブジェクトを作成するためのウィジェット集合。
【請求項６７】
アクティブオブジェクト及び静的オブジェクトを備えるグラフィックオブジェクトのグループを備え、グラフィックオブジェクトが連結チェーンである、グラフィックユーザインタフェース内のオブジェクト。
【請求項６８】
グラフィックオブジェクトの第１表現及びグラフィックオブジェクト第２表現、及び第１表現と第２表現を連結する連結要素を備える、グラフィックユーザインフタフェース内のオブジェクト。
【請求項６９】
グラフィックオブジェクトの連結チェーンを備えるグラフィックユーザインタフェース内のオブジェクト。
【請求項７０】
第１グラフィックオブジェクト、第２グラフィックオブジェクト、及び第１グラフィックオブジェクトと第２グラフィックオブジェクトを連結する連結要素とを備える、グラフィックユーザインタフェース内のオブジェクト。
【請求項７１】
グラフィックオブジェクトのサブチェーンを含み、前記サブチェーンが連結チェーンから分岐を備え、好ましくはサブチェーンが選択的に表示可能である、請求項６９または請求項７０に記載のオブジェクト。
【請求項７２】
グラフィックオブジェクトの第１表現及びグラフィックオブジェクトの第２表現を備え、第１表現と第２表現が、選択的に表示可能である、好ましくは周期的に表示可能であるＧＵＩ内のオブジェクト。
【請求項７３】
プロセッサ、メモリ、及びディスプレイに信号を出力するための出力ポートを備え、前記メモリがその中に請求項１〜４５のいずれかの方法を実行するためのプログラムを記憶し、請求項６５または請求項６７〜７２に記載のオブジェクトと、請求項６６に記載のウィジェット集合を備える、グラフィックユーザインタフェースを実現するためのアプリケーション実行デバイス。
【請求項７４】
外観オブジェクトまたは外観オブジェクトクラスが、グラフィックオブジェクトの以下のプロパティ（存在する場合）：
背景外見、
背景オーバレイ、
前景外見、
前景オーバレイ、
レリーフまたは陰影の外見、
オブジェクト境界線の外見、
オブジェクトに割り当てられたフォーカスの表示、
オブジェクトに割り当てられる任意の強調表示の表示
の少なくとも１つがどのようにして表示されるのかを定義する、任意の先行する請求項に記載の方法、装置、デバイス、オブジェクトまたはウィジェット集合。
【請求項７５】
外観オブジェクトを定義するため、及び 外観オブジェクトをグラフィックオブジェクトに関連付けるためのコードを備えるコンピュータプログラム製品。
【請求項７６】
グラフィックオブジェクトの外見を制御する外観オブジェクトを提供するためのコードと、 グラフィックオブジェクトの動作を制御するウィジェットオブジェクトを提供するためのコードと、を備える、グラフィックユーザインタフェース内のグラフィックオブジェクトを定義する際に使用するためのコンピュータプログラム製品。
【請求項７７】
複数の異なる表示可能なグラフィックオブジェクトのグループを定義するため、及び複数の表示可能なグループからグラフィックオブジェクトのグループを選択するためのコードを含む、グラフィックオブジェクトのグループの外見を制御する方法で使用するためのコンピュータプログラム製品。
【請求項７８】
グラフィックオブジェクトの表示可能グループを定義するためのコードを備える、グラフィックオブジェクトのグループの外見を制御する方法で使用するためのコンピュータプログラム製品。
【請求項７９】
グラフィックオブジェクトの表現を表示する際に使用するためのグラフィックオブジェクトの複数のグラフィックオブジェクト要素を定義するためのコードを備える、グラフィックユーザインタフェース内のグラフィックオブジェクトの外見を制御する方法で使用するためのコンピュータプログラム製品。
【請求項８０】
グラフィックオブジェクトのインスタンスに共通の固定要素の集合を定義するため、及び繰り返し可能な要素の集合を定義するためのコードを備える、グラフィックオブジェクトに要素のキットを作る方法で使用するためのコンピュータプログラム製品。
【請求項８１】
複数のグラフィックオブジェクト要素をアセンブルするためのコードを備える、グラフィックユーザインタフェース内のグラフィックオブジェクトの表現を表示する方法で使用するためのコンピュータプログラム製品。
【請求項８２】
グラフィックオブジェクトの第１表示可能表現を定義するため、及びグラフィックオブジェクトの第２表示可能表現を定義するためのコード、及び第１表現に隣接して第２表現を表示するためのコードを備える、ＧＵＩ内のグラフィックオブジェクトの外見を制御する方法で使用するためのコンピュータプログラム製品。
【請求項８３】
グラフィックオブジェクトの第１表現を表示する、グラフィックオブジェクトの第２表現を表示する、及び第１表現と第２表現を連結する連結要素を表示するためのコードを備える、グラフィックオブジェクトを表示する方法で使用するためのコンピュータプログラム製品。
【請求項８４】
グラフィックオブジェクトの連結チェーンを定義するためのコードを備える、グラフィックユーザインタフェース内のグラフィックオブジェクトの外見を制御する方法で使用するためのコンピュータプログラム製品。
【請求項８５】
第１グラフィックオブジェクトを定義する、第２グラフィックオブジェクトを定義する、及びグラフィックオブジェクトを連結するための連結要素を定義するためのコードを備える、グラフィックユーザインタフェース内のグラフィックオブジェクトの外見を制御する方法で使用するためのコンピュータプログラム製品。
【請求項８６】
グラフィックオブジェクトの表現を表示するため、及びグラフィックオブジェクト間に連結を示すための連結要素の表現を表示するためのコードを備える、グラフィックユーザインタフェース内のグラフィックオブジェクトの表現を表示する方法で使用するためのコンピュータプログラム製品。
【請求項８７】
グラフィックオブジェクトの第１表現及びグラフィックオブジェクトの第２表現を定義するためのコード、及び第１表現と第２表現を選択的に表示する、好ましくは表現を周期的に表示するためのコードとを備える、ＧＵＩ内のグラフィックオブジェクトの外見を制御する方法で使用するためのコンピュータプログラム製品。
【請求項８８】
グラフィックオブジェクトの第１表現を表示するため、及びグラフィックオブジェクトの第２表現をそれ以降に表示するためのコードを備える、ＧＵＩ内のグラフィックオブジェクトの表現を表示する方法で使用するためのコンピュータプログラム製品。
【請求項８９】
受信機／デコーダと使用するための、請求項７５〜８９のいずれか１つに記載のコンピュータプログラム製品。
【請求項９０】
メモリ及びプロセッサを備え、前記メモリがその中にアプリケーションを記憶し、（前記アプリケーションの制御下にある）前記プロセッサが請求項１〜４５のいずれかに記載の方法を実行するように適応される、コンピュータプログラム製品。
【請求項９１】
請求項１〜４５のいずれかに記載の方法を実行するためのプログラムを備えるコンピュータプログラム製品。
【請求項９２】
請求項１〜４５のいずれかに記載の方法を実行するためのコンピュータプログラム。
【請求項９３】
請求項１〜４５のいずれかに記載の方法を実行するためのプログラムを記憶しているコンピュータ読み取り可能媒体。
【請求項９４】
請求項７５〜９１のいずれかに記載のコンピュータプログラム製品を記憶しているコンピュータ読み取り可能媒体。
【請求項９５】
請求項７５〜９１のいずれかに記載のコンピュータプログラム製品を有形に実現する信号。
【請求項９６】
実質的には、添付図面に関してここに説明され、添付図面に示されるような方法。
【請求項９７】
実質的には、添付図面に関してここに説明され、添付図面に示されるような装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、グラフィックユーザインタフェースに関する。発明の一態様は、グラフィックユーザインタフェース内のグラフィックオブジェクトの外観を制御する方法に関する。発明の態様は、受信機／デコーダ、テレビシステム、コンピュータプログラム製品、コンピュータ読み取り可能媒体及び信号に関する。発明の態様は、デジタルテレビ信号用の受信機／デコーダなどの機器にグラフィックユーザインタフェースを提供する上で、特定であるが、排他的ではない用途を有する。しかしながら、発明の態様は、汎用コンピュータ及びその他の機器にも用途を有する。
【０００２】
大部分のグラフィックユーザインタフェース（ＧＵＩ）は、ユーザが操作できる基本構成要素の類似した集合を含む。これらは、プッシュボタン、スライダ、リストボックス等のオブジェクトを含む。このような構成要素は、一般的には「ウィジェット」と呼ばれる。ウィジェットの基本的な機能は、多くのＧＵＩの中で共通であるが、ウィジェットの外見はあるＧＵＩと別のＧＵＩで異なる。
【０００３】
いくつかのグラフィックオペレーティングシステム、例えばＸウィンドウシステムは、ＧＵＩで表示できるウィジェットの外見にほとんど制約を課さない。これにより、プログラマは、そのそれぞれが独自の異なる外見を有する、数多くの異なるウィジェット集合を使用してアプリケーションを展開できる。さらに、大多数のウィンドウマネージャは、アプリケーションによって作成されるウィンドウの全体的な外見に影響を及ぼすＸの下で実行する。通常、アプリケーションの展開中とある程度まで実行時間での両方でＧＵＩに表示されるようにアプリケーションの外見にある程度の制御を行使することができる。しかしながら、外見は、両方のケースで、ウィジェット集合またはウィンドウマネージャのハード符号化された部分によって決定される。ユーザは、ウィジェット集合、ウィンドウマネージャ、または両方を再符号化することなく、アプリケーションの外観を大幅に変更することができる。これらのオプションのいずれかは、大量の再符号化作業、及びホストシステムにインストールされる大量の新しいコードを必要とする。
【０００４】
外観を更新するために実行されなければならない再符号化作業量を削減するための１つの提案は、ホストシステムのメモリに記憶されたピクセルマップからのＧＵＩディスプレイ中にウィンドウの要素（例えば、角、境界等）を構築することである。これは、発明の独立した態様として提供されてよい。しかしながら、ピクセルマップは、使用中にかなりの量のメモリを占有し、外観を更新しなければならないときに転送される大量のデータを表すことがある。これは、ＧＵＩが限られたリソースと動作しなければならず、制限された帯域幅のリンクで更新されなければならない場合に大きな不利な点となり得る。このような状況の一例は、アプリケーションがデジタルテレビ信号用受信機／デコーダで実行されるときに生じる。このようなデコーダは、汎用コンピュータと比較して限られた量のメモリを有し、（ＧＵＩの外観を含む）ソフトウェアは、受信されたテレビ信号の一部を形成するチャネルからデータをダウンロードすることによって更新される。
【０００５】
本発明の目的は、最小の再符号化が必要とされ、最小のデータが実行環境に転送されることを必要とされる状態で、アプリケーション展開者に、一貫した、容易に制御可能な方法でアプリケーションの外観を制御する能力を与えることである。
【０００６】
本発明の第1態様では、
外観オブジェクトを画定することと、
外観オブジェクトを、グラフィックオブジェクトと関連付けることと、を備える、グラフィックユーザインタフェース内でグラフィックオブジェクトの外見を制御する方法が提供される。
【０００７】
アプリケーションの外見を制御するコードを埋め込むよりも、外観オブジェクトを明確に画定することによって、本発明は、グラフィックオブジェクトの外見を制御する方法において従来よりもいっそう柔軟にすることができる。
【０００８】
好ましくは、外観オブジェクトは、グラフィックオブジェクトがどのようにして表示されるのかを決定するコードまたはパラメータを含み、このようなコードまたはパラメータは、好ましくはメモリに記憶される。例えば、外観オブジェクトは、オブジェクト指向型プログラムコードによって画定されてよい。
【０００９】
外観オブジェクトは、外観オブジェクトクラスを具体化することによって画定されてよい。このようにして定義される外観オブジェクトは、（それがその中から引き出されるもの以外の）別の外観オブジェクトクラスに対するポインタを含んでよい。これは、外観オブジェクトがそれ以外の外観クラスの属性及び／またはメソッドにアクセスできるようにする。このようにして、外観オブジェクトは、２つ以上の他の外観からその特徴を取り出すことができ、それが、２つの異なる外観の結合である外観を作成できるようにするか、余分な特徴を外観に追加できるようにする。
【００１０】
グラフィックオブジェクトを外観オブジェクトに関連付けるために、グラフィックオブジェクトは、グラフィックオブジェクトに関連付けられる外観オブジェクトを識別する属性を含んでよい。
【００１１】
好ましくは、外観オブジェクトが、特定の名前が指定された色に割り当てられる実際の色を定義する。例えば、外観オブジェクトは、黒、白及び灰色の１つまたは複数の陰影の少なくとも１つに割り当てられる実際の色を定義してよい。このようにして、外観は、例えば、一定の色相をその外観に関連付けられたグラフィックオブジェクトに与えることによって、一定の色方式を定義することができる。外観オブジェクトは、任意の特定の色を表示するときに使用されるべき実際の色値を設定する色マップも定義してよい。
【００１２】
グラフィックオブジェクトの外見を変更するために、外観オブジェクトは（例えば、コンパイル時にコードまたはパラメータを、または実行時にパラメータを変更することによって）再画定または修正されてよいか、あるいは別の外観オブジェクトがグラフィックオブジェクトに関連付けられてよい。したがって、方法は、さらに、外観オブジェクトを再画定するまたは修正することによって、あるいは別の外観オブジェクトをグラフィックオブジェクトに関連付けることによって、グラフィックオブジェクトの外見を修正することを含んでもよい。
【００１３】
外観オブジェクトが再定義される、または修正される場合、その外観オブジェクトと関連付けられるグラフィックオブジェクトの外観を更新することが必要とされる。これを達成するために、外観オブジェクトは、外観オブジェクトが再定義される、または修正されるときにその値が更新される更新カウンタを含んでよい。
【００１４】
好ましくは、グラフィックオブジェクトは、それらが影響を及ぼした外観オブジェクトの更新カウンタの値を記憶する。グラフィックオブジェクトが再表示されるたびに、グラフィックオブジェクトが記憶する値は、外観オブジェクトの更新カウンタの値と比較される。２つが異なる場合、グラフィックオブジェクトは、外観オブジェクトの修正を考慮に入れ、更新カウンタの新しい値を記憶する。
【００１５】
外観オブジェクトは、外観オブジェクトによって呼び出すことができるメソッドを示すバリデーションマスクを含んでよく、その結果外観オブジェクトによって実現されないメソッドは呼び出されない。グラフィックオブジェクトは外観オブジェクトのバリデーションマスクにアクセスし、グラフィックオブジェクトの図を最適化することができる。このようにして、実現されないメソッドに対する呼び出しは回避することができ、グラフィックオブジェクトの描画を加速することができる。
【００１６】
いくつかの状況では、例えば、外観オブジェクトが最初に作成されるとき、外観オブジェクトは、単一グラフィックオブジェクトと関連付けられてよい。しかしながら、好ましい実施形態では、外観オブジェクトは複数のグラフィックオブジェクトと関連付けられる。外観オブジェクトを複数のグラフィックオブジェクトに関連付けることによって、それらのオブジェクトに対する一様な外見が達成され、外観オブジェクトを画定するために必要とされるデータ量は、各グラフィックオブジェクトがその外見を独立して画定したケースと比較して削減される。
【００１７】
このようにして、本方法は、グラフィックユーザインタフェース内の複数のグラフィックオブジェクトの外観を制御する方法であってよく、外観オブジェクトを複数のグラフィックオブジェクトに関連付けることを備えてよい。
【００１８】
グラフィックオブジェクトが外観オブジェクトと関連付けられないような一定の状況では、例えば、外観オブジェクトによって使用されているメモリ空間を割り当てし直すことができるようにするために、外観オブジェクトを削除することが望ましい場合がある。これは、特に、メモリが制限される受信機／デコーダなどのデバイスで重要である場合がある。（とりわけ）この目的のため、外観オブジェクトは、その外観オブジェクトに関連付けられるグラフィックオブジェクトの数を示すカウンタを含んでよい。好ましくは、グラフィックオブジェクトが外観オブジェクトと関連付けられるたびに、カウンタは増分され、グラフィックオブジェクトが外観オブジェクトと分離されるたびに、カウンタは減分される。カウンタがゼロである場合には、外観オブジェクトは安全に削除できると仮定されてよい。
【００１９】
本発明の別の方法態様では、（例えば、グラフィックオブジェクトの外見を制御するプロパティ及び／またはメソッドを定義することによって）グラフィックオブジェクトの外見を制御する外観オブジェクトを提供することと、（例えば、グラフィックオブジェクトの動作を制御するプロパティ及び／またはメソッドを定義することによって）グラフィックオブジェクトの動作を制御するウィジェットオブジェクトを提供することとを備える、グラフィックユーザインタフェース内のグラフィックオブジェクトを定義する方法が提供される。前述される特徴のいずれかが、この態様と組み合わされて提供されてよい。
【００２０】
前述された方法のいずれかは、好ましくは、さらに、例えばコンピュータ画面またはテレビ画面などの画面上にグラフィックオブジェクトを表示することを備える。
【００２１】
前述された方法のいずれかは、デジタルまたはアナログテレビ受信機／デコーダなどの受信機／デコーダによって実施されてよい。
【００２２】
ここで使用される用語「受信機／デコーダ」は、何らかの他の手段により一斉送信または伝送されてよい、テレビ信号及び／または無線信号などの符号化された信号または符号化されていない信号のいずれかを受信するための受信機を言外に意味してよい。用語は、受信された信号を復号するためのデコーダも言外に意味してよい。このような受信機／デコーダの実施形態は、例えば、「セットトップボックス」において受信された信号を復号するための受信機と一体化されたデコーダを含んでよく、このようなデコーダは物理的に別個の受信機と組み合わされて機能するか、あるいはこのようなデコーダは、ウェブブラウザ、ビデオレコーダまたはテレビなどの追加機能を含む。
【００２３】
本発明の装置態様では、
例えば、グラフィックオブジェクトがどのように表示されるのかを決定するメモリ内にコードまたはパラメータを作成するまたは修正することによって、外観オブジェクトを画定するための手段と、
例えば、外観オブジェクトを識別するために、グラフィックオブジェクトの属性を設定することによって、外観オブジェクトをグラフィックオブジェクトに関連付けるための手段と、
を備える、グラフィックユーザインタフェース内のグラフィックオブジェクトの外観を制御するための装置が提供される。
【００２４】
好ましくは、本装置は、外観オブジェクトを定義するため、及び外観オブジェクトをグラフィックオブジェクトに関連付けるための適切にプログラムされたプロセッサ、及び外観オブジェクト及びグラフィックオブジェクトを記憶するためのメモリを含む。外観オブジェクトは、オブジェクト指向型プログラムコードによって画定されてよい。外観オブジェクトは、外観オブジェクトクラスを実現することによって定義されてよい。外観オブジェクトは、別の外観オブジェクトクラスへのポインタを含んでよい。
【００２５】
本装置は、外観オブジェクトを定義するまたは修正することによって、あるいは別の外観オブジェクトをグラフィックオブジェクトと関連付けることによって、グラフィックオブジェクトの外見を修正するように適応されてよい。外観オブジェクトは、外観オブジェクトが再定義される、または修正されるときに、その値が更新される（メモリ内の場所などの）更新カウンタを含んでよい。
【００２６】
外観オブジェクトは、外観オブジェクトによって呼び出すことができるメソッドを示す（例えば、メモリに記憶される）バリデーションマスクを含んでよい。
【００２７】
本装置は、グラフィックユーザインタフェース内の複数のグラフィックオブジェクトの外観を制御するための装置であってよく、外観オブジェクトを複数のグラフィックオブジェクトに関連付けるように適応されてよい。外観オブジェクトは、その外観オブジェクトと関連付けられるグラフィックオブジェクトの数を示す（メモリ内の場所などの）カウンタを含んでよい。
【００２８】
本装置は、さらに、グラフィックオブジェクトを表示するための画面（例えば、コンピュータ画面またはテレビ画面）などの手段を備えてよい。
【００２９】
一実施形態では、本装置は、デジタルまたはアナログテレビ受信機／デコーダなどの受信機／デコーダである。
【００３０】
さらなる実施形態では、本発明は、オブジェクトの動作を制御するウィジェットクラスのインスタンス、及びオブジェクトの外見を制御する外観オブジェクトクラスのインスタンスを備える、グラフィックユーザインタフェース内のオブジェクトを提供する。
【００３１】
本発明は、前述されたようにオブジェクトを作成するためのウィジェット集合も提供し、ウィジェット集合は、複数のウィジェットクラス、及び１つまたは複数のオブジェクトクラスを備える。最も典型的には、ウィジェット集合は、ベースクラス及び該ベースクラスから引き出されるクラスを含む複数の外観オブジェクトクラスを備える。
【００３２】
オブジェクトの外見を補正するために、外観オブジェクトクラスを変更することができる。これは、機能がウィジェットクラスによって制御されるので、オブジェクトの機能を変更しない。さらに、外観オブジェクトクラスの1つのインスタンスが、ウィジェットクラスの多くのインスタンスによって使用され、それにより使用されるメモリ量を最小限に抑えることができる。
【００３３】
外観オブジェクトクラスは、実行時にアプリケーションにリンクされるライブラリに含むことができる。したがって、ユーザは、ライブラリの範囲内のどの範囲がリンクされるべきなのかを選択することによって、オブジェクトの好ましい外観を選択することができる。外観オブジェクトクラスは、他のアイテムとは関係なく変更されるため、再符号化は、新しい外観を実現するのに必要な最小まで簡略化される。
【００３４】
代わりに、外観オブジェクトクラスは、コンパイル時にアプリケーションにリンクされるライブラリに含むことができる。これにより、アプリケーション展開者は、オブジェクトの外観の完全な制御を有することができる。
【００３５】
外観オブジェクトは、ＧＵＩディスプレイで構成要素の一部を描画するために呼び出すことのできる描画メソッドをエクスポートしてよい。ウィジェットクラスは、典型的には、外観オブジェクトクラスの描画メソッドを呼び出すコードを含む。外観オブジェクトクラスは、構成要素の要素に関係するデータを提供するプロパティもエクスポートしてよい。
【００３６】
外観オブジェクトクラスは、ＧＵＩディスプレイ内のウィジェットにデフォルト外観を提供するデフォルトクラスであってよい。代わりに、外観オブジェクトクラスは、デフォルトクラスから引き出されるクラスであってよく、引き出されたクラスはデフォルトクラスの１つまたは複数のメソッド及び／またはプロパティを無効にする。この仕組みにより、ユーザまたは展開者は、未変更のままとなるべきあらゆるパーツを手直しする必要なく、ＧＵＩの外観内の単に限られた数の要素に変更を加えることができる。
【００３７】
外観オブジェクトクラスインスタンスは、ウィジェットクラスインスタンスのプロパティであってよい。典型的には、外観オブジェクトクラスのインスタンスに対するポインタは、ウィジェットクラスインスタンスのプロパティに割り当てられる。このようなポインタは、ウィジェットクラスの構成子に対する引数として渡されてよい。
【００３８】
本発明は、オブジェクトの外観オブジェクトを制御するプロパティ及び／またはメソッドがある外観オブジェクトクラスが具体化され、オブジェクトの動作を制御する定義されたプロパティ及び／またはメソッドがあるウィジェットクラスが具体化される、グラフィックユーザインタフェース内でオブジェクト作成する方法も提供する。
【００３９】
最後に前述した段落による方法では、外観オブジェクトクラスに対するポインタは、典型的には、ウィジェットクラスインスタンスのインスタンスメモリに記憶される。
【００４０】
動作を制御することは、必ずしも、オブジェクトが機能的であることを意味しない。スライダとボタン等は動作を実行できることがあるが、複合オブジェクトの記号またはパーツ等のいくつかのグラフィックオブジェクトは単に修飾的であってよい。このようにして、オブジェクトの動作を制御するプロパティ及び／またはメソッドは、（例えば、ポインタとして表示されるなど）オブジェクトの基本的な機能を決定する以上のことはほとんど行なわず、正確な外見は外観オブジェクトによって制御される。
【００４１】
別の態様では、本発明は、外観オブジェクトクラスが、オブジェクトの外観を制御する定義されたプロパティ及び／またはメソッドである外観オブジェクトクラスが具体化され、オブジェクトの動作を制御する定義されたプロパティ及び／メソッドがあるウィジェットクラスが複数回実現される、グラフィックユーザインタフェース内で複数のオブジェクトを作成する方法を提供する。
【００４２】
別の態様では、本発明は、機器のメモリの中に前述されたようにウィジェット集合をロードすること、前述された方法によって複数のオブジェクトをグラフィックユーザインタフェースの中に作成すること、及びオブジェクトをディスプレイに表示することを備えるアプリケーション実行デバイス（例えば、コンピュータ、デジタルテレビ信号用の受信機／デコーダ、または別のデバイス）用のグラフィックユーザインタフェースディスプレイを実現する方法を提供する。
【００４３】
受信機／デコーダに適用されるこのような方法では、ウィジェット集合は、デジタルテレビ信号内のチャネルでダウンロードされることによって受信機／デコーダのメモリにロードされてよい。
【００４４】
別の態様では、本発明は、アプリケーション実行デバイス用のグラフィックユーザインタフェースディスプレイの外見を更新する方法を提供し、そのディスプレイは、前述されたようなウィジェット集合を含み、少なくとも１つの外観オブジェクトクラスが別の外観オブジェクトクラスで置換される。
【００４５】
別の態様では、本発明はデジタルテレビ信号用受信機／デコーダのグラフィックユーザインタフェースディスプレイの外見を更新する方法を提供し、そのディスプレイは、少なくとも１つの代替外観オブジェクトクラスが、記憶されている外観オブジェクトクラスを置換するためにデジタルテレビ信号の一部であるチャネル内の受信機／デコーダに伝送される受信機／デコーダのメモリに記憶される前述されたようなウィジェット集合を含む。
【００４６】
本発明は、対応する装置に及ぶ。特に、発明は、任意の前述の態様の方法を実行するために配置される受信機／デコーダに及ぶ。
【００４７】
別の態様では、本発明は、プロセッサ、メモリ及び信号をディスプレイに出力するための出力ポートを備えるグラフィックユーザインターフェースを実現するためのアプリケーション実行デバイス（例えば、コンピュータ、デジタルテレビ信号用の受信機／デコーダ、または別のデバイス）を提供し、メモリはその中に前述された方法のいずれか、あるいは前述されたオブジェクトのいずれか、あるいは前述されたウィジェット集合のいずれかを実施するためのプログラムを記憶する。
【００４８】
前記ケースのいずれかでは、外観オブジェクトまたは外観オブジェクトクラスが、好ましくは、以下のプロパティ（存在する場合は）の少なくとも１つがどのようにして表示されるのかを定義する。
【００４９】
背景外見、例えば、背景色、
背景オーバレイ、例えばロゴ、
前景外見、
前景オーバレイ、例えばロゴ、
レリーフまたは陰影の外見、
オブジェクト境界の外見、
オブジェクトに割り当てられる任意の焦点のディスプレイ、
オブジェクトに割り当てられる任意の強調表示のディスプレイ。
【００５０】
本発明は、前記方法のいずれかを実施するためのコンピュータプログラムに、及び前記方法のいずれかを実施するためのプログラムを記憶したコンピュータ読み取り可能媒体にも及ぶ。発明は、任意の前述の態様の方法を実行するために配置される受信機／デコーダ用のアプリケーションにも及ぶ。発明は、実質的に添付図面に関してここに説明されるような方法または装置にも及ぶ。
【００５１】
表示されたグラフィックオブジェクトの設計
大部分のグラフィックユーザインタフェース（GUI）は、多様なグラフィックオブジェクトを表示し、その内のいくつかはユーザ（「アクティブ」オブジェクト）によって操作することができ、いくつか（「静的」オブジェクト）は操作できない。好ましくは、前述されたように、表示されたグラフィックオブジェクトは、好ましくは互いを補い、コヒーレントな設計方式を生じさせるように設計される。例えば、表示されたグラフィックオブジェクトは、該当する場合、好ましくは１つのメインカラー及びテクスチャとフォントを共用する。設計方式はここでグラフィックオブジェクトの「外観」と呼ばれる。
【００５２】
いくつかのケースでは、ユーザが改変できるのはアクティブなグラフィックオブジェクトの外観だけである。発明の一態様に従って、好ましくは静的グラフィックオブジェクトの外観が改変可能である。発明の一態様に従って、好ましくはグラフィックオブジェクトのグループの外観は改変可能である。このようにして、表示されたグラフィックオブジェクトのコヒーレントな設計を得ることができる。
【００５３】
本発明のそれ以外の態様に関して、グラフィックオブジェクト及び連結要素が表示される場合、好ましくはグラフィックオブジェクトの外観と連結要素の外観の両方とも変更可能である。好ましくは、グラフィックオブジェクトと連結要素両方の外観は、ユーザによって選択可能な外観で同じである。このようにして、グラフィックオブジェクトの表示されたチェーンのコヒーレント外観が達成できる。
【００５４】
本発明の好ましい態様では、チェーンの外観は、表示されているその他のグラフィックオブジェクトの外観とは無関係に選択可能である。
【００５５】
発明の一態様は、グラフィックユーザインタフェース内の複数のグラフィックオブジェクトの外観を制御する方法を備え、該方法は、外観オブジェクトを複数のグラフィックオブジェクトと関連付けることを備える。
【００５６】
本発明の好ましい実施形態では、複数のグラフィックオブジェクトは、連結チェーンを備える。このようにして、好ましくは、ある特定の外観または設計は、チェーンまたは連結リストとして全体的に適用することができる。好ましくは、外観または設計は、チェーンに適用することができ、外観または設計には無関係に連結リストまたはグラフィックオブジェクトがその他のチェーン、連結リストまたはグラフィックオブジェクトに適用することができる。
【００５７】
発明の一態様は、グラフィックオブジェクトのグループを表示する方法を提供し、該方法は、複数の異なる表示可能なグループを定義するため、及び複数の表示可能なグループからグラフィックオブジェクトのグループを選択するための手段を提供するステップを含む。
【００５８】
好ましくは、方法は、グラフィックオブジェクトの表示可能なグループを定義することと、外観オブジェクトをグラフィックオブジェクトのグループと関連付けることとを備える。
【００５９】
本発明に従って、グラフィックオブジェクトのグループの外見を制御する方法が提供され、該方法は、グラフィックオブジェクトの表示可能なグループを定義することを含む。
【００６０】
グラフィックオブジェクトのグループの外見を制御するための装置も提供され、該装置は、グラフィックオブジェクトの表示可能なグループを定義するための手段を含む。
【００６１】
好ましくは、あるグループのグラフィックオブジェクトの表現は、例えば、色、形状、サイズ、テクスチャまたはパターンの１つまたは複数において別のグループのグラフィックオブジェクトの表現と異なる。
【００６２】
好ましくは、グラフィックオブジェクトのグループは、グラフィックオブジェクトの連結チェーンを表示するための要素を備える。
【００６３】
好ましくは、グラフィックオブジェクトのグループは、静的オブジェクト及びアクティブオブジェクトを備える。このようにして、装置は、好ましくは様々な外観または設計を有する、グラフィックオブジェクトのグループのライブラリを備えてよい。
【００６４】
好ましくは、第１グループの表示されたグラフィックオブジェクトは、色、形状、サイズ、テクスチャまたはパターンの１つまたは複数で別のグループの表示されたグラフィックオブジェクトと異なる。第1グループのグラフィックオブジェクトの配列は、別のグループのグラフィックオブジェクトの配列と異なってよい。
【００６５】
本発明の好ましい実施形態に従って、グラフィックオブジェクトのグループは、グラフィックオブジェクトの連結チェーンを備える。好ましくは、連結チェーンは、ＧＵＩ内の連結チェーンとして表示可能である。
【００６６】
本発明のこの態様のそれ以外の好ましい特徴は、見出しグラフィックオブジェクトの表示の元で前述されている。
【００６７】
グラフィックオブジェクトの構築
大部分のグラフィックユーザインタフェース（ＧＵＩ）は、多様なグラフィックオブジェクトを含み、その内のいくつかはユーザが操作することができる。このようなグラフィックオブジェクトは、ウィンドウ、ダイアログボックス及びプッシュボタンを含む。ＧＵＩは、概して複数の異なる種類のそれぞれのグラフィックオブジェクトを含み、例えば、ＧＵＩは、異なるサイズ及び／またはアスペクト比を有する非常に多岐に渡るダイアログボックスの表示のために配列されてよい。
【００６８】
ＧＵＩが、例えば２種類のダイアログボックスを有する場合、一方が他方のサイズの半分であり、ボックスの各種類が公式化され、別個のオブジェクトとしてシステムに保存される。ＧＵＩが大多数の異なる種類のダイアログボックス及び／または異なる種類のその他のグラフィックオブジェクトを含む場合、それはシステムリソースの非効率的な使用につながることがある。
【００６９】
発明の一態様は、グラフィックユーザインタフェース内のグラフィックオブジェクトの外見を制御する方法を提供し、該方法は、グラフィックオブジェクトの表現を表示する際に使用するためのグラフィックオブジェクトの複数のグラフィックオブジェクト要素を定義することを備える。
【００７０】
発明の一態様は、グラフィックオブジェクトを形成するためにその他のグラフィックオブジェクト要素との組み合わせのために適応されるグラフィックオブジェクト要素を提供する。
【００７１】
ＧＵＩが同じグラフィックオブジェクトの多くの異なる種類を含む場合、異なる種類はたいてい、オブジェクトのそれ以外の種類と共通した特徴を有するだろう。例えば、様々なサイズのウィンドウ及びボックスはたいてい、互いと同じ角を有し、様々な種類のボックス間の相違はボックスの端縁の長さだけである。グラフィックオブジェクトを構築するためにオブジェクト要素を提供することにより、少しの構築ブロック（オブジェクト要素）が、大多数の異なる種類のグラフィックオブジェクトを作成するために使用できるように、多様なオブジェクトの共通の特徴を利用することができる。
【００７２】
グラフィックオブジェクトは、例えば、ウィンドウ、ダイアログボックス、プッシュボタン、スクロールバー、アイコンまたはその他の画面上オブジェクトを備えてよい。グラフィックオブジェクトは、ユーザがそれと対話できるという点で「アクティブ」であってよいか、あるいは例えば背景の特徴など「静的」であってよい。
【００７３】
発明の一態様は、複数のグラフィックオブジェクト要素を備えるグラフィックオブジェクトを提供する。
【００７４】
発明の一態様は、グラフィックユーザインタフェース内のグラフィックオブジェクトの表現を表示するための方法を提供し、該方法は、グラフィックオブジェクトを形成するために複数のグラフィックオブジェクト要素をアセンブルすることを備える。
【００７５】
発明の一態様は、グラフィックユーザインタフェース内でグラフィックオブジェクトを形成するための装置を提供し、該装置は、グラフィックオブジェクトを形成するために複数のグラフィックオブジェクト要素をアセンブルするための手段を備える。
【００７６】
発明の一態様は、グラフィックユーザインタフェースを実現するためのアプリケーション実行デバイスを備え、プロセッサ、メモリ、及びディスプレイに信号を表示するための出力ポートを備え、メモリは本発明の態様を実施するためのプログラムを記憶している。
【００７７】
好ましくは、アプリケーション実効デバイスが、デジタルテレビの受信機／デコーダを備える。
【００７８】
発明の一態様は、発明の方法を実行するためのコンピュータプログラムを提供する。
【００７９】
グラフィックオブジェクトのグラフィックオブジェクト要素は、すべて同じであってよく、グラフィックオブジェクトのサイズ及び形状は、要素の数及び構成によって決定される。
【００８０】
好ましくは、グラフィックオブジェクトが、グラフィックオブジェクト要素の複数の様々な集合を含む。好ましくは、該方法態様は、グラフィックオブジェクトのグラフィックオブジェクト要素の複数の異なる集合を定義することを含む。
【００８１】
グラフィックオブジェクト要素の集合は、例えば、グラフィックオブジェクトの角、側面または端縁部分を備えてよい。例えば、グラフィックオブジェクトがダイアログボックスである場合、ボックスを構成するために使用されるグラフィックオブジェクトの集合は、角要素及び端縁要素を備えてよい。例えば、矩形ボックスは、角要素をともに連結する４つの角要素及び４つの端縁要素を備えてよい。
【００８２】
要素の各集合の中には、例えば、異なるサイズ、形状、向き及び／または色を有する、異なる種類の要素があってよい。このようにして、ボックスの例は、４種類の角要素及び２種類の端縁要素を備えてよい。
【００８３】
プッシュボタンは、グラフィックオブジェクトがそうであるべきプッシュボタンの種類に応じて選ばれる、２つの側面要素、及び１つの中心要素を備えてよい。例えば、ＰＬＡＹボタンは、矢印記号を含む中心要素を有してよく、ＳＴＯＰボタンは正方形記号を含む中心要素を有してよい。ＰＬＡＹボタンの側面要素は、ＳＴＯＰボタンの側面要素と同じであってよい。
【００８４】
オブジェクト要素のライブラリは、相対的に複雑な形状を有するグラフィックオブジェクト形成するために使用することもできる。例えば、ダイアログボックスの多岐にわたる複雑な行列は、ボックス端縁、角、及び公差点を備えるオブジェクト要素の選択から容易に形成できるだろう。
【００８５】
本発明の好ましい実施形態では、グラフィックオブジェクトは、グラフィックオブジェクトの「角」と「側面」及び複数の充填材要素を画定する少なくとも２つの「角」要素を含み、その数は、グラフィックオブジェクトのサイズ及び／または形状を変えるために変えることができる。このようにして、テキストボックスは、好ましくは、４つの角要素を有し、複数の充填材要素は、所望の大きさのボックスを作成するために角要素の間のボックスを充填するために使用される。充填材要素はすべて同じであってよい。以下の実施形態では、例えば、ボックス及びウィンドウを構築するために中心要素及び４種類の端縁要素など、異なる種類の充填材要素が使用される。
【００８６】
好ましくは、充填材要素は、グラフィックオブジェクトの必要とされるサイズ及び形状を積み重ねるために繰り返される。
【００８７】
本方法は、好ましくは固定された要素の集合及び繰り返し可能な要素の集合を画定することを含む。
【００８８】
本発明は、グラフィックオブジェクトを形成する方法も提供し、該方法は、固定された要素の集合及び繰り返し可能な要素の集合を提供することを備える。
【００８９】
例えば、ウィンドウまたはボックスの場合、固定された要素の集合は、ボックスのための角及び装飾品を備えてよく、これらの固定された要素が、どのようなサイズであれ、その種のすべてのボックスまたはウィンドウに固定されてよい。繰り返し可能な要素の集合は、オブジェクトの必要とされるサイズ及び形状を積み重ねるために使用される。好ましくは、各固定要素の１つだけが、グラフィックオブジェクトのインスタンスごとに必要とされる。このようにして、繰り返し可能な要素の集合は、角の間を充填するために使用される端縁セグメント及び中心部分を含んでよい。
【００９０】
繰り返し可能な要素のサイズは、好ましくは、ある特定のオブジェクトの繰り返し可能な要素の種類の数が最小限で抑えられるように選ばれる。例えば、繰り返し可能な要素のサイズは、好ましくは、必要とされるグラフィックオブジェクトの最小サイズに関係して選ばれる。このようにして、各グラフィックオブジェクトを構築するために必要とされる「キット」の記憶域内で占有されるメモリを削減することができる。
【００９１】
本発明は、任意のグラフィックオブジェクトに要素のキットを提供し、該キットは固定された要素の集合及び繰り返し可能な要素の集合を備える。
【００９２】
本発明は、グラフィックオブジェクトの要素のキットを作成する方法も提供し、該方法は、グラフィックオブジェクトのインスタンスに共通の固定された要素の集合を画定し、繰り返し可能な要素の集合をさらに画定することを備える。
【００９３】
オブジェクト要素のサイズは調整可能であってよい。このようにして、幅広い範囲のオブジェクトを作成するには、より少ない種類のオブジェクト要素が必要とされる。ダイアログボックスの例について、端縁要素の長さは調整可能であってよい。このようにして大多数の異なるボックス形状が、４つの角要素及び２種類の端縁要素（この場合、調整可能な長さの垂直端縁要素及び調整可能な長さの水平端縁要素）だけを使用して作成できるだろう。
【００９４】
本発明は、さらに、グラフィックユーザインタフェースでグラフィックオブジェクトの表現を表示する方法を提供し、該方法は、複数のグラフィックオブジェクト要素をアセンブルすることを備える。
【００９５】
好ましくは、方法は、固定された要素の集合を表示することと、複数の繰り返し可能な要素を表示することを備える。
【００９６】
本発明は、さらに、グラフィックユーザインタフェース内のグラフィックオブジェクトの外形を制御するための装置を提供し、装置は、グラフィックオブジェクトの表記を表示する上で使用するためのグラフィックオブジェクトの複数のグラフィックオブジェクト要素を定義するための手段を備える。
【００９７】
本発明によりさらに提供されるのは、グラフィックオブジェクトを表示する際に使用するための要素のキットであり、グラフィックオブジェクトのインスタンスに共通な固定要素の集合、及び繰り返し要素の集合を備える。
【００９８】
本発明は、さらに、グラフィックユーザインタフェース内のグラフィックオブジェクトの表現を表示するための装置を備え、該装置は、複数のグラフィックオブジェクト要素をアセンブルするための手段を備える。
【００９９】
本発明は、発明をワイドスクリーンテレビに適用する上で特に有利である。グラフィックオブジェクトのアスペクト比は、標準テレビのグラフィックオブジェクトと比較されるグラフィックオブジェクト要素の数またはサイズを変更することによって容易に調整することができる。
【０１００】
本発明は、例えば、潤色または装飾品など、グラフィックオブジェクトでの変動を容易に加えることも可能にする。オブジェクト要素は、ダイアログボックスで含まれる装飾品を備えてよい。異なる、または同じ装飾品を有する様々な膨大な種類のオブジェクトは本発明を使用して作成できる。
【０１０１】
ツールチップ及びメニューチェーン
グラフィックユーザインタフェース（ＧＵＩ）は、通常、多様なグラフィックオブジェクトを含み、その内のいくつか（「アクティブ」オブジェクト）は、ユーザが操作することができ、それ以外は操作できない（「静的」オブジェクト）。特定のアクティブオブジェクト内のグラフィックオブジェクトは、多くの場合、グラフィックオブジェクトが何であるのかを示すピクチャまたは図を備えてよい、アイコンによってユーザに識別される。例えば、ＰＬＡＹ機能を実施するためのボタンは、矢印を備えるアイコンを含んでよい。このようなアイコンは、ディスプレイの容易なナビゲーションで補助するだけではなく、グラフィックオブジェクトの視覚的な外見も改善することもできる。
【０１０２】
特に、画面空間が貴重である場合、アイコンは特に有効である。例として、アイコンが、ウェブブラウズなどの、テレビ及び／またはその他の画面上機能の動作で使用するための画面上アイコンであるデジタルテレビ用受信機／デコーダに使用されるＧＵＩがある。標準テレビ画面の解像度は相対的に低く、読みやすさのために、画面上に表示されるデータは相対的に大きいことを必要とされる。また、テレビセットのユーザは、自分達が例えばパーソナルコンピュータを使用するときよりも、テレビを使用するときに画面からさらに遠くに座る。このようにして、画面上に表示されるあらゆるアイコン及びテキストは、相対的に大きいことが必要とされる。
【０１０３】
これが、一度に画面上に表示できる情報量に対して制約を課す。このようにして、アイコンの使用は特に有利である。
【０１０４】
グラフィックオブジェクトが何を行うのかをより明確に描くアイコンを選ぶための努力がなされる。しかしながら、使用されているアイコンになじみがなかったり、特徴が表す内容について確信が持てないユーザがいる。しかしながら、画面はごちゃごちゃしすぎる可能性があるため、グラフィックオブジェクトは、テキスト説明によって画面上で識別されるのは望ましくないだろう。
【０１０５】
発明の一態様は、ＧＵＩ内のグラフィックオブジェクトの外見を制御する方法を提供し、該方法は、グラフィックオブジェクトの第1表示可能表現を定ることと、さらにグラフィックオブジェクトの第２表示可能表現を定めることを備え、第２表現は第1表現に隣接して表示される。
【０１０６】
発明の一態様は、ＧＵＩにグラフィックオブジェクト表示するための方法を提供し、該方法は、グラフィックオブジェクトの第1表現を表示すること、及び第1表現に隣接するグラフィックオブジェクトの第２表現を表示することを備える。
【０１０７】
第１表現は、好ましくはアイコンを備える。好ましくは、第２表現は、選択的に表示される。
【０１０８】
好ましくは、第１表現はアクティブであり、その結果第１表現を起動するまたは選択することで、グラフィックオブジェクトの動作が実施される。例えば、第１表現は、プッシュボタンであってよい。好ましくは、第２表現は、例えば、オブジェクトの機能を示すワードである、グラフィックオブジェクトのテキスト記述である。第２表現は、アクティブであってよく、あるいはなくてもよい。
【０１０９】
第２表現は、好ましくは、選択的に表示可能であるにすぎない。このようにして、好ましくは、グラフィックオブジェクトの第２表現は、常に画面上に表示されず、ユーザにとって補助になるときだけ表示される。
【０１１０】
好ましくは、第1表現にフォーカスを当てることによって、第２表現は表示可能である。例えば、第２表現は、ユーザが、例えばカーソルキーを使用してそれにフォーカスを移動することによって、あるいはそれを指すために、マウスポインタを移動することによって、第1表現にフォーカスを当てたときにだけ表示されてよい。
【０１１１】
好ましくは、グラフィックオブジェクトのテキスト表現は、フレームの中、例えば、ボックス内であるいはウィンドウ内で表示される。好ましくは、フレームの設計は、表示されているその他のグラフィックオブジェクトの設計、特に同じグラフィックオブジェクトのそれ以外の表現を補う、またはそれに整合される。このようにして、コヒーレントな設計方式を得ることができる。好ましくは、第２表現は、例えばボックスまたはウィンドウを第1表現に連結することによって、第1表現に連結される。このようにして、ユーザは、テキスト記述が適用する内容をさらに明確に正確に見ることができる。
【０１１２】
好ましくは、方法は、第１表現及び第２表現を連結するための連結要素を定義することを含む。好ましくは、方法は、外観オブジェクトを第１表現、第２表現、及び好ましくは連結要素と関連付けることを含む。このようにして、好ましくは、第１表現と第２表現、および連結要素は、例えば、調整された外観を与えるために、色、テクスチャ及び形状の特徴を共用する。外観オブジェクトは、調整された外観が、多様な表現及び連結要素について得られるように、複数の別個の外観オブジェクトを備えてよい。
【０１１３】
本発明は、さらに、グラフィックオブジェクトを表示するための方法を提供し、該方法は、グラフィックオブジェクトの第１表現を表示すること、グラフィックオブジェクトの第２表現、及び第１表現と第２表現を連結する連結要素を表示することを備える。
【０１１４】
本発明は、ＧＵＩ内のグラフィックオブジェクトの外見を制御するための装置を提供し、該装置は、グラフィックオブジェクトの第１表示可能表現を定義するための手段、及びグラフィックオブジェクトの第２表示可能表現を定義するための手段、及び第１表現に隣接する第２表現を表示するための手段を備える。
【０１１５】
装置は、好ましくは第１表現でのフォーカスを検出するときに、第２表現を選択的に表示するための手段を含むことが好ましい。
【０１１６】
本発明に従って、グラフィックオブジェクトを表示するための装置も提供され、装置は、グラフィックオブジェクトの第１表現を表示するための手段、グラフィックオブジェクトの第２表現を表示するための手段、及び第１表現と第２表現を連結する連結要素を表示するための手段を備える。
【０１１７】
グラフィックオブジェクトは、後述されるようにチェーンまたは連結リスト内にあるので、好ましくは第２表現は表示されるチェーンまたは連結リストの一部である。好ましくは、方法は、グラフィックオブジェクトの連結チェーンを定義することを含み、第１表現と第２表現はグラフィックオブジェクトの表現のチェーンの連結として表示可能である。
【０１１８】
好ましくは、第２表現はサブチェーンである。好ましくは、サブチェーンは第１表現から分岐する。
【０１１９】
発明の一態様は、グラフィックオブジェクトを含むディスプレイを提供し、該グラフィックオブジェクトは、該グラフィックオブジェクトの第１表現、及び好ましくは該グラフィックオブジェクトの第１表現に隣接する該グラフィックオブジェクトの選択的に表示可能な第２表現を備える。
【０１２０】
発明の一態様は、グラフィックユーザインタフェース内のグラフィックオブジェクトの外見を制御するための装置を提供し、グラフィックオブジェクトの第１表現を定義するための手段、及びグラフィックオブジェクトの第２表現を定義するための手段を備え、第２表現は、第１表現に隣接して表示可能である。
【０１２１】
発明の一態様は、プロセッサ、メモリ、及びディスプレイに信号を出力するための出力ポートを備えるグラフィックユーザインタフェースを実現するためのアプリケーション実行デバイスを提供し、メモリは発明の一態様を実施するためのプログラムを記憶している。
【０１２２】
好ましくは、アプリケーション実行デバイスは、デジタルテレビの受信機／デコーダを備える。
【０１２３】
また、発明の方法を実施するためのコンピュータプログラムが提供される。
【０１２４】
コンピュータ及びその他の装置のＧＵＩについて、ユーザは、通常、ディスプレイの回りでナビゲートし、表示されたグラフィックオブジェクトを操作するためのマウスまたは他のポインタデバイスが提供される。しかしながら、例えば、テレビ受信機／デコーダ装置及び移動電話及びパーソナルオーガナイザなどのいくつかのアプリケーションでは、ユーザはポインタデバイスを有さない可能性がある。例えば、ユーザはディスプレイの回りでナビゲートするためにカーソルキーパッドを使用することがある。このようなカーソルキーパッドは、通常、アップキー、ダウンキー、左キー及び右キーを含む。特に、画面上に表示されているグラフィックオブジェクトが明らかな線及び／または欄で配列されていない場合に、ユーザが、それらのキーだけを使用してディスプレイの回りでナビゲートするのは紛らわしいことがある。
【０１２５】
発明の一態様は、グラフィックユーザインタフェース内のグラフィックオブジェクトの外見を制御する方法を提供し、該方法はグラフィックオブジェクトの連結チェーンを定義することを備える。
【０１２６】
発明の一態様は、グラフィックユーザインタフェース内のグラフィックオブジェクトの外見を制御する方法を提供し、該方法は、第１グラフィックオブジェクトを定義することと、第２グラフィックオブジェクトを定義することと、グラフィックオブジェクトを連結するための連結要素を定義することとを備える。
【０１２７】
発明の一態様は、ＧＵＩ内にグラフィックオブジェクトを表示するための装置を提供し、該装置は、複数のグラフィックオブジェクトを表示するための手段及びグラフィックオブジェクトの間の連結要素を表示するための手段を備える。
【０１２８】
発明の一態様は、グラフィックオブジェクト、及び該グラフィックオブジェクトに関連付けられた連結要素を提供する。
【０１２９】
発明の一態様は、グラフィックユーザインタフェース（ＧＵＩ）内のグラフィックオブジェクトの表現を表示する方法を提供し、該方法は、グラフィックオブジェクトの表現を表示することと、グラフィックオブジェクト間の連結を示すために連結要素の表現を表示することとを備える。
【０１３０】
好ましくは、表示された連結要素は、あるグラフィックオブジェクトから別のグラフィックオブジェクトに及ぶ。好ましくは、方法は、グラフィックオブジェクトの表現の連結チェーンを表示することを含む。
【０１３１】
好ましくは、方法は、グラフィックオブジェクトのサブチェーンを定義することを含み、該サブチェーンは連結チェーンから分岐を備え、好ましくは、サブチェーンは、選択的に表示可能である。
【０１３２】
好ましくは、方法は、サブチェーンにグラフィックオブジェクトを表示することを含み、該サブチェーンは連結チェーンの分岐を備え、好ましくはサブチェーンは連結チェーンのグラフィックオブジェクトにフォーカスを当てることによって表示可能である。このようにして、サブチェーンは、ユーザにとって重要であるときだけに表示され、このようにしてディスプレイの乱雑を削減する。
【０１３３】
発明の一態様は、ＧＵＩ内のグラフィックオブジェクトを表示する方法を提供し、該方法は、連結リストとして複数のグラフィックオブジェクトを表示することを備える。このようにして、発明の態様は、カーソルキーパッドを使用してナビゲートすることができるグラフィックオブジェクトを備える。好ましくは、表示されるグラフィックオブジェクトはアイコンを備える。好ましくは、グラフィックオブジェクト間の連結が表示可能である。
【０１３４】
表示された連結要素は、それらの間の経路を示すために、あるグラフィックオブジェクトから別のグラフィックオブジェクトまで及んでよい。これは、ユーザが、マウスよりむしろディスプレイをナビゲートするためにカーソルキーを使用している場合に、特に有利である。しかしながら、いくつかの例では、連結要素は、依然としてグラフィックオブジェクト間の経路のユーザに表示を与えながら、グラフィックオブジェクト間の全体的な距離で及ぶ可能性はない。例えば、連結要素が、経路内の次のアイコンを指すアイコンでの矢印を備える可能性がある。
【０１３５】
発明の一態様は、グラフィックオブジェクトのチェーンを提供する。複数の連結要素が、グラフィックオブジェクトごとに提供されてよく、オブジェクトからのナビゲーション経路の選択肢を示す。このようにして、グラフィックオブジェクト及び連結要素の分岐されるネットワークまたはツリー構造は形成することができ、ネットワークは、マウスを使用しなくともユーザによって容易にナビゲート可能である。また、発明の一態様によって提供されているのは、グラフィックオブジェクトのネットワークである。
【０１３６】
発明の一態様は、グラフィックオブジェクトのメインチェーン及び該メインチェーンから分岐したグラフィックオブジェクトのサブチェーンを提供する。好ましくは、グラフィックオブジェクトの表現はボタンである（ここで使用されるように、用語「ボタン」は、好ましくは、選択時に機能を実施する任意のグラフィックオブジェクトを広義に指すと解釈されるべきである）。
【０１３７】
好ましくは、複数のサブチェーンが表示可能である。好ましくは、サブチェーンは、メインチェーンのグラフィックオブジェクトを選択することによって表示可能である。
【０１３８】
好ましくは、サブチェーンは、メインチェーンに実質的に垂直に伸張する。
【０１３９】
本発明の別の態様に従って、グラフィックオブジェクトの第２表現は、グラフィックオブジェクトに隣接して表示可能であり、好ましくは、グラフィックオブジェクトの第２表現は、グラフィックオブジェクトの第１表現のサブチェーンの一部として表示可能である。このようにして、グラフィックオブジェクトの第２表現が、グラフィックオブジェクトの記述を含むテキストボックスである場合、サブチェーンは好ましくはサブチェーンの中にテキストボックス及び記述を含むだろう。これは、ユーザにとって役立つことがある。
【０１４０】
発明の一態様に従って、グラフィックオブジェクトを表示するための装置、グラフィックオブジェクトの第１表現を表示するための手段、グラフィックオブジェクトの第２表現を表示するための手段、及び第１表現と第２表現を連結する連結要素を表示するための手段を備える装置が提供される。
【０１４１】
また提供されるのは、グラフィックユーザインタフェース内のグラフィックオブジェクトの外見を制御するための装置であって、該装置は、グラフィックオブジェクトの連結済みチェーンを定義するための手段を備える。
【０１４２】
グラフィックユーザインタフェース内のグラフィックオブジェクトの外見を制御するための装置もまた提供され、該装置は、第１グラフィックオブジェクトを定義する、第２グラフィックオブジェクトを定義する、及びグラフィックオブジェクトを連結するための連結要素を定義するための手段を備える。
【０１４３】
本発明はまた、グラフィックユーザインタフェース内のグラフィックオブジェクトの表現を表示するための装置も提供され、該装置は、グラフィックオブジェクトの表現を表示するための手段、及びグラフィックオブジェクト間の連結を示すための連結要素の表現を表示するための手段を備える。
【０１４４】
本発明によってやはり提供されるのは、グラフィックオブジェクトの第１表現、及びグラフィックオブジェクトの第２表現、及び第１表現と第２表現を連結する連結要素を備えるグラフィックユーザインタフェース内のオブジェクトである。グラフィックユーザインタフェース内のオブジェクトは、グラフィックオブジェクトの連結チェーンを備え、グラフィックユーザインタフェースのオブジェクトは第１グラフィックオブジェクト、第２グラフィックオブジェクト及び第１グラフィックオブジェクトと第２グラフィックオブジェクトを連結する連結要素を備える。好ましくは、オブジェクトは、さらに、グラフィックオブジェクトのサブチェーンを含み、該サブチェーンは、連結チェーンからの分岐を備え、好ましくは、サブチェーンは選択的に表示可能である。
【０１４５】
発明の一態様は、グラフィックユーザインタフェースを実現するためのアプリケーション実行デバイスを含み、該デバイスは、プロセッサ、メモリ及び信号をディスプレイに出力するための出力ポートを備え、メモリは、発明の一態様を実施するためのプログラムを記憶している。
【０１４６】
発明の一態様は、発明の方法を実施するためのコンピュータプログラムも含む。
【０１４７】
一列に並んだフリップフロップ
大部分のグラフィックユーザインタフェース（ＧＵＩ）は、多様なグラフィックオブジェクトを含み、そのいくつかはユーザが操作できる。このようなグラフィックオブジェクトは、多くの場合、通常はグラフィックオブジェクトが何であるのかを示すピクチャまたは図を備えるアイコンとして表示される。例えば、プレイ機能を実施するためのオブジェクトは、矢印を含むアイコンとして表示されてよい。印刷を実施するためのオブジェクトは、プリンタの図を備えてよい。このようなアイコンは、ＧＵＩのそれぞれのナビゲーションを補助するだけではなく、表示されたグラフィックオブジェクトの視覚的な外見を改善することができる。
【０１４８】
グラフィックオブジェクトが何を行うのかを明確に描くアイコンを選ぶために努力がなされる。多くの「標準的な」アイコンは、「前方へ」、「戻る」、「プレイ」及び「停止」を描くアイコンとして、使用され、通常は認識可能である。しかしながら、使用されているアイコンになじみの薄く、特徴が何を表しているのかがわからないユーザもいる。
【０１４９】
発明の一態様は、特徴が複数の形式で表示可能である、表示されている特徴を有するグラフィックオブジェクト、及び特徴が表示される形式を変更するための手段を提供する。
【０１５０】
好ましくは、特徴が表示される1つの形式はアイコンである。例えば、ＰＬＡＹボタンは矢印の形であってよい。
【０１５１】
発明の一態様は、ＧＵＩ内のグラフィックオブジェクトの外見を制御する方法を備え、該方法はグラフィックオブジェクトの第１表現及びグラフィックオブジェクトの第２表現を定義し、第１表現と第２表現は選択的に表示可能、好ましくは周期的に表示可能である。
【０１５２】
発明の一態様は、ＧＵＩ内のグラフィックオブジェクトを表示する方法を提供し、該方法はグラフィックオブジェクトの第１表現を表示し、それ以降グラフィックオブジェクトの第２表現を表示する。
【０１５３】
好ましくは、グラフィックオブジェクトの第１表現はアイコンを含む。好ましくは、グラフィックオブジェクトの第２表現はグラフィックオブジェクトのテキスト記述を含む。好ましくは、グラフィックオブジェクトの表示は第１表現と第２表現の間で循環する。
【０１５４】
発明の一態様は、ＧＵＩ内のグラフィックオブジェクトの外見を制御するための装置を備え、該装置はグラフィックオブジェクトの第１表現を定義するための手段、及びグラフィックオブジェクトの第２表現を定義するための手段を備える。
【０１５５】
発明の一態様は、グラフィックユーザインタフェースを実現するためのアプリケーション実行デバイスを提供し、該デバイスは、プロセッサ、メモリ、表示するための信号を出力するための出力ポートを備え、該メモリは発明の態様を実施するためのプログラムを記憶している。
【０１５６】
好ましくは、アプリケーション実行デバイスは、デジタルテレビの受信機／デコーダを備える。
【０１５７】
やはり提供されているのは、発明を実行するためのコンピュータプログラムである。
【０１５８】
表示されてよい様々な表現は、例えば、アイコン及び特徴のテキスト記述を含む。このようにして、ＰＬＡＹアイコン（例えば、矢印の図）は、ワード「プレイ」として表示することもできてよい。このようにして、ユーザがテキスト記述からアイコンの意味を知っていることを保証する一方でアイコンの使用の視覚的な恩恵及びその他の恩恵を得ることができる。グラフィックオブジェクトの様々な表現を提供することによって、ＧＵＩの視覚的な外見が改善することができ、様々なディスプレイはユーザの表示可能領域を乱雑にしない。
【０１５９】
本発明の第１実施形態では、表示されるグラフィックオブジェクトの表現は、ユーザが設定できる。例えば、ユーザは、使用されているアイコンに精通し、アイコンのテキスト説明を必要としない可能性がある。この場合、ユーザは、アイコンだけが表示されることを選択してよい。
【０１６０】
本発明の第２実施形態では、表示される表現は、表示される表現を選択する、またはフォーカスを与える（例えば、強調表示する）ことによってユーザによって変更可能である。例えば、表現が「ＰＬＡＹ」アイコンとしてグラフィックオブジェクトに設定されると、ユーザは、第１表現にフォーカスを当てる、例えば強調表示するつまり選択することによってテキスト「プレイ」に対する「ＰＬＡＹ」アイコンを変更することができる。
【０１６１】
本発明の第３実施形態では、グラフィックオブジェクトの表示は、ユーザによる介入なしに様々な表現の間で切り替わる。例えば、表示されたグラフィックオブジェクトが２種類の表現の間で循環するように、優先順位を設定することができる。好ましい実施形態では、表示はアイコン及びテキスト記述の間で循環する。サイクル時間は調整可能であってよい。サイクル時間の一例は約２秒である。
【０１６２】
本発明の実施形態では、表現が表示されるときにタイマが始動される。タイマが所定の値に達すると、表現は変化する。表現の変化は、例えばアイコンからテキスト記述へなど、直接的にある表現から別の表現へであってよいか、あるいは表現のシーケンスを備えてよい。例えば、表現のシーケンスはある表現から別の表現への漸次的な変化を示してよい。ある実施形態では、表現のシーケンスは、２つの表現が旋回する硬貨の相反する面である効果を与える。
【０１６３】
本発明は、さらに、ＧＵＩ内のグラフィックオブジェクトの表現を制御するための装置を提供し、該装置は、グラフィックオブジェクトの第１表現及びグラフィックオブジェクトの第２表現を定義するための手段と、第１表現及び第２表現を選択的に表示するための手段、及び好ましくは、第１表現及び第２表現を周期的に表すための手段を備える。
【０１６４】
やはり提供されているのは、ＧＵＩ内のグラフィックオブジェクトの表現を表示するための装置であり、該装置はグラフィックオブジェクトの第１表現を表示するための手段、及びグラフィックオブジェクトの第２表現をそれ以降に表示するための手段を備える。
【０１６５】
好ましくは、装置は、さらに、第１表現を表示することと第２表現を表示することとの間で表現のシーケンスを表示するための手段を備える。
【０１６６】
本発明は、さらに、グラフィックオブジェクトの第１表現及びグラフィックオブジェクトの第２表現を備えるＧＵＩ内のオブジェクトを提供し、第１表現及び第２表現は選択的に表示可能であり、好ましくは周期的に表示可能である。
【０１６７】
画面上のキーボード
数値キーパッドを有するデバイスが、キーパッドを使用するテキストを含むデータを作成することを含むタスクを実行するためにさらに多く使用されている。例えば、移動電話は、電話の電話帳に名前など電話メモリに情報を入力するため、及びテキストメッセージの送信のために使用される。それ以外の例は、例えば、受信機／デコーダを有するテレビを使用してインターネットにアクセスするときなど、テレビ画面の上にテキストを入力するために使用されるテレビ遠隔制御装置を含む。
【０１６８】
このようなデバイスは、通常、数０から９のそれぞれのキー、及びおそらく＃と＊などのいくつかのそれ以外のキーを有する数値キーパッドだけを有する。テキストを入力できるようにするために、少なくとも２６の追加キー機能がアルファベットの文字のために必要とされ、アクセント記号が付けられる文字だけではなく、大文字と小文字の両方、句読点及び記号が必要とされ、依然として追加のキー機能が必要とされる。
【０１６９】
テキスト入力のために使用される既知のキーパッドでは、キーパッドのそれぞれのキーには数多くの機能が割り当てられ、ユーザはキーを複数回押すことで使用可能な機能を循環し、異なる機能が通常ディスプレイ上で表示可能である。ユーザがキーの所望される機能に達すると、機能が、通常「選択」キーを押すことによって、あるいは表示カーソルを移動することによって選択される。機能の完全なセットが使用可能になる場合、キーパッドのそれぞれのキーが必ず複数の異なる機能に関係することが見られるだろう。例えば、キーパッドの「２」のキーは、以下の機能を含んでよく、
【０１７０】
【表１】
2014089751.tif 000003
【０１７１】
さらに複数の機能を含んでよい。ある特定の文字、数、または記号が必要とされるたびに、キーは複数回押されなければならない。これは明らかに時間を要し、非効率的である。また、設計の制約及びキーの物理的なサイズが、多くの場合、ある特定のキーによってアクセスできる文字及び記号のすべてがユーザに表示できるわけではないことを支配する。このようにして、ユーザがある特定の文字または記号を入力することを希望する場合、ユーザは多くの場合、それを起動するキーを見つけるために試行錯誤を使用しなければならない。
【０１７２】
移動電話のいくつかのモデルに使用される解決策は、ＱＷＥＲＴＹキーボードを含むことであるが、明らかに小さなキーボードが所望である場合、それは理想的ではなく、キーは使用するために十分大きなままでなければならない。
【０１７３】
発明の一態様は、機能を実行するためのキーを有するキーボードを提供し、それぞれのキーが機能オプションを含み、そこではキーの機能オプションが変更可能である。
【０１７４】
本発明ある実施形態では、それぞれのキーは一度に１つだけの機能オプションを有し、その結果、キーはその機能を実行するために数回押されればよい。キーの機能オプションが変更可能であることを規定することによって、キーがある以上の多くの機能を実行するためにキーパッドを使用することも可能であるが、使用の効率性は改善できる。
【０１７５】
好ましくは、キーパッド用テンプレートとしてオプションの集合が配列され、該テンプレートは変更可能である。例えば、キーパッドが数だけを入力するためのあるタスクで使用されなければならない場合、入力される数ごとに、ユーザが３文字以上の文字をスクロールしなければならないのであれば、それは非効率的だろう。キーパッドのすべてのキーのオプションを「数」に変更することによって、キーは、必要とされる数を入力するためにユーザにより一度押されさえすればよい。同様にして、ユーザが、大文字を入力することを希望する場合、「大文字」テンプレートをキーパッドに適用できる。このようにして、大文字だけがキー機能のオプションに含まれ、ユーザが所望される機能を見つけるためにスクロールしなければならない機能の数を削減する。
【０１７６】
好ましくは、キーオプションは、全体としてキーパッドについて変更されるが、代わりに、キーのいくつかだけのオプションが変更される可能性がある。
【０１７７】
発明の一態様は、キーパッドを使用してグラフィックユーザインタフェース（ＧＵＩ）の中へのデータの入力を補助する方法を提供し、該方法は、それぞれのテンプレートがキーパッドのための機能の集合を備える、複数のテンプレートを定義することを備える。
【０１７８】
発明の一態様は、キーパッドを使用してグラフィックユーザインタフェースの中にデータを入力する際に使用するための装置を提供し、該装置は、それぞれのテンプレートがキーパッドの機能の集合を備える複数のテンプレートを備える。
【０１７９】
好ましくは、テンプレートはディスプレイで表示可能である。
【０１８０】
好ましくは多くの様々なテンプレートが提供され、方法は、使用するためのあるテンプレートを選択するステップを含む。好ましくは、装置は、さらにテンプレートを選択するための手段を備える。様々なテンプレートは、好ましくは、キーパッドに様々な機能を提供する。例えば、キーパッドの数キーに大文字ＡからＪを提供してよい。様々なテンプレートは、大文字ＫからＴ等を提供してよい。
【０１８１】
ここに説明される発明の実施形態では、テンプレートは、それぞれ、キーパッドのキーとともに使用するための１０の機能を含むにすぎない。別の実施形態では、キーパッドは、さらに多くのキーを含んでよく、テンプレートでアルファベット全体を表すことが可能であってよい。例えば、キーパッドはキーボードを備えてよい。様々なテンプレートが、様々な言語変形、様々な数及びキー配列、及び記号とその他の文字などの異なる種類のキーボードに対応して提供されてよい。必要とされる機能のすべてがそれぞれのテンプレートで含まれる可能性があり、様々なテンプレートが様々な種類のキーパッドまたはキーボードの異なるキーレイアウトに対応して提供されている。
【０１８２】
ここに使用されている用語キーパッドは、キーまたはボタン等の配列を有するすべてのデバイスを含むように幅広く解釈されるべきである。このようにして、用語は、好ましくは、リモートコントローラ、電話及びコンピュータキーボード並びにその他のデバイスも含む。
【０１８３】
好ましくは、例えば、コンピュータまたはテレビの画面上でテンプレートを表示するためのステップを含む。好ましくは、複数の使用可能なテンプレートが表示され、好ましくは、ユーザは使用するための表示されるテンプレートの１つを選ぶことができる。
【０１８４】
好ましい実施形態では、使用可能なテンプレートはグリッドとして表示され、好ましくは、ユーザはキーパッドのカーソルキーを使用して所望されるテンプレートを選択する。ユーザは、代わりに、例えばポインタデバイス、例えばマウスなどの異なるデバイスを使用してよい。
【０１８５】
好ましくは、ディスプレイは、キーパッドの関連するキーの配列に対応する構成でのテンプレートの機能を示す。好ましくは、方法は、キーパッドの画像を表示することを含む。好ましくは、テンプレートを選択するステップは、画面上でのテンプレートを基準にしたキーパッドの画像を移動することを含む。
【０１８６】
好ましくは、装置は、さらに表示可能なキーパッド画像を含み、該装置は、好ましくはテンプレートのディスプレイを基準にしてキーパッドの画像を移動するための手段を備える。
【０１８７】
好ましくは、キーパッドの画像を画面に表示することは、表示されるキーパッドの画像を選択するステップを含む。キーパッドでのキーのレイアウトは、ある種のキーパッドから別の種類のキーパッドで変わることがあるため、キーパッドレイアウトに対応することは、示されるテンプレートでキーのレイアウトにとって有利である。
【０１８８】
好ましくは、ユーザは、キーパッド上でカーソルキーを使用してテンプレートを基準にしてキーパッドの画像を移動する。
【０１８９】
テンプレートの機能は、ＱＷＥＲＴＹキーボードとして計画されてよく、キーボードはキーパッドの画像について多様なゾーンに分割される。例えば、ある位置では、キーパッドは、文字ｑ、ｗ、ｅ、ａ、ｓ、ｄ、ｚ、ｘ、ｃ及びスペースを入力するために使用されてよい。
【０１９０】
その他の実施形態では、テンプレートの機能は他の方法で計画される。好ましくは、ユーザが頻繁に使用する機能は、それらが複数のテンプレートで表示されるように配列される。好ましくは、テンプレートはユーザによってカスタマイズされてよい。
【０１９１】
テンプレートキーボードのキーによって提供される機能は、複数の文字、数または記号を備えてよい。例えば、キーパッドがウェブブラウザに使用される場合、キーは、例えば，「ｈｔｔｐ：／」または「ｗｗｗ」を入力するために使用されてよい。
【０１９２】
好ましくは、キーパッドテンプレートは、ユーザがデータを入力する間、画面に表示される。
【０１９３】
発明の一態様は、キーパッドのテンプレートを提供する。好ましくは、テンプレートはＧＵＩに表示可能である。
【０１９４】
発明の一態様は、キーパッドを使用してデータを入力する方法を提供し、方法は、キーパッドに機能の集合を備えるテンプレートを選択することを含む。
【０１９５】
本発明の該態様は、さらに、キーパッドを使用してデータを入力するための装置を提供し、該装置は、キーパッドテンプレートを表示するための手段を含む。好ましくは、装置は、複数のキーパッドテンプレートを表示するための手段、及びテンプレートを選択するための手段を含む。
【０１９６】
好ましくは、データ入力用のキーパッドテンプレートのディスプレイは、装置が実行してよいそれ以外のアプリケーションとは別個である。例えば、装置がウェブブラウザアプリケーションを実行中であり、データがダイアログボックスに入力される必要がある場合、ユーザは、ブラウザアプリケーションに平行して実行するキーパッドテンプレートを呼び出す。好ましくは、キーパッドテンプレートアプリケーションは、装置内の複数のアプリケーションから呼び出すことができる。
【０１９７】
本発明の該態様は、プロセッサ、メモリ及び信号をディスプレイに出力するための出力ポートを備えるグラフィックユーザインタフェースを実現するためのアプリケーション実行デバイスも提供し、メモリは発明の一態様を実行するためのプログラムを記憶している。好ましくは、メモリは、さらに、キーパッドテンプレートのライブラリを記憶し、好ましくはさらにキーパッド画像のライブラリを記憶している。
【０１９８】
本発明の該態様は、さらに、キーパッドテンプレート及び／またはキーパッド画像のライブラリを提供する。
【０１９９】
発明の一態様は、本発明の方法を実行するためのコンピュータープログラムを提供する。
【０２００】
概要
ここでグラフィックオブジェクト及びその他のオブジェクトが参照される場合、このような用語は広義に解釈されるべきである。特に、それは、オブジェクトがオブジェクト指向型プログラムコードによって定義されることを暗示するとして解釈されるべきではない。
【０２０１】
ここに説明される方法は、好ましくは、適切にプログラムされたプロセッサを有するアプリケーション実行デバイスを使用して実行される。
【０２０２】
好ましくは、発明は、送信機の一斉送信及び受信に関する。
【０２０３】
前述の方法のいずれも、デジタルまたはアナログのテレビ受信機／デコーダ受信機／デコーダによって実行されてよい。代わりに、方法は、移動電話、コンピュータまたは別のデバイスによって実行されてよい。
【０２０４】
ここに説明される方法は、説明されている方法のいずれかを実行するためのコンピュータプログラムにも、及び前記方法のいずれかを実行するためのプログラムを記憶したコンピュータ読み取り可能媒体にも及ぶ。発明は、発明のいずれかの態様の方法を実行するために配列される受信機／デコーダのアプリケーションにも及ぶ。
【０２０５】
本発明は、例えば、コンピュータソフトウェア及び／またはコンピュータソフトウェア新版を備える、コンピュータプログラム製品にも及ぶ。このようなコンピュータプログラム製品は、例えば、ケーブルまたは衛星放送によって、放送コンピュータセンタからユーザに伝送されてよい。コンピュータプログラム製品は、例えばＣＤ  ＲＯＭなどのディスクに提供されてよい。コンピュータプログラム製品は、ハードディスクまたは揮発性メモリまたは不揮発性メモリなどの記憶媒体上に記憶されるソフトウェアとして、あるいは信号として有形で実現されてよい。
【０２０６】
発明の一態様は、さらに、以下を提供する。つまり、
外観オブジェクトを定義するため、及び
該外観オブジェクトをグラフィックオブジェクトと関連付けるための、
コードを備えるコンピュータプログラム製品と、
グラフィックオブジェクトの外見を制御する外観オブジェクトを提供するためのコードと、
グラフィックオブジェクトの動作を制御するウィジェットオブジェクトを提供するためのコードと、
を備える、グラフィックユーザインタフェース内のグラフィックオブジェクトを定義する上で使用する前のコンピュータプログラム製品と、
グラフィックオブジェクトの複数の異なる表示可能なグループを定義するための、及び複数の表示可能なグループからグラフィックオブジェクトのグループを選択するためのコードを含む、グラフィックオブジェクトのグループの外見を制御する方法で使用するためのコンピュータプログラム製品と、グラフィックオブジェクトの表示可能なグループを定義するためのコードを備える、グラフィックオブジェクトのグループの外見を制御するための方法で使用するためのコンピュータプログラム製品と、グラフィックオブジェクトの表現を表示する上で使用するためのグラフィックオブジェクトの複数のグラフィックオブジェクト要素を定義するためのコードを備える、グラフィックユーザインタフェース内のグラフィックオブジェクトの外見を制御する方法で使用するためのコンピュータプログラム製品と、グラフィックオブジェクトのインスタンスに共通した固定要素の集合を定義するため、及び繰り返し可能要素の集合を定義するためのコードを備える、グラフィックオブジェクトの要素のキットを作る方法で使用するためのコンピュータプログラム製品と、複数のグラフィックオブジェクト要素をアセンブルするためのコードを備える、グラフィックユーザインタフェース内のグラフィックオブジェクトの表現を表示する方法で使用するためのコンピュータプログラム製品と、グラフィックオブジェクトの第１表示可能表現を定義するためのコードと、第１表現に隣接する第２表現を表示するためのコードとを備える、ＧＵＩでのグラフィックオブジェクトの外見を制御する方法で使用するためのコンピュータプログラム製品と、グラフィックオブジェクトの第１表現を表示するため、グラフィックオブジェクトの第２表現を表示する、及び第１表現と第２表現を連結する連結要素を表示するためのコードを備えるため、グラフィックオブジェクトを表示する方法で使用するためのコンピュータプログラム製品と、グラフィックオブジェクトの連結チェーンを定義するためのコードを備える、グラフィックユーザインタフェース内のグラフィックオブジェクトの外見を制御する方法で使用するためのコンピュータプログラム製品と、第１グラフィックオブジェクトを定義するため、第２グラフィックオブジェクトを定義するため、及びグラフィックオブジェクトを連結するための連結要素を定義するためのコードを備える、グラフィックユーザインタフェース内のグラフィックオブジェクトの外見を制御する方法で使用するためのコンピュータプログラム製品と、グラフィックオブジェクトの表現を表示するための、及びグラフィックオブジェクト間の連結を示すための連結要素の表現を表示するためのコードを備える、グラフィックユーザインタフェースでグラフィックオブジェクトの表現を表示する方法で使用するためのコンピュータプログラム製品と、グラフィックオブジェクトの第１表現及びグラフィックオブジェクトの第２表現を定義するためのコードと、第１表現と第２表現を選択的に表示する、好ましくは表現を周期的に表示するためのコードとを備える、ＧＵＩ内のグラフィックオブジェクトの外見を制御する方法で使用するためのコンピュータプログラム製品と、グラフィックオブジェクトの第１表現を表示するため、及びそれ以降グラフィックオブジェクトの第２表現を表示するためのコードを備える、ＧＵＩ内のグラフィックオブジェクトの表現を表示する方法で使用するためのコンピュータプログラム製品と、受信機／デコーダとともに使用するためにここに記述されるコンピュータプログラム製品。
【０２０７】
また提供されているのは、メモリ及びプロセッサを備えるコンピュータプログラム製品であり、該メモリはその中にアプリケーションを記憶しており、（アプリケーションの制御下にある）プロセッサは、ここに説明される方法のいずれかを実行するために適応されているコンピュータプログラム製品、及びここに説明されている方法のいずれかを実行するためのプログラム及びここに説明されている方法のいずれかを実行するためのコンピュータプログラムを備える。
【０２０８】
本発明によってまた提供されているのは、その上にここに説明されるような方法のいずれかを実行するためのプログラムを記憶しているコンピュータ読み取り可能媒体、及びここに説明されるようなコンピュータプログラム製品を記憶しているコンピュータ読み取り可能媒体である。
【０２０９】
また、ここに説明されるようなコンピュータプログラム製品を有形で実現する信号が提供される。
【０２１０】
本発明は、さらに、実質的に添付図面に関してここに説明され、添付図面に示されるような方法、及び添付図面に関してここに説明され、添付図面に示されるような装置を備える。
【０２１１】
発明の一態様がグラフィックオブジェクトに関する場合、発明は、グラフィックオブジェクトを定義する方法と、グラフィックオブジェクトの外見を制御する方法と、グラフィックオブジェクトの表現を、例えば、テレビ画面または移動電話のＬＣＤなどの適切なディスプレイに、及びグラフィックオブジェクトそれ自体に表示する方法を提供する。発明は、発明を実行するための装置及び好ましくは適切にプログラミングされたプロセッサを使用する発明の装置も提供する。
【０２１２】
好ましくは、デジタルテレビの、及び好ましくはテレビ用ウェブブラウザの用途を見つける。発明は、例えば、デジタルテレビ用の受信機／デコーダで実現されてよい。前述される発明の態様の特徴は、好ましくは、例えば受信機／デコーダのプロセッサ及びメモリなどの、プロセッサ及び／またはメモリによって提供される。
【０２１３】
ここに説明される方法のいずれも、デジタルまたはアナログのテレビ受信機／デコーダなどの受信機／デコーダによって実行されてよい。
【０２１４】
ここに使用されている用語「受信機／デコーダ」は、例えばなんらかの他の手段によって一斉送信または伝送されてよいテレビ信号及び／または無線信号などの、符号化された信号または符号化されていない信号のどちらかを受信するための受信機を言外に意味する。用語は、また、受信された信号を復号するためのデコーダも言外に意味してよい。このような受信機／デコーダの実施形態は、例えば、「セットトップボックス」などの受信された信号を復号するための受信機と一定化したデコーダを含んでよく、このようなデコーダは物理的に別個の受信機と組み合わされて機能するか、このようなデコーダは、ウェブブラウザ、ビデオレコーダ、またはテレビなどの追加機能を含む。
【０２１５】
本発明は、純粋に例証してここに説明されており、詳細の修正が発明の範囲内で加えることができることが理解されるだろう。
【０２１６】
説明中に開示されるそれぞれの機能及び（該当する場合）クレームと図面は、独立して、あるいは任意の適切な組み合わせで提供されてよい。
【０２１７】
装置の機能はここにある特定の機能の「ための手段」として説明されているが、それらの用語が広義に解釈され、好ましくはここに説明される発明の特定の実施形態に制限されると解釈されないことが意図される。装置の特徴は、適切にプログラミングされた１台または複数台のコンピュータによって提供される好ましい実施形態にあり、このようにして装置の特徴は、コンピュータの関連する特徴またはコンピュータプログラムを備える製品によって提供される。例えば、装置の特徴はプロセッサ、あるいはコンピュータのその他の部分、例えば、メモリまたはデータ記憶装置によって提供されてよい。
【０２１８】
ある態様の特徴は、任意の他の態様に適用されてよい。つまり、方法特徴は、装置態様に適用されてよく、及びその逆である。
【０２１９】
本発明の好ましい特徴を、純粋に、添付図面に関して、例によって説明する。
【図面の簡単な説明】
【０２２０】
【図１ａ】典型的なデジタルテレビシステムの概観を示す。
【図１ｂ】対話型テレビシステムの一般的なアーキテクチャを示す。
【図２ａ】受信機／デコーダのブロック図である。
【図２ｂ】受信機／デコーダのアーキテクチャを示す。
【図２ｃ】受信機／デコーダのアーキテクチャをさらに示す。
【図３】ウィジェット集合内のウィジェットの階層の一部の図である。
【図４】ＧＵＩディスプレイで表示されるウィジェットの簡略化された図である。
【図５】複数のウィジェットのメモリ内の場所を示す。
【図６ａ】ウェブブラウザの画面ディスプレイを示す。
【図６ｂ】ウェブブラウザをナビゲートするためのリモートコントローラを示す。
【図７】ウェブブラウザの追加画面ディスプレイを示す。
【図８】ウェブブラウザの追加画面ディスプレイを示す。
【図９】ウェブブラウザの追加画面ディスプレイを示す。
【図１０】ウェブブラウザの追加画面ディスプレイを示す。
【図１１】ウェブブラウザの追加画面ディスプレイを示す。
【図１２】ウェブブラウザの追加画面ディスプレイを示す。
【図１３】ウェブブラウザの追加画面ディスプレイを示す。
【図１４】ウェブブラウザの追加画面ディスプレイを示す。
【図１５】ウェブブラウザの追加画面ディスプレイを示す。
【図１６】ウェブブラウザの追加画面ディスプレイを示す。
【図１７】ウェブブラウザの追加画面ディスプレイを示す。
【図１８】ウェブブラウザの追加画面ディスプレイを示す。
【図１９】ウェブブラウザの追加画面ディスプレイを示す。
【図２０】ウェブブラウザの追加画面ディスプレイを示す。
【図２１】ウェブブラウザの追加画面ディスプレイを示す。
【図２２】ウェブブラウザの追加画面ディスプレイを示す。
【図２３】ウェブブラウザの追加画面ディスプレイを示す。
【図２４】ウェブブラウザの追加画面ディスプレイを示す。
【図２５】ウェブブラウザの追加画面ディスプレイを示す。
【図２６】ウェブブラウザの追加画面ディスプレイを示す。
【図２７】ウェブブラウザの追加画面ディスプレイを示す。
【図２８】ウェブブラウザの追加画面ディスプレイを示す。
【図２９】ウェブブラウザの追加画面ディスプレイを示す。
【図３０】ウェブブラウザの追加画面ディスプレイを示す。
【図３１】並列表示によって形成されるグラフィックオブジェクトの例である。
【図３２】並列表示によって形成されるグラフィックオブジェクトの追加例である。
【図３３】並列表示によって形成されるグラフィックオブジェクトの追加例である。
【図３４】並列表示によって形成されるグラフィックオブジェクトの追加例である。
【図３５】並列表示によって形成されるグラフィックオブジェクトの追加例である。
【図３６】並列表示によって形成されるグラフィックオブジェクトの追加例である。
【図３７】並列表示によって形成されるグラフィックオブジェクトの追加例である。
【図３８】並列表示によって形成されるグラフィックオブジェクトの追加例である。
【図３９】グラフィックオブジェクトを並列表示する方法を示す。
【図４０】典型的な画像バッファを示す。
【図４１】並列表示したグラフィックオブジェクトのレイアウトを示す。
【図４２】仮想キーボードの動作を概略的に示す。
【図４３】仮想キーボードへの文字の典型的な写像を示す。
【図４４】仮想キーボードの例を示す。
【図４５】仮想キーボードの典型的な寸法を示す。
【発明を実施するための形態】
【０２２１】
デジタルテレビシステムの概観
デジタルテレビシステム１の概観は図１ａに示されている。発明は、既知のＭＰＥＧ−２圧縮システムを使用し、圧縮されたデジタル信号を伝送する、主として従来のデジタルテレビシステム２を含む。さらに詳細には、放送センタ内のＭＰＥＧ−２圧縮機３は、デジタル信号ストリーム（典型的にはビデオ信号のストリーム）を受信する。圧縮機３は、リンケージ５によってマルチプレクサ及びスクランブラ４に接続される。
【０２２２】
マルチプレクサ４は、複数の追加入力信号を受信し、トランスポートストリームをアセンブルし、言うまでもなく電気通信連結を含む多岐に渡る形式を取ることができる、リンケージ７を介して放送センタの送信機６に圧縮されたデジタル信号を伝送する。送信機６は、衛星トランスポンダ９に向かうアップリンク８を介して電磁信号を伝送し、そこではそれらは電子的に処理され、概念上のダウンリンク１０を介して、従来はエンドユーザによって所有されているまたは貸借されている放物面反射器の形を取る、それぞれの地上受信機１２に一斉送信される。地上放送、ケーブル伝送、結合された衛星／ケーブル連結、電話網等、データの伝送用のその他のトランスポートチャネルも言うまでもなく可能である。
【０２２３】
受信機１２によって受信される信号は、エンドユーザによって所有される、または貸借され、エンドユーザのテレビセット１４に接続される統合型受信機／デコーダ１３に伝送される。受信機／デコーダ１３は、テレビセット１４用のテレビ信号に圧縮されたＭＰＥＧ−２信号を復号する。別個の受信機／デコーダは図１ａに図示されているが、受信機／デコーダは、統合型デジタルテレビの一部であってよい。ここに使用されているように、用語「受信機／デコーダ」がセットトップボックスなどの別個の受信機／デコーダ、及びそれと統合された受信機／デコーダを有するテレビを含む。
【０２２４】
多重チャネルシステムでは、マルチプレクサ４は、数多くの並列ソースから受信される音声及びビデオ情報を取り扱い、情報を対応する数のチャネルに沿って一斉送信するために、送信機６と対話する。視聴覚情報に加えて、メッセージまたはアプリケーション、あるいはそれ以外の種類のデジタルデータが、伝送されたデジタル音声及びビデオ情報でインタレースされるこれらのチャネルのいくつかまたはすべてで導入されてよい。
【０２２５】
条件付きアクセスシステム１５は、マルチプレクサ４及び受信機／デコーダ１３に接続され、部分的に放送センタ内に位置し、部分的に受信機／デコーダ内に位置する。それは、エンドユーザが、１つまたは複数の放送供給業者からのデジタルテレビ放送にアクセスできるようにする。コマーシャルオファー（すなわち、放送供給業者によって販売される１つまたは複数のテレビ番組）に関するメッセージを復号することができるスマートカードが、受信機／デコーダ１３の中に挿入できる。受信機／デコーダ１３及びスマートカードを使用して、エンドユーザは、加入モードまたは有料視聴モードのどちらかでコマーシャルオファーを購入してよい。ここに使用されるように、用語「スマートカード」は、独占的にではないが、あらゆるチップベースのカードデバイス、または例えばマイクロプロセッサ及び／またはメモリ記憶装置などの類似する機能及び性能、処理、のオブジェクトを含む。この用語に含まれるのは、カード、例えば、多くの場合、ＴＶデコーダシステムで使用されるようなキー形をしたデバイスなど、カードに代替的な物理形式を有するデバイスである。
【０２２６】
前述されたように、システムによって伝送される番組は、マルチプレクサ４でスクランブルされ、指定伝送に適用される条件及び暗号化キーは、アクセス制御システム１５によって決定される。このようにしてスクランブルされるデータの伝送は、有料テレビシステムの分野では周知である。典型的には、スクランブルされたデータが、データの逆スクランブルのための制御ワードとともに伝送され、制御ワード自体が、いわゆる利用（ｅｘｐｌｏｉｔａｔｉｏｎ）キーで暗号化され、暗号化された形式で伝送される。
【０２２７】
それから、スクランブルされたデータ及び暗号化された制御ワードが、暗号化された制御カードを復号し、その後伝送されたデータを逆スクランブルするためにデコーダに挿入されるスマートカードで記憶される利用キーの同等物にアクセスすることができるデコーダ１３によって受信される。会費を納付し終わった加入者は、例えば、放送月次ＥＣＭ（資格管理メッセージ）の中で、伝送の表示を可能とするために暗号化された制御ワードを復号するために必要な利用キーを受信するだろう。
【０２２８】
対話型システム
やはりマルチプレクサ４及び受信機／デコーダ１３に接続され、再び部分的に放送センタ内に、及び部分的に受信機／デコーダ内に位置する対話型システム１６により、エンドユーザは、モデムバックチャネル１７を介して多様なアプリケーションと対話できる。モデムバックチャネルは、条件付きアクセスシステム１５で使用される通信にも使用されてよい。
【０２２９】
図１ｂは、デジタルテレビシステム１の対話型テレビシステム１６の一般的なアーキテクチャを示す。
【０２３０】
例えば、対話型システム１６により、エンドユーザは、画面上のカタログから商品を購入し、地元ニュース及び天気図をオンデマンドで調べ、自分達のテレビセットを通してゲームをプレイすることができる。
【０２３１】
対話型システム１６は、概して以下の４つの主要要素を備える。
・放送供給業者がアプリケーションを作成、展開、デバッグ及び試験できるようにするための、放送センタまたはそれ以外の場所にあるオーサリングツール４００４、
・放送供給業者が、エンドユーザに一斉送信されるためのＭＰＥＧ−２トランスポートストリーム（典型的にはその専用セクション）への挿入のためにマルチプレクサ及びスクランブラ４に送達するために、アプリケーション及びデータを作成、認証、及びフォーマットできるようにするオーサリングツール４００４に接続される、放送センタにあるアプリケーション及びデータサーバ４００６、
・エンドユーザが、実行のためにアプリケーションを受信、認証、復元、及びデコーダ１３の作業メモリの中にロードできるようにするためのエンドユーザによって所有される、または貸借される受信機／デコーダ１３にインストールされる実行可能コードである実行時エンジン（ＲＴＥ）４００８を含む仮想機械。該エンジン４００８は、常駐汎用アプリケーションも実行する。該エンジン４００８は、ハードウェア及びオペレーティングシステムとは無関係である、及び
・サーバ４００６に、エンドユーザの要求時に、データ及びアプリケーションをＭＰＥＧ−２トランスポートストリームに挿入するように命令する信号をイネーブルする受信機／デコーダ１３とアプリケーション及びデータサーバ４００６の間のモデムバックチャネル１７。
【０２３２】
対話型テレビシステムは、受信機／デコーダの機能及びその中に含まれる多様なデバイスを制御する「アプリケーション」を使用して動作する。アプリケーションは、「リソースファイル」としてエンジン４００８内で表される。「モジュール」は、リソースファイル及びデータの集合である。受信機／デコーダの「メモリボリューム」は、モジュール用の記憶空間である。モジュールは、ＭＰＥＧ−２トランスポートストリームから、受信機／デコーダ１３の中にダウンロードされてよい。
【０２３３】
受信機／デコーダ
図２ａを参照して、受信機／デコーダ１３の多様な要素を、機能ブロックという点でここに説明する。
【０２３４】
例えば、デジタルセットボックス（ＤＳＴＢ）であってよい受信機／デコーダ１３は、関連付けられたメモリ素子を含み、直列インタフェース２２１、並列インタフェース２２２、（図１ａのモデムバックチャネル１７に接続される）モデム２２３、及びデコーダの前面パネル上の開閉器接点２２４から入力データを受信するように適応される中央処理装置２２０を備える。
【０２３５】
受信機／デコーダは、さらに、制御装置２２６を介して赤外線リモートコントローラ２２５から入力を受け取るように適応され、それぞれ銀行スマートカード及び加入カード２４２、２４０を読み取るように、２台のスマートカード読取装置２２７、２２８も所有する。加入スマートカード読取装置２２８は、挿入される加入カード２４０と、及び条件付きアクセス装置２２９と係合し、必要な制御ワードをデマルチプレクサ／デスクランブラ２３０に供給し、暗号化された一斉送信信号を復号できるようにする。デコーダは、装置２３０によって濾波され、多重分離される前に、衛星伝送を受信し、復調するために、従来のチューナ２３１及び復調器２３２も含む。
【０２３６】
受信機／デコーダ内のデータの処理は、通常、中央処理装置２２０によって処理される。図２ｂは、受信機／デコーダの中央処理装置２２０のソフトウェアアーキテクチャを示す。図２ｂに関して、ソフトウェアアーキテクチャは、１つまたは複数のアプリケーション４０５６を実行するために、実行時エンジン４００８、デバイスマネージャ４０６８及び複数のデバイス４０６２及びデバイスドライバ４０６６を備える。
【０２３７】
本説明中、好ましくは、アプリケーションは、好ましくは、受信機／デコーダ１３の高水準機能を制御するための１つのコンピュータコードである。例えば、エンドユーザがリモートコントローラ２２５のフォーカスを、テレビセット１４の画面上に見えるボタンオブジェクトに位置決めし、バリデーションキーを押すと、ボタンに関連付けられる命令シーケンスが実行される。
【０２３８】
対話型アプリケーションは、エンドユーザの要求でメニューを提案し、コマンドを実行し、アプリケーションの目的に関係するデータを提供する。アプリケーションは、常駐アプリケーションであってよい、すなわち受信機／デコーダ１３のＲＯＭ（あるいはＦＬＡＳＨまたはその他の不揮発性メモリ）に記憶されてよいか、あるいは受信機／デコーダ１３の一斉送信され、ＲＡＭまたはＦＬＡＳＨメモリにダウンロードされてよいかのどちらかである。
【０２３９】
アプリケーションは、受信機／デコーダ１３内のメモリロケーションに記憶され、リソースファイルとして表される。該リソースファイルは、前述された特許明細書でより詳細に説明されるように、グラフィックオブジェクト記述ユニットファイル、変数ブロックユニットファイル、命令シーケンスファイル、アプリケーションファイル、及びデータファイルを備える。
【０２４０】
受信機／デコーダは、ＲＡＭボリューム、ＦＬＡＳＨボリューム及びＲＯＭボリュームに分割されるメモリを含むが、この物理的な編成は、論理的な編成とは異なる。メモリは、さらに、多様なインタフェースに関連付けられるメモリボリュームに分割されてよい。ある観点から、メモリは、ハードウェアの一部と見なすことができる。別の観点からは、メモリは、ハードウェアとは別個に示されるシステムの全体をサポートするまたは含むと見なすことができる。
【０２４１】
ソフトウェアアーキテクチャ
中央処理装置２２０は、仮想機械４００７の部分を形成する実行時エンジン４００８に中心が置かれると見なすことができる。これは、後述される多様な中間論理装置を介して一方の側面（「高水準」側面）で、及び他方側面（「低水準」側面）でアプリケーションに、前述されたような多様なポート（すなわち、例えば直列インタフェース２２１、並列インタフェース２２２、モデム２２３、及び制御装置２２６）を備える受信機／デコーダハードウェア４０６１に結合される。
【０２４２】
特に図２ｂに関して、多様なアプリケーション４０５７は、仮想機械４００７に結合される。さらに一般的に使用されるアプリケーションのいくつかは、４０５７で示されるように、多かれ少なかれ恒久的にシステム内に常駐されてよいが、その他は、例えばＭＰＥＧデータストリームから、または必要に応じてその他のポートからシステムにダウンロードされるだろう。
【０２４３】
仮想機械４００７は、実行時エンジン４００８に加えて、ツールボックス４０５８を含むいくつかの常駐ライブラリ関数４００６を含む。ライブラリは、エンジン４００８によって使用されるＣ言語でのその他の関数を含む。これらは、データ構造、線描画等の圧縮、拡大、または比較などのデータ操作を含む。ライブラリ４００６は、ハードウェア及びソフトウェアバージョン番号及び使用可能なＲＡＭ空間などの受信機／デコーダ１３内のファームウェア、及び新しいデバイス４０６２をダウンロードするときに使用される関数などについての情報も含む。関数は、ライブラリにダウンロードされ、ＦＬＡＳＨメモリ又はＲＡＭメモリに記憶される。
【０２４４】
実行時エンジン４００８は、その結果としてポートまたはインタフェースに結合されるデバイスドライバ４０６０に結合されるデバイス４０６２の集合に結合されるデバイスマネージャ４０６８に結合される。広義に、デバイスドライバは、論理インタフェースを定義するとして見なすことができ、その結果、２つの異なるデバイスドライバは１つの共通した物理ポートに結合されてよい。デバイスは、通常、複数のデバイスドライバに結合されるだろう。デバイスが単一のデバイスドライバに結合される場合、デバイスは、通常、通信に必要とされる完全な機能性を組み込むように設計され、その結果、別個のデバイスドライバに対するニーズが回避される。一定のデバイスは、それら自体の間で通信してよい。
【０２４５】
受信機／デコーダ１３の各機能は、受信機／デバイス１３のソフトウェアアーキテクチャ内のデバイス４０６２として表される。デバイスは、ローカルまたはリモートのどちらかとなる。ローカルデバイス４０６４はスマートカード、ＳＣＡＲＴコネクタ信号、モデム、直列インタフェースと並列インタフェース、ＭＰＥＧビデオ及び音声プレーヤ、及びＭＰＥＧセクションとテーブル抽出器を含む。リモートロケーションで実行されるリモートデバイス４０６６は、ポート及び手順が、受信機／デコーダ製造メーカによって提供、製造されるデバイス及びデバイスドライバによってよりむしろ、システム権威または設計者によって定義されなければならないという点でローカルデバイスと異なる。
【０２４６】
実行時エンジン４００８は、マイクロプロセッサ及び１つの共通したアプリケーションプログラミングインタフェース（ＡＰＩ）の制御下で実行する。それらは、すべての受信機／デコーダ１３がアプリケーションの観点から同一であるように、あらゆる受信機／デコーダ１３にインストールされる。
【０２４７】
エンジン４００８は、受信機／デコーダ１３上でアプリケーション４０５６を実行する。それは対話型アプリケーション４０５６を実行し、受信機／デコーダ１３の外部からイベントを受信し、グラフィック及びテキストを表示し、デバイスにサービスを要求し、特定の計算のためにエンジン４００８に接続されるライブラリ４００６の関数を使用する。
【０２４８】
実行時エンジン４００８は、各受信機／デコーダ１３内にインストールされる実行可能なコードであり、アプリケーションを解釈し、実行するためのインタプリタを含む。エンジン４００８は、（ＭＳ−ＤＯＳなどの）単一タスクオペレーティングシステムを含む任意のオペレーティングシステムに適応可能である。エンジン４００８は、（多様な処置を実行するために、キー押下などの多様なイベントを取る）プロセスシーケンサ装置に基づき、様々なハードウェアインタフェースからのイベント待ち行列を管理するための専用のスケジューラを含む。それは、グラフィック及びテキストのディスプレイも処理する。プロセスシーケンサ装置は、処置グループの集合を備える。それぞれのイベントが、イベントの文字に依存してプロセスシーケンサ装置をその現在の処置グループから別の処置グループに移動させ、新しい処置グループの処置を実行させる。
【０２４９】
エンジン４００８は、アプリケーション４０５６を受信機／デコーダメモリの中にロード及びダウンロードするためにコードローダを備える。必要なコードだけが、最適な使用を保証するために、ＲＡＭまたはＦＬＡＳＨメモリの中にロードされる。ダウンロードされたデータは、アプリケーション４０５６の修正、または許可されていないアプリケーションの実行を妨げるために認証機構によって検証される。エンジン４００８は、さらに、復元器を備える．アプリケーションコード（中間コードの形式）は、空間節約、及びＭＰＥＧストリームからあるいは内蔵受信機／デコーダモードを介する高速ダウンロードのために圧縮されるので、コードは、ＲＡＭの中にそれをロードする前に復元されなければならない。エンジン４００８は、エラーチェッカなどの、アプリケーションコードを解釈し、多様な変数値を更新し、ステータス変更を決定するためのインタプリタも備える。
【０２５０】
受信機／デコーダのアーキテクチャ
受信機／デコーダは、ソフトウェアが、任意の受信機／デコーダ内で、オペレーティングシステムとともに実現できるように、５つのソフトウェア層を含む。図２ｃを参照すると、多様なソフトウェア層は、アプリケーション層２５０、アプリケーションプログラミングインタフェース（ＡＰＩ）層２５２、仮想機械２５４、デバイス層２５６及びシステムソフトウェア／ハードウェア層２５８である。
【０２５１】
アプリケーション層２５０は、受信機／デコーダの中に受注するか、あるいはダウンロードされるかのどちらかであるアプリケーションを包含する。それらはカスタマによって使用され、例えばＪａｖａ、ＨＴＭＬ、ＭＨＥＧ−５またはその他の言語で作成されてよいか、あるいはそれらはこのようなアプリケーションを実行するために受信機／デコーダによって使用されるアプリケーションであってよい。この層は、仮想機械層によって提供される開放アプリケーションプログラミングインタフェース（ＡＰＩ）の集合に基づいている。このシステムが、アプリケーションを実行中またはオンデマンドで受信機／デコーダ内のフラッシュまたはＲＡＭメモリにダウンロードできるようにする。アプリケーションコードは、データ記憶媒体コマンド及び制御（ＤＳＭＣＣ）、ネットワークファイルサーバ（ＮＦＳ）などのプロトコル、またはその他のプロトコルを使用して圧縮フォーマットまたは圧縮されていないフォーマットで伝送できる。
【０２５２】
対話型アプリケーションとは、ユーザが、例えば、電子番組表、テレバンキングアプリケーション及びゲームなどの製品及びサービスを得るために対話するアプリケーションである。
【０２５３】
以下のように、これらのダウンロードされるアプリケーション及びデータのために多様な機密保護特徴が提供される。
・最初に、意図されたネットワークについて認証されない限り、受信機／デコーダに何もダウンロードすることはできず、これが未登録ソフトウェアが受信機／デコーダで実行されるのを防ぐ。つまり、受信機／デコーダ内で実行中の任意のソフトウェアは認識され、完全に試験されている。
・機密保護マネージャは、多様なメモリゾーンに対するアプリケーションのアクセスを制限し、このようにしてデータ完全性を保証する。
・システムは、安全なプロセッサ（例えば、受信機／デコーダに挿入されるスマートカード）を利用する任意の条件付きアクセスシステムと接続できる。
【０２５４】
以下の常駐するアプリケーションは、対話型アプリケーションを管理するために使用される。
・ブート。ブートアプリケーション２６０は、受信機／デコーダが電源投入時に起動される最初のアプリケーションである。ブートアプリケーションは、仮想機械の中で様々な「マネージャ」を起動し、最初はアプリケーションマネージャ２６２である。
・アプリケーションマネージャ。アプリケーションマネージャ２６２は、受信機／デコーダで実行される対話型アプリケーションを管理する。すなわち、それは、イベントを起動、停止、中断、再開、処理し、アプリケーション間の通信に対処する。それは、複数のアプリケーションが一度に実行できるようにし、このようにしてそれらの間でのリソースの割り当てに関与する。このアプリケーションはユーザにとって完全にトランスペアレントである。
・セットアップ。セットアップアプリケーション２６４の目的とは、おもに初めてそれが使用されるときに、受信機／デコーダを構成することである。それは、テレビ番組の走査、日付と時刻の設定、ユーザ優先順位の確立等の処置を実行する。ただし、セットアップアプリケーションは、受信機／デコーダの構成を変更するために、ユーザによって任意の時点で使用できる。
・ザッピング。ザッピングアプリケーション２６８は、番組上、番組下、及び数値キーを使用してチャネルを変更するために使用される。例えばバナー（パイロット）アプリケーションを通してなど、ザッピングの別の形式が使用されると、ザッピングアプリケーションは停止される。
・呼び戻し。呼び戻しアプリケーションは、受信機／デコーダメモリに記憶される多様なパラメータの値を抽出し、モデムバックチャネル１７を介して、または他の手段によってこれらの値をコマーシャル事業者に戻すために使用される。
【０２５５】
ＡＰＩ層２５２は、対話型アプリケーション展開に高水準ユーティリティを提供する。それは、この高水準ＡＰＩを構成する複数のパッケージを含む。パッケージは、対話型アプリケーションを実行するために必要なすべての機能性を提供する。パッケージは、アプリケーションによってアクセス可能である。
【０２５６】
好ましい実施形態では、ＡＰＩは、Ｊａｖａプログラミング言語で作成されるアプリケーションを実行するように適応される。さらに、それはＨＴＭＬ及びＭＨＥＧ−５などのその他のフォーマットを解釈できる。これらのインタプリタに加えて、それは、要件に命令されるように、切り離し可能であり、拡張可能である他のパッケージ及びサービスモジュールも含む。
【０２５７】
仮想機械層２５４は、言語インタプリタ及び多様なモジュールとシステムから構成される。それは、以下を含む、受信機／デコーダ内で対話型アプリケーションを受信、実行するために必要なすべてから成り立っている。
・言語インタプリタ。様々なインタプリタは、読み取られるアプリケーションの種類に準拠するためにインストールすることができる。これらは、Ｊａｖａ、ＨＴＭＬ、ＭＨＥＧ−５及びその他を含む。
・サービス情報（ＳＩ）エンジン。ＳＩエンジンは、共通のデジタルビデオ一斉送信（ＤＶＢ）またはプログラムシステム情報プロトコル（ＰＳＩＰ）テーブルをロードし、モニタし、それらをキャッシュの中に入れる。それは、それらの中に含まれるデータを必要とするアプリケーションによってこれらのテーブルへのアクセスを可能にする。
・スケジューラ。このモジュールは、各スレッドが独自のイベント待ち行列を有する、横取りマルチスレッド化スケジューリングを可能にする。
・メモリマネージャ。このモジュールはメモリへのアクセスを管理する。また、それは、必要時にメモリ内のデータを自アクティブに圧縮し、自動不要部分整理を行う。
・イベントマネージャ。このモジュールは、優先順位に従ってイベントをトリガできるようにする。それは、タイマ及びイベントグラブを管理し、アプリケーションが互いにイベントを送信できるようにする。
・動的リンカ。このモジュールは、ネイティブＪａｖａ関数から生じるアドレスの分解（ｒｅｓｏｌｕｔｉｏｎ）を可能にし、ＲＡＭにダウンロードされるＪａｖａクラスからネイティブメソッドをロードし、ダウンロードされたネイティブコードからＲＯＭに向かう呼び出しを分解する（ｒｅｓｏｌｖｅｓ）。
・ダウンローダ。このモジュールは、リモートＤＳＭＣＣ回転ラックから、またはＮＦＳプロトコルを通る自動データロードを使用し、ダウンロードされたファイルは常駐ファイルと同様にアクセスされる。メモリの整頓、圧縮、及び認証も行われる。
・クラスマネージャ。このモジュールはクラスをロードし、問題を参照するクラスを解決する。
・ファイルシステム。このモジュールはコンパクトであり、複数のＲＯＭ、フラッシュ、ＲＡＭ及びＤＳＭＣＣボリュームを含む階層ファイルシステムを管理するために最適化される。フラッシュ完全性は、あらゆる事件に対して保証される。
・機密保護マネージャ。このモジュールは、アプリケーションを認証し、セットトップボックスの敏感なメモリ及びその他のゾーンに対するアプリケーションのアクセスを制御する。
・グラフィックシステム。このシステムは、オブジェクト指向型であり、最適化されている。それは、複数言語サポートによるベクタフォントエンジンだけではなく、グラフィックウィンドウ及びオブジェクト管理も含む。
【０２５８】
さらに、クライアントリソースが効率的に管理されるように、ＤＡＶＩＣリソース通知モデルがサポートされる。
【０２５９】
デバイスインタフェース層２５６は、デバイスマネージャ及びデバイスを含む。デバイスは、外部イベント及び物理インタフェースの管理に必要な論理リソースから成り立つソフトウェアモジュールである。デバイス層は、ドライバとアプリケーション間の通信チャネルを管理し、機能強化されたエラー例外チェックを提供する。管理されるデバイスのいくつかの例は以下のとおりである。つまり、カード読取装置、モデム、ネットワーク、ＰＣＭＣＩＡ（パーソナルコンピュータメモリカード国際協会）、ＬＥＤディスプレイ等である。ＡＰＩ層が上からデバイスを制御するので、プログラマはこの層と直接対処する必要はない。
【０２６０】
システムソフトウェア／ハードウェア層２５８は、受信機／デコーダの製造メーカによって提供される。システムのモジュラリティのため、及び（イベントスケジューリング及びメモリ管理などの）ＯＳによって供給されるサービスが仮想機械の一部であるため、さらに高い層がある特定の実行時オペレーティングシステム（ＲＴＯＳ）に、またはある特定のプロセッサに結び付けられる。
【０２６１】
ウィジェット集合
好ましい実施形態では、ウィジェット集合は、グラフィックユーザインタフェース（ＧＵＩ）で実行するためのアプリケーションで使用するために提供される。このようなウィジェット集合の１つの特定のアプリケーションは、デジタルテレビ用の受信機／デコーダのＧＵＩディスプレイでウィジェットを提供するためである。それぞれのウィジェットは、ウィジェットごとに対応するウィジェットクラスがあるように、オブジェクト指向型モジュールとして実現される。このようにして、任意のウィジェットは、他のウィジェットのクラスを継承するまたは集約することによってさらに簡略な構成要素ウィジェットから構築されてよい。
【０２６２】
図３は、ウィジェット集合内のウィジェットの階層の簡略化された図である。この実施対応では、ウィジェット集合は、とりわけ、末尾孤立行、ダイアログボックスフレーム、スライダ制御機構、プッシュボタン、チェックボックス、テキストフィールド、及びテキスト編集ボックスを含む原始ウィジェットクラス４１０の集合を含む。次のレベルの複雑さでは、複数の原始ウィジェットクラスを結合する、あるいは１つの原始ウィジェットの動作を修正するクラス４２０がある。例えば、リストボックスなどのウィジェットは、テキスト編集ボックスクラスから編集可能なリストアイテムを作成してよく、ユーザがスライド制御装置クラスから派生したスクロールバーを使用してリストをスクロールできるようにする。さらに高いレベルの複雑さでは、ウィジェット集合は、そのすべてがウィジェット集合のその他のクラスで定義される、プッシュボタン、スクロール可能リスト、テキストフィールド及びテキスト編集ボックスなどのファイル選択ダイアログボックスなどの集約ウィジェット４３０を含む。
【０２６３】
ウィジェットクラスの各々は、ウィジェットの動作を制御するために、メソッド及びイベントハンドラを実現する。ウィジェットクラスは、ウィジェットのいくつかの部分を描画するためのメソッドも含んでよい。しかしながら、ウィジェットに、ある特定の外見つまり「外観」を与えるために、ウィジェットクラスは、ウィジェットクラスが関連付けられる外観オブジェクトクラスの描画メソッドを呼び出す。これを、以下の追加詳細で説明する。
【０２６４】
外観クラスパブリックメソッド及びＡＰＩ
外観オブジェクトクラスとウィジェットクラスが対話できるためには、外観オブジェクトクラスが、ウィジェットクラスによる使用のために入手できることが保証されるパブリックメソッドの一貫した集合を有することが必要である。特に、外観オブジェクトクラスは、ウィジェットクラスがＧＵＩディスプレイでそれ自体を描画するために呼び出すことができるメソッドを含む標準ＡＰＩを提供しなければならない。
【０２６５】
ウィジェットによって使用されるＡＰＩは、すべての外観が派生するベースクラスで定義される。ＡＰＩは以下の要素を備える。
１．一般ディスプレイメソッド
２．特定ディスプレイメソッド
３．インスタンスの作成及び破壊の制御
４．境界線の制御
５．修正の制御
一般ディスプレイメソッドとはすべてのウィジェットが使用できるメソッドであるが、特定ディスプレイメソッドとはある種のウィジェットに特定的である。
【０２６６】
外観は、階層アーキテクチャを使用して構築される。新しい外観クラスは、それが派生するクラスの属性、メソッド及びデフォルト値を継承してから、新しい属性、メソッド及びデフォルト値を追加するか、あるいは継承されたそれらのもののいくつかまたはすべてを無効にすることによって作成される。
【０２６７】
外観クラスは、パブリックメソッドに対するポインタを含むテーブルとして編成される。したがって、別の外観クラスから派生する外観クラスは、それが別のメソッドを指すように、関連ポインタを変更することによってメソッドを再定義してよい。典型的には、外観クラスは、使用可能なパブリックメソッドのいくつかを実現するにすぎない。
【０２６８】
あるインプリメンテーションでは、呼び出しを戻す以外何も行わないダミーメソッドとして知られるパブリックメソッドが提供される。外観クラスによって実現されないメソッドがウィジェットによって呼び出される場合、ダミーメソッドが呼び出される。これは、メソッドが事実上実現されないときにも、メソッド呼び出しがエラーなく機能することを保証するために実行される。ダミーメソッドを呼び出すことの不利な点とは、何もしないメソッドを呼び出す上で時間が浪費されることがあるという点である。
【０２６９】
別のインプリメンテーションでは、外観クラスにはバリデーションマスクが与えられる。バリデーションマスクは、外観クラスによってどのメソッドが呼び出すことができるのかを定義し、その結果、実現されないメソッドは呼び出されない。ウィジェットは、ウィジェットの描画を最適化するために、外観クラスのバリデーションマスクにアクセスすることができる。この場合、ウィジェットは、実現されないメソッドを認識するため、ウィジェットはこのようなメソッドに対する呼び出しを生成するのを回避するだろう。このようにして、ダミーメソッドを呼び出す際に時間が無駄にされるのを妨げることが可能である。
【０２７０】
外観クラスは、２つ以上のそれ以外のクラスから派生してよい（マルチ継承）。これは、２つ以上のその他の外観の共用体である外観クラスを作成できるようにする。前述されたように、外観クラスが作成されると、それは、それが派生する外観クラスの属性、メソッド及びデフォルト値を採用する。マルチ継承を実現するために、外観は、それが属性、メソッド及びデフォルト値を引き出す追加クラスに対する１つまたは複数のポインタも含む。それから、外観は、それらをそれ自体でコピーまたは作成する必要なく、それらの属性、メソッド及びデフォルト値にアクセスできる。
【０２７１】
別の実施形態では、外観クラスが作成されるときに、それは、それが派生される外観クラスのすべての属性、メソッド及びデフォルト値を採用する。
【０２７２】
マルチ継承の原則は、標準外ウィジェットが設計される状況でも有効であり、それは外観が標準外メソッドを実現することを必要とする可能性がある。外観内のポインタは、ウィジェットを表示するために必要とされる標準外メソッドを含む第２外観クラスを指すこともできる。
【０２７３】
外観が派生する多様な外観クラスは互いに矛盾しないことを保証することが重要である。これは、追加外観クラスが、外観が派生する主要な外観クラス内にないメソッドを含むだけであることを保証することによって、あるいは多様なクラスに優先順位を指定することによって達成できる。
【０２７４】
外観オブジェクトクラスのパブリックメソッドの例を、以下に説明する。
【０２７５】
【表２】
2014089751.tif 000004
【０２７６】
【表３】
2014089751.tif 000005
【０２７７】
【表４】
2014089751.tif 000006
【０２７８】
【表５】
2014089751.tif 000007
【０２７９】
ウィジェットの作成及び表示
アプリケーションがＧＵＩのディスプレイにウィジェットを表示させる必要があるとき、それが実行しなければならない最初のタスクは、ウィジェットクラスのインスタンスを構築することである。ウィジェットインスタンスの作成中、外観クラスインスタンスが、ウィジェットクラスインスタンスと関連付けられるようになる。特定の外観は、以下のように選ばれる。
１．外観クラスインスタンスがアプリケーションによって構成子に渡される場合には、それを使用する。
２．それ以外の場合、１つ存在する場合には、作成されているウィジェットのクラスに指定されるデフォルトの外観を使用する。
３．それ以外の場合、１つ存在する場合には、ウィジェットコンテキストに指定されるデフォルトの外観を使用する。
４．それ以外の場合、ウィジェット集合のデフォルトの外観を使用する。
【０２８０】
いったんウィジェットクラスが具体化されると、アプリケーションは、それを表示するために、そのパブリックメソッドの適切なものを呼び出すことができる。
【０２８１】
ウィジェットクラスは、好ましくは、外観クラスインスタンスへのポインタで呼び出すことができるパブリックメソッドも提供し、その外観クラスインスタンスはウィジェットクラスインスタンスと関連付けられるようになる。これにより、ウィジェットの外観は新規に関連付けられる外観クラスインスタナスに従って変化する。「関連」とは、実際には、ウィジェットクラスインスタンス内のフィールドの値の設定以上の何者ではないことが理解されるべきである。ウィジェットを別の外観クラスに関連付けることは、実施形態の最も簡略なものにおいて、フィールドに割り当てを行うことだけによって実行できる（ただし、メモリ管理及びメソッドＭｈｗＷｇｔＸｘｘＳｅｔＬｏｏｋに関する下記のコメントを参照すること）。さらに、多くのウィジェットクラスインスタンスは、１つの外観クラスインスタンスと関連付けられてよい。これは、図５に図式で示される。
【０２８２】
ウィジェットクラスメソッドがＧＵＩディスプレイでウィジェットを描画するために呼び出されるとき、それは以下の順序でウィジェットの画像を構築する。
１．ウィジェットの背景（例えば、背景色または画像）
２．背景オーバレイ（例えば、ロゴ）
３．ウィジェットの前景
４．前景オーバレイ（例えば、ロゴ）
５．ウィジェット境界線
６．強調表示
７．入力フォーカス
指定ウィジェットについて、ある部分が不在であってよい。ウィジェットの一部の存在または不在は、以下の基準に依存する。
１．ハード符号化。部分のいくつかはあるクラスのウィジェットについて定義されない。
２．オプションの部分。例えば、フォーカス、レリーフ、及び強調表示が、ウィジェットのパブリック属性によって随意に抑制されてよい。
３．外観の画定。外観は部分の１つまたは複数を省略できる。
【０２８３】
典型的な例では、以下のステップが実行される。
【０２８４】
第１に、ウィジェットの背景は、例えば、背景色、背景パターンまたは画像を塗ることによって、ウィジェットクラスメソッド自体によって描画される。それから、背景オーバレイは、ディスプレイ上のウィジェットの高さ、幅、及び位置の適切な引数を指定する、関連付けられる外観インスタンスＭｈｗＷｇｔＬｏｏｋＤｒａｗＢａｃｋｇｒｏｕｎｄのパブリックメソッドを呼び出すことによって描画される。背景の外観は、このようにして、例えばロゴをオーバレイすることによって外観により修正される。
【０２８５】
それから、ウィジェットクラスメソッドは、ウィジェットの前景を確立しなければならない。すなわち、それは、ウィジェットが使用されるときに、実際にユーザまたは表示情報によって操作される視覚オブジェクトを作成する。例えば、ウィジェットはチェックボックスを実現する可能性があり、その場合それは外観クラスメソッドＭｈｗＷｇｔＬｏｏｋＤｒａｗＣｈｅｃｋＳｙｍｂｏｌを呼び出す。それから、外観は、例えばロゴをオーバレイすることによって前景を修正してよい。
【０２８６】
ウィジェットの境界領域は、後述されるように描画される。
【０２８７】
ウィジェットクラスが、ウィジェットの中のオブジェクトの１つが入力フォーカスを有すると判断すると、それはこれを表示されたウィジェットの中に示すために外観クラスメソッドＭｈｗＷｇｔＬｏｏｋＤｒａｗＦｏｃｕｓを呼び出す。同様に、ウィジェットの部分が強調表示されなければならない場合、ウィジェットクラスは外観クラスメソッドＭｈｗＷｇｔＬｏｏｋＤｒａｗＨｉｇｈｌｉｇｈｔを呼び出す。
【０２８８】
ウィジェット境界管理
外観がＧＵＩディスプレイ上でウィジェットの外見を制御する方法の１つの特定的な例は、境界の管理にある。ＧＵＩディスプレイ上でその最も一般的な形式の境界のあるウィジェットの外見は、図４に示される。ウィジェット５００は、ＧＵＩのディスプレイ内の矩形領域を占有する。ウィジェットによって占められる領域は、２つの領域を含む。つまり、境界領域によって囲まれている内側作動領域５１０である。
【０２８９】
境界領域は、典型的には（それがウィジェットを移動する及び／またはサイズ変更するためにユーザによって使用されてよい場合もあるが）ウィジェットの関数に寄与しない。従って、ユーザの希望に従って境界領域の外見の変動についてかなりの適用範囲がある。例えば、色、幅、背景パターンはすべてユーザに訴えるために、または一貫した外見を提供するために選択することができる。したがって、境界線を描画する責任は外観クラスに与えられる。
【０２９０】
外観は、境界線の幅を指定するために４つの寸法を維持する。これらは、作動領域５１０の左、右、上及び下からウィジェットの端縁までの距離を指定する。これらの寸法は、図４のそれぞれＬ、Ｒ、Ｔ及びＢに示されている。これらの寸法の値は、デフォルト外観に指定される。アプリケーションは、値が、標準外幅の境界線を持つウィジェットを作成する外観を作成するために無効にされるデフォルト外観クラスから派生するクラスを定義してよい。アプリケーション（例えば、外観マネージャ）は、外観メソッドＭｈｗＷｇｔＬｏｏｋＡｔｔｓＳｅｔＢｏｒｄｅｒｗｉｄｔｈＢｏｔｔｏｍ、ＭｈｗＷｇｔＬｏｏｋＡｔｔｓＳｅｔＢｏｒｄｅｒＷｉｄｔｈＬｅｆｔ、ＭｈｗＷｇｔＬｏｏｋＡｔｔｓＳｅｔＢｏｒｄｅｒｗｉｄｔｈＲｉｇｈｔまたはＭｈｗＷｇｔＬｏｏｋＡｔｔａＳｅｔｅＢｏｒｄｅｒＷｉｄｔｈＴｏｐを呼び出すことによって実行時に値を変更することもできる。
【０２９１】
外観クラスの中では、ウィジェットクラスによって外観クラスに渡される値に従って、境界線の詳細なレイアウトを制御するコードがある。
【０２９２】
ウィジェット色管理
外観は色の定義も含み、その結果、ある特定の外観インスタンスに関連付けられる任意のウィジェットインスタンスが、その外観インスタンスに定義される色を使用する。ある実施形態では、外観は、以下の色を定義する。
・黒色
・濃い灰色
・中間の灰色
・明るい灰色
・非常に明るい灰色
・白色
・透明
・強調表示色
外観の中での色の定義は、ウィジェットを描画するときに使用される。例えば、ウィジェットを表示するときに、黒い線が描画されなければならない場合、「黒」と定義される色が使用されるだろう。例えば、外観が赤の色相を有さなければならない場合には、「黒色」が濃い赤に定義されてよく、「白色」が明るい桃色に定義されてよく、赤の多様な陰影が間に定められる。この例では、通常黒い線を描画するだろう描画動作は、代わりに濃い赤の線等を描画するだろう。
【０２９３】
さらに、外観は、ＧＵＩのディスプレイ上で任意の特定の色を表示するときに使用されなければならない実際の色の値を設定する色マップを定義する。
【０２９４】
修正済みのウィジェットの作成
デフォルト外観メソッドＭｈｗｇｔＬｏｏｋＤｒａｗＣｈｅｃｋＳｙｍｂｏｌが、空であるか、あるいはその状態に応じて小さな照合の印を含むかのどちらかである矩形ボックスを描画し、これがＧＵＩ内の通常のチェックボックスの外観を定義すると仮定する。ここで、照合の印または×印のどちらかが表示される別のウィジェットが必要とされると仮定する。外見は、外観クラスによって完全に制御されるため、外観クラスだけが改変される必要がある。さらに、この動作を実現するための新しい外観クラスが、既存の外観クラスから派生し、ベース外観クラス内の同じ名前のメソッドを無効にするために、唯一のメソッドＭｈｗＷｇｔＬｏｏｋＤｒａｗＣｈｅｃｋＳｙｍｂｏｌを提供することがある。さらに、メソッドＭｈｗＷｇｔＬｏｏｋＤｒａｗＣｈｅｃｋＳｙｍｂｏｌが、引数ａＳｔａｔｅが真に設定された状態で呼び出されると、ベースクラスのメソッドＭｈｗＷｇｔＬｏｏｋＤｒａｗＣｈｅｃｋＳｙｍｂｏｌが照合の印を描画するために呼び出すことができる。新しいコードは、×印が描画されなければならないケースを取り扱うためだけに作成される必要がある。このようにして、新しいウィジェットは、最小のプログラミング努力で作成できる。
【０２９５】
この手順は、元のチェックボックスウィジェットの外見を改変しないことが理解されるべきである。このウィジェットは、改正されたことのないベース外観クラスを使用する。アプリケーション内の元のチェックボックスウィジェットの外見に対する変更を実施するために、ベース外観クラス内のメソッドＭｈｗＷｇｔＬｏｏｋＤｒａｗＣｈｅｃｋＳｙｍｂｏｌが改正されなければならない。それから、そのクラスから派生するすべてのチェックボックスウィジェットが、外観クラスがアプリケーションと連結される（ケースに応じて、コンパイル時、または実行時）次の機会に続いてその外観を変更するだろう。
【０２９６】
ウィジェットクラスは、原則的には、外観クラスとして、パブリックメソッド及びプロパティの適切な集合を有する任意のクラスでウィジェットを作成するために協力するだろう。しかしながら、すべての外観クラスを、可能な限り小さな数の共通したベースクラス、理想的には単に１つのベースクラスから引き出す際に優位点がある。オブジェクト指向型プログラミングに精通した人は、これがメモリ及びその他のリソースの外観クラスによる使用を最小限に抑えることを理解するだろう。派生したクラスは、それが、メモリ内のこのようなコードまたはデータの重複なしに、ベースクラスのメソッドコード及びベースクラスの静的データにアクセスすることができるように、そのベースクラスに対するポインタを有する。
【０２９７】
バージョン制御
いくつかのウィジェットインスタンスが非常に長い耐用期間を有することがある。例えば、ウィンドウマネージャのルートウィンドウ、ワークステーションディスプレイのタスクバーウィジェット等である。このようなケースでは、外観クラスが、ウィジェットの耐用期間中に更新される可能性があるという強い可能性がある。ウィジェットクラスは、これが起こるときに、それ自体を再描画するために引き起こされなければならない。
【０２９８】
これを達成するための１つの方法とは、それぞれの外観クラスに、パブリックプロパティとしてエクスポートされるか、パブリックメソッドを通してアクセス可能である更新カウンタを与えることである。ウィジェットクラスが具体化すると、ウィジェットクラスインスタンスは、関連付けられる外観の更新カウンタを照会し、ウィジェットクラスインスタンスにローカルなメモリに更新カウンタの値を記憶する。外観クラスのインスタンスがそれ以降更新される場合、ウィジェットクラスインスタンスは、そのローカルメモリに記憶される値を外観クラスインスタンス内の更新カウンタの値と比較することによってこの変化を検出することができる。外観クラスインスタンスが更新されると、ウィジェットは、外観クラスのメソッドを使用してそれ自体を再描画することができる。
【０２９９】
外観クラスインスタンスの構築及び破壊
一般的には、各ウィジェットクラスのインスタンスより少ない各外観クラスのインスタンスがある。いくつかのケースでは、アプリケーション内のすべてのウィジェットクラスインスタンスによって参照される外観ベースクラスのただ１つのインスタンスがあってよい。また、アプリケーションのウィジェットクラスインスタンスのいくつかによって参照される派生した外観クラスのインスタンスもあってよい。ただし、ウィジェットクラスは、ウィジェットクラスが具体化されている時点で、つねに存在する外観クラスインスタンスがあるだろうと仮定することはできない。ウィジェットインスタンスは、ある特定の外観クラスとの関連付けを必要とする最初のものである可能性がある。
【０３００】
したがって、各ウィジェットクラスの具体化の間に、ウィジェットクラス構築子が、関連付けられる外観クラス構成子ＭｈｗＷｇｔＬｏｏｋＮｅｗを呼び出すことが提案される。外観クラスのインスタンスが存在しない場合には、新しいインスタンスが作成される。それから、１という値が外観クラスインスタンスのローカルメモリに保持される基準カウンタ内に記憶される。外観クラスのインスタンスがすでに存在する場合には、外観クラス構築子がそれに対するポインタを戻し、基準カウンタを増分する。
【０３０１】
各ウィジェットクラスインスタンスの破壊の間、ウィジェットクラスの消去子が、関連付けられる外観クラスインスタンスの消去子ＭｈｗＷｇｔＬｏｏｋＤｅｌｅｔｅを呼び出す。消去子ＭｈｗＷｇｔＬｏｏｋＤｅｌｅｔｅは基準カウンタを減分する。カウンタがゼロより大きなままとなる場合、消去子は単に戻るだけである。ただし、消去子がゼロに達する場合には、（１つの経験する破壊以外の）ウィジェットクラスインスタンスが外観クラスインスタンスと関連付けられ、そのケースでは、外観クラス消去子は、メモリから外観クラスインスタンスを削除するために先に進む。
【０３０２】
ウィジェットクラスメソッドＭｈｗＷｇＸｘｘＳｅｔＬｏｏｋは、ある特定のウィジェットクラスインスタンスが関連付けられる外観を変更するために呼び出すことができる。このメソッドの中では、発信外観クラスインスタンスの消去子に対して最初に呼び出しが行われてから、クラスインスタンスに対するポインタを入手するために新しい外観クラスの基準関数に対して呼び出しがなされる。これが、外観クラスの基準カウンタが適切に更新されることを保証する。
【０３０３】
また、インスタンスがすでに存在する場合にも、作成される外観クラスの新規インスタンスに対する規定がなければならない。これにより、アプリケーションは、任意の指定される外観クラスの複数のインスタンスを有し、様々なインスタンスの中で異なる属性を設定することができるようにする。例えば、一方がそのデフォルトに従って残っているすべての属性を有し、他方が、その属性（境界幅、色等）の１つまたは複数に割り当てられる様々な値を有する以外のすべての点で同一の同じ外観クラスの２つのインスタンスがあってよい。
【０３０４】
外観マネージャ
理解されるように、外観クラス及びインスタンスのシステムは、アプリケーションの全体的な外観に対して非常に詳細な制御を可能にする。例えば、任意の外観クラスのただ１つの属性が、アプリケーションの外観にマイナーな変更を実施するために変更できる。その結果、ユーザがこれらの属性を必要に応じて改変できるようにするために、外観マネージャアプリケーションが提供されてよい。このようなアプリケーションは、典型的には、ユーザが、ウィジェットの外観に対する外観の属性の変更の影響を即座に確かめることができるために、発明を実現するウィジェットを含むＧＵＩディスプレイを含む。
【０３０５】
ウェブブラウザ
インターネットナビゲータインタフェースは、添付図面に関してここに説明する。
【０３０６】
図６ａは、インターネットブラウザのメイン画面ナビゲータディスプレイのスクリーンショットを示す。メイン画面は、連結リストとしての多様なボタンを含むメインメニューを含む垂直チェーン１１００を示す。ボタンは、チェーンの連結要素によって連結される。図６ａのチェーン１１００に示されるボタンは、ＲＥＬＯＡＤ／ＳＴＯＰボタン１１１０、ＰＲＥＶＩＯＵＳボタン１１２０、ＮＥＸＴボタン１１３０、ＨＩＳＴＯＲＹボタン１１４０、ＢＯＯＫＭＡＲＫボタン１１５０、ＳＥＴＴＩＮＧＳボタン１１６０及びＱＵＩＴボタン１１７０を含む。
【０３０７】
メインメニューチェーン１１００は、画面１１０１上で表示されるハイパーテキストマーク付け言語（ＨＴＭＬ）文書で重ね合わされるように配置される。図６ａでは、ＨＴＭＬ文書は表示されず、画面１１０１がメインメニューチェーン１１００から離れて空白である。
【０３０８】
ウェブブラウザは、ユーザによって設定できる複数の優先順位を含む。ブラウザは、複数のユーザプロファイルを設定するための機構を含む。
【０３０９】
ユーザは、画面１１０１上のオブジェクトの間でナビゲートし、オブジェクトを強調表示し、オブジェクトを選択することができる制御装置を有する。この例では、使用される制御装置はテレビリモートコントローラ１１８０である。番号キー１１８１が、データを入力するために使用される。カーソルキーパッド１１８２は、画面の回りでナビゲートするために使用される。カーソルキーパッド１１８２は、ＵＰキー１１８３、ＤＯＷＮキー１１８４、ＬＥＦＴキー１１８５及びＲＩＧＨＴキー１１８７を含む。カーソルキーパッド１１８２は、画面上でオブジェクトを選択するために使用されるＳＥＬＥＣＴキー１１８６も含む。
【０３１０】
ＵＰキー１１８３及びＤＯＷＮキー１１８４は、フォーカスを移動するために、この例ではチェーン１１００を上下に強調表示し、ボタン１１１０、１１２０、１１３０、１１４０、１１５０、１１６０及び１１７０を選択的に強調表示するために使用される。ボタンが強調表示されると、それは選択キー１１８６を使用して選択できる。
【０３１１】
ＨＴＭＬページが表示されると、リモートコントローラの任意のボタンがチェーン１１００（ツールバー）を呼び出す。チェーン１１００は、ユーザによってオンとオフにすることができる。１つの設定値オプションでは、新規ＨＴＭＬページが表示されるときに、チェーン１１００が自アクティブに隠され、ユーザは、自分が別のＨＴＭＬページに移動することを希望するときにチェーン１１００を呼び出す。
【０３１２】
図７は、ＨＴＭＬ文書を開放している図６ａの画面を示す。開放文書についての情報は、ＲＥＬＯＡＤ／ＳＴＯＰボタン１１１０に対するチェーンで連結されるテキストボックス１１１２に指定される。ボタンの間のチェーン連結１１１４は、視覚的にユーザに、ユーザが連結の方向でボタンの間の移動できることを示すことが分かるだろう。
【０３１３】
図６ａは、強調表示されたＲＥＬＯＡＤ／ＳＴＯＰボタンを示す（強調表示されるＲＥＬＯＡＤ／ＳＴＯＰアイコンは、それが強調表示されていない図７でのように白い背景で暗いよりむしろ、暗い背景で白色である）。ＨＴＭＬ文書は、ＲＥＬＯＡＤ／ＳＴＯＰボタンが強調表示されているときに、選択キー１１８６を押すことによって再ロードできる。
【０３１４】
ユーザは、ＤＯＷＮキー１１８４を使用してチェーン１１００を下方へ強調表示を移動する。図７では、ＰＲＥＶＩＯＵＳボタン１１２０がいま強調表示されている。図８は、どのようにして、強調表示がＰＲＥＶＩＯＵＳボタン１１２０上にあるときに、テキストボックス１１２２を備える「ツールチップ」が画面に表示されるのかを示す。この例では、ツールチップは、関連するアイコンが強調表示されるとすぐに、ツールチップが表示される。優先順位は、ボタンが強調表示されるときに遅延後にツールチップが表示されるように設定できるだろう。テキストボックス１１２２は、ＰＲＥＶＩＯＵＳボタン１１２０の機能を示すためにワード「前」を含む。ＰＲＥＶＩＯＵＳボタンを起動することによって、ＳＥＬＥＣＴキー１１８６を押すことによって、ブラウザは表示された前のページに移動する。
【０３１５】
図９では、強調表示はＮＥＸＴボタン１１３０へ下げられ、短時間の後に、ワード「次」を含むテキストボックス１１３２を備えるツールチップが、ユーザを補助するために表示される。
【０３１６】
図１０では、ＨＩＳＴＯＲＹボタン１１４０が強調表示され、その関連付けられるツールチップ１１４２がワード「履歴」とともに表示される。ＨＩＳＴＯＲＹボタン１１４０は、複数の機能を有するため、制御キーパッドでＳＥＬＥＣＴキー１１８６を押すことによってボタンを起動すると、サブチェーン１１４４が表示され、履歴機能に関する追加のオプションを示す。サブチェーン１１４４は、図１１に示される。サブチェーン１１４４は、ＶＩＥＷボタン１１４６及びＡＤＤボタン１１４８を含む追加ボタンを含む。ユーザは、ＲＩＧＨＴキーとＬＥＦＴキー１１８７、１１８５を使用して、サブチェーン１１４４に沿って移動する。図１１の画面表示では、ＶＩＥＷボタンが強調表示され、ツールチップ１１４７が表示され、ユーザに、強調表示されているボタンがＶＩＥＷであることを告げる。メインチェーン１１００に取り付けられあるツールチップが、チェーン１１００の右側に表示されたことが注記されるだろう。サブチェーンのツールチップは、サブチェーンの上に表示される。
【０３１７】
ツールチップ用のボックスのサイズは、表示される１つまたは複数のワードの長さに適合される。様々な言語優先順位が設定できる場合、ツールチップのボックスのサイズは、好ましくは、選択された言語のワードの長さに適合される。
【０３１８】
図１２は、ＶＩＥＷボタンが選択されるときに得られるディスプレイを示す。ＶＩＥＷＨＩＳＴＯＲＹウィンドウ１１４１が、見出し１１４３（ここでは、見出しに仏語オプションが選択されている）を有し、ユーザによって見られた前のページの詳細１１４５を示す画面上に表示される。ユーザはテキストをスクロールアップ及びダウンし、ＳＥＬＥＣＴキー１１８６を使用して詳細１１４５の１つを強調表示してよい。ＬＥＦＴキー及びＲＩＧＨＴキーは、ＯＫキーまたはＣＡＮＣＥＬキー１１４９、１１４９’を強行表示するために使用される。
【０３１９】
図１３は、強調表示されているＡＤＤボタン１１４８及びその関連付けられるツールチップを示す。ＡＤＤボタン１１４８は、現在表示されているページを履歴リスト１１４５に追加するために使用される。
【０３２０】
図１４は、強調表示されているＢＯＯＫＭＡＲＫボタン１１５０及びその関連付けられるツールチップ１１５１を示す。図１５では、ＢＯＯＫＭＡＲＫボタン１１５０が選択され、ツールチップ１１５１、ＶＩＥＷボタン、ＡＤＤボタン、ＤＥＬＥＴＥボタン及びＥＤＩＴボタン、１１５３、１１５４、１１５５、１１５６を含む、ブックマークサブチェーン１１５２が示される。図１５では、ＶＩＥＷボタン１１５３が強調表示され、そのツールチップが示される。ＶＩＥＷボタン１１５３が選択され、ＶＩＥＷウィンドウ１１５７が図示される（図１６を参照すること）。（明快さのために、ビューウィンドウ１１５７が画面上にあるときに、ブックマークサブチェーン１１５２が示されないことが分かるだろう）。ＶＩＥＷウィンドウ１１５７は、見出し及びブックマークを一覧表示するスクロール可能テキストボックスを含む。ＶＩＥＷ  ＨＩＳＴＯＲＹウィンドウに関しては、ウィンドウは、ＯＫキーとＣＡＮＣＥＬキーも含む。カーソルキーパッド１１８２は、所望される場合に、ウィンドウの回りでナビゲートするために、及びブックマークを選択するために使用される。
【０３２１】
図１７では、ＡＤＤボタン１１５４が強調表示され、そのツールチップが表示される。ＡＤＤボタンが選択されると、ＡＤＤウィンドウが表示される（図１８を参照すること）。ＡＤＤウィンドウ１１５８は、ブックマークＵＲＬ及びそのタイトルを入力するためにテキスト入力用の２つのボックスを含む。データは、番号キー１１８１を使用して（例えば、ここに説明される画面上のキーボードを使用して）ウィンドウに入力される。ウィンドウは、前述されたようにＯＫキーとＣＡＮＣＥＬキーも含む。ユーザは、カーソル１１８２を使用して、テキスト入力ボックスとＯＫキーとＣＡＮＣＥＬキーの間でナビゲートする。
【０３２２】
図１９は、強調表示されているＤＥＬＥＴＥボタン１１５５及びそのツールチップを示す。ＤＥＬＥＴＥボタン１１５５を選択することによって、ブックマークが削除されてよい。
【０３２３】
図２０は、強調表示されているＥＤＩＴボタン１１５６及びそのツールチップを示す。ＥＤＩＴボタン１１５６を選択することによって、ブックマークが編集されてよい。
【０３２４】
図２１は、ブックマークツールチップ１１５１が図示されないブックマークサブチェーン１１５２の代替形式を示す。これは、特にサブチェーンが長い場合に、画面上の空間を節約できる。ツールチップの外見は、ユーザによって選択できるオプションである。
【０３２５】
図２２は、強調表示されているＳＥＴＴＩＮＧＳボタン１１６０及びそのツールチップ１１６１を示す。ＳＥＴＴＩＮＧＳが選択されると、認証ウィンドウ１１６５画表示され（図２２を参照すること）、ユーザに自身を特定し、設定値を改変する前にユーザパスワードを示すようにプロンプトが出される。認証ウィンドウ１１６５は、番号キー１１８１及びＯＫボタンとＣＡＮＣＥＬボタンを使用するユーザ名及びパスワードの入力のための２つのテキスト入力ボックスを含む。いったん正しいユーザ名及びパスワードが認証ウィンドウ１１６５に入力され、ＯＫボタンが選択されると、設定値サブチェーン１１６２が表示される。図２４を参照すること。
【０３２６】
設定値サブチェーン１１６２は、ＭＯＤＥＭボタン１１６３及びＢＲＯＷＳＥＲボタン１１６４を含む。図２４は、強調表示されているＭＯＤＥＭボタン及びその関連付けられるツールチップを示す。ＭＯＤＥＭボタン１１６３を選択することによって、モデムの設定値は変更されてよい。図２５は、強調表示されているＢＲＯＷＳＥＲボタン１１６４及びその関連付けられるツールチップを示す。ＢＲＯＷＳＥＲボタン１１６４が選択されると、ブラウザウィンドウ１１６６が表示される。図２６を参照すること。再び、ユーザはカーソルキー１１８２を使用してウィンドウ内のオブジェクトの回りでナビゲートする。ブラウザウィンドウ内のオブジェクトは、ＣＯＬＯＵＲドロップダウンリスト１１６７を含む。リストヘッドを強調表示し、カーソルキー１１８２を使用してそれを選択することによって、リストのアイテムが表示され、ユーザはリストを上下に移動し、カーソルを使用して新しいブラウザカラーを選択することができる。同様に、ブラウザのテキスト言語は、ドロップダウンリスト１１６８を使用して変更できる。ツールチップ選択１１６９に強調表示を移動し、選択ボタン１１８６を押すことによって、ツールチップはオンとオフにすることができる。ウィンドウは、前述されるように、ＯＫボタンとＣＡＮＣＥＬボタンを含む。
【０３２７】
図２７は、強調表示されているＱＵＩＴボタン１１７０及びその関連付けられるツールチップ１１７１を示す。ＱＵＩＴボタン１１７０が選択される場合、終了サブチェーン１１７２が表示される（図２８）。図２８では、ＣＯＮＦＩＲＭボタン１１７３が強調表示され、そのツールチップが表示される。ユーザがウェブブラウザを終了することを希望する場合、ユーザはＣＯＮＦＩＲＭボタン１１７３を選択する。ユーザが終了選択を取り消すことを希望する場合は、ユーザは、そのツールチップとともに図２９で強調表示されて図示されているＣＡＮＣＥＬボタン１１７４を選択する。
【０３２８】
メインメニューチェーン１１００の代替設計が使用され、それにより個々のボタンの形状及びテクスチャは、好ましくはチェーンの全体的な形状を変更しなくても変更することができる。色も変更されてよい。これらの変更は、設定値メニューのオプションとして使用することができ、チェーンの形状及びテクスチャはブラウザにコヒーレントな設計（外板（ｓｋｉｎ））を与えるために全体として変更される。
【０３２９】
例えば、ボタンは、正方形、円形、菱形、またはその他の形状を有することがあり、テクスチャは、好ましくは、三次元の外見を示すように設計される。ボタン間の連結の外見は、ボタンの外見に一致する、あるいは代わりにそれを補完するように設計されてよい。連結の外観は、構造上の結束の外見を示すため、ボタンが有意義に連結されているというユーザの認知を高めるためにも選ばれてよい。
【０３３０】
図６〜図３０に図示されるチェーンの弧状の形状は、展開者によって選ばれ、好ましくはユーザによって改変可能ではない。まっすぐなチェーンまたは半円形のチェーンなどの、ボタンチェーン及びサブチェーンのそれ以外の構成が考えられる。その他の実施形態では、ボタンの順序及びボタンチェーン及びサブチェーンの構成は、ユーザによって修正されてよい。
【０３３１】
受信機／デコーダは、インターネットナビゲーション機能及びｅ−メール読み取り機能を提供する。
【０３３２】
次に、ナビゲータを模擬するためのグラフィックスタジオについて論じる。
【０３３３】
ナビゲータを模擬するためのグラフィックスタジオは、初歩的なグラフィックオブジェクトのアンサンブルまたは集合体である。各グラフィックオブジェクトは、ナビゲータの関数の１つのテレビ画面の絵による表記である。ナビゲータの各関数はグラフィックオブジェクトによって、またはグラフィックオブジェクトの画像のシーケンス（動画）またはグラフィックオブジェクトの集合体（例えば、画面の背景での画像または他のグラフィックオブジェクトを取り付けることのできるダイアログボックスの背景の画像）によって表すことができる。画像には、ＭＰＥＧ２とＰＩＸＭＡＰ−ＧＲＬという２つの内部フォーマットがある。
【０３３４】
ＰＮＧフォーマットは、「ナビゲーションシステム」機能性、つまりロード、接続、前の文書、次の文書、終了等を表す初歩的なグラフィックオブジェクトのために使用される。
【０３３５】
グラフィック平面で非矩形画像を記す（ｉｍｐｒｉｎｔ）ためには、可視（重要な）ゾーンを画定するクリッピングマスクを使用することが必要である。このマスクは、ビットマップという形で設計者によって提供されなければならない。このマスクは、性能制約のためにプログラムによって計算されない。
【０３３６】
クリッピングマスクを追加するための２つの段階が、最初に画像を表示すること、それからグラフィック平面では、クリッピングマスクを適用し、画像の有用な部分を可視にしながら、透明色で画像の同じ寸法及び位置の矩形を塗りつぶすことである。
【０３３７】
ナビゲータリソースまたはユーザインタフェースを表すグラフィックオブジェクトには、ＰＩＸＭＡＰ−ＧＲＬ画像フォーマットが使用される。つまり、垂直スクロールバー、テーブル、単一選択、複数選択等である。
【０３３８】
ＰＩＸＭＡＰ型オブジェクトは、可変寸法であり（それぞれのグラフィックオブジェクトまたはモデルが簡略な初歩的なオブジェクトに分解される）、着色可能である（色を変更する）。
【０３３９】
ＰＩＸＭＡＰ−ＧＲＬ画像フォーマットは、周知の方法を使用して、（ＢＭＰ、ＪＰＥＧ，ＧＩＦ、ＰＮＧ等の）その他のグラフィックフォーマットを変更することによって得られてよい。
【０３４０】
グラフィックオブジェクトのグラフィック要素への分解は、表示されているオブジェクトの種別に依存する行列（例えば、３×３、４×４または１×４）に従って実施される。
【０３４１】
パレットは２５６色を含む。このパレットは、種類ＰＩＸＭＡＰ及びＰＮＧのグラフィックオブジェクトに適用される。パレットでは、２つの部分がある。第１部分は、表示及びアプリケーションの設計を容易にするために予約される２６色から成る。第２部分は、アプリケーションが使用するために入手できる２３０色の非修正可能色から成る。
【０３４２】
画面の最大サイズは幅７２０ピクセル×高さ５７６ピクセルである。あらゆるローエンドのテレビセットでの画面の可視性を保証するために、サイズを、幅５９２ピクセル×高さ４８０に制限することが必要である。ハイエンドテレビセットを利用するために、ユーザは、画面のサイズを調整するためのオプションを有するだろう。インターネットナビゲータについて、サイトは、通常、それらのページを幅６００ピクセル及び高さ４００と設計した。
【０３４３】
グラフィックオブジェクトの総称属性を、ここに詳細に説明する。
【０３４４】
（それが表す内容に従って）グラフィックオブジェクトは正確なサイズを有する。正確なサイズは、設計者によって定められ、ディスプレイのための指針として役立つ。
【０３４５】
各グラフィックオブジェクトはサイズ変更可能である。グラフィックオブジェクトのタイプに従って、幅及び／または高さのサイズを変更することが可能である。ＰＩＸＭＡＰ−ＧＲＬグラフィックオブジェクトのサイズ変更の方法は、グラフィックオブジェクトの分解の推奨策に従う。可変サイズのグラフィックオブジェクトを描画する方法は、さらに後述される。
【０３４６】
画面上のグラフィックオブジェクトの画像は、多色形状で表される。背景画像は、可能である場合色の範囲を有する必要がある（流体、模擬粘土の効果）。
【０３４７】
グラフィックオブジェクトの画像は、その位置（座標）に従って、または画面上で続くまたは先行するオブジェクトの順序、つまり、オブジェクトの浮動位置という概念に従って描画される必要はない。それぞれのオブジェクトは、（背景画像を除き）定義によりそれ以外のオブジェクトから独立している。
【０３４８】
テキストは、選ばれる言語に従ってプログラムにより印刷される。これは、画像がテキストを含むべきではないことを暗示する。オブジェクトの設計は、設計者の手に残される。一般的な外観は、ある特定のテーマ（例えば、スタートレック、００７、シンプソンズ）に続くことができる。
【０３４９】
フォーカスの態様は、複数の手段によって表すことができる。つまり、グラフィックオブジェクトに対する矩形フォーカス、グラフィックオブジェクトの背景を（別の色で）強調表示するフォーカス、またはグラフィックオブジェクトの形状で色がつくフォーカスである。
【０３５０】
通常の状態（フォーカスのない、アクティブであるが押下されていない）が、グラフィックオブジェクトの基本的な状態である。
【０３５１】
グラフィックオブジェクトの抑制された状態は、灰色の（または輪郭がぼかされている）オブジェクトの形状、問題のグラフィックオブジェクト上での特有の禁止コードのオーバレイ、オブジェクトの背景の白黒への設定、オブジェクト非可視にすることなどの複数の手段によって表すことができる。
【０３５２】
グラフィックオブジェクトの押下された状態とは、その上でのクリックの後であるが、ボタンがリリースされる前のフォーカスを有するオブジェクトのグラフィック表現である。この表現は、オブジェクトの反転表示であるか、あるいはそれはフォーカスがあてられた状態と同じである場合がある。
【０３５３】
フリップフロップ（一列に並んだ）ディスプレイ効果に関しては、画像またはアイコンは２つの視覚態様を備える。一方はテキスト（例えば、逆、またはユーロ硬貨の「裏面」側）を表し、他方は記号（面、つまり「表面」側）を表す。この視覚的な効果は、タイマ上で実行中のプログラムで動画化され、タイマは第１アイコンのディスプレイで開始され、タイマが所定値に達するとすぐに、アイコンの変化が起こる。第２アイコンが表示されるか、あるいは漸次的な変化を示すアイコンのシーケンスが表示されるかのどちらかである。
【０３５４】
ＰＩＸＭＡＰ−ＧＲＬ型のグラフィックオブジェクトの分解を、図３１〜図３８を参照してここで説明する。これらの図は、行列分解メソッド（１２０１から１２０９、１２１１〜１２１９等）で使用される初歩的なグラフィックオブジェクト、及び初歩的なオブジェクトが適切な様式（１２１０、１２２０等）で結合されるときに形成される対応するグラフィックオブジェクトの例を示す。図は、約４という係数で拡大されている。
【０３５５】
グラフィックオブジェクトをサイズ変更（増加または減少）できるためには、各グラフィックオブジェクト（グラフィックアーチストによって作成される設計）が、パズルの部品のようなグラフィック要素の行列の形式に分割される。各要素は、４つの主要な角と中心（北、南、東、西、中心、北東、北西、南東、南西、中心の中心）に従って参照される。行列の幅及び高さは、オブジェクトの種類に依存する。
【０３５６】
あるグラフィック要素（パズルの部品）は一度だけ印刷される（角）。オブジェクトをさらに幅広く、またはさらに高くするためには、一定の要素が繰り返して（それぞれｎ×要素の幅または高さ）印刷される。
【０３５７】
行列分解（または並列表示）メソッドによって形成されるまたはその一部を形成するグラフィックオブジェクトがここで一覧表示される。これらのグラフィックオブジェクトは、ＨＴＭＬ文書領域に描画される。
・アクティブ状態（１２１０）にあるテキスト付き／なしのボタン。３×３行列（１２０１〜１２０９）、要素のサイズ：幅及び高さ４ピクセル、幅のサイズ変更するための要素：北−中心（1２０２）、中心（１２０５）、南−中心（１２０８）、高さをサイズ変更するための要素：西−中心（１２０４）、中心（１２０５）、東−中心（１２０６）。
・アクティブな押下状態（１２２０）にあるテキスト付き／なしのボタン。３×３行列（１２１１〜１２１９）、要素のサイズ：幅及び高さ４ピクセル、幅をサイズ変更するための要素：北−中心（１２１２）、中心（１２１５）、南−中心（１２１８）、高さをサイズ変更するための要素：西−中心（１２１４）、中心（１２１５）、東−中心（１２１６）。
・イナクティブで淡色表示状態（１２３０）のテキスト付き／なしのボタン：３×３行列（１２２１〜１２２９）、要素のサイズ：幅及び高さ４ピクセル、幅のサイズ変更をするための要素：北−中心（１２２２）、中心（１２２５）、南−中心（１２２８）、高さをサイズ変更するための要素：西−中心（１２２４）、中心（１２２５）、東中心（１２２６）。
・フォーカス付き／なし、及び横線を引いた／横線を引いていない状態（図３４）で表示される「チェックボックス」。１×１行列、要素のサイズ：幅及び高さ１６ピクセル、幅をサイズ変更するための要素：なし、高さをサイズ変更するための要素：なし。
・単一選択または複数選択（１２５２、１２５３、１２５４）のためのオプションのリスト：３×３行列（１２４１〜１２４９）、要素のサイズ：幅及び高さ４ピクセル、幅をサイズ変更するための要素：北−西（１２４２）、中心（１２４５）、南−中心（１２４８）、高さをサイズ変更するための要素：西−中心（１２４４）、中心（１２４５）、東−中心（１２４６）。アップインジケータ（１２５０）及び／またはダウンインジケータ（１２５１）を備えることがある。位置：ｘ，ｙ起点＋アップインジケータの幅及び高さ。
・アップインジケータ（１２５０）：１×１行列、要素のサイズ：幅１６ピクセル及び高さ８ピクセル。幅をサイズ変更するための要素：なし、高さをサイズ変更するための要素：なし、位置：幅に中心が置かれる起点ｙ。
・ダウンインジケータ（１２５１）：１×１行列、要素のサイズ：幅１６ピクセル及び高さ８ピクセル。幅をサイズ変更するための要素：なし、高さをサイズ変更するための要素：なし。位置：幅に中心が置かれる起点ｙ＋アップインジケータの高さ＋リストの高さ。
・（形式を描画するための）テーブル（１２６０）：３×３行列（１２７０）、要素のサイズ：幅及び高さ２ピクセル、幅をサイズ変更するための要素：北−中心、中心、南−中心、高さをサイズ変更するための要素：西−中心、中心、東−中心、セルを備えることがある。
・（形式で項目を描画するための）セル（１２８０）：３×３行列（１２９０）、要素のサイズ：幅及び高さ１２ピクセル、幅をサイズ変更するための要素：北−中心、中心、南−中心、高さをサイズ変更するための要素：西−中心、中心、東−中心、テキストまたは画像を備えることがある。位置：起点ｘ，ｙ＋テーブル境界の厚さ。
・フレーム付きテキスト（ＴｅｘｔＡｒｅａ）（１３００）：３×３行列（１３１０）、要素のサイズ：幅及び高さ２ピクセル、幅をサイズ変更するための要素：北−中心、中心、南−中心、高さをサイズ変更するための要素：西−中心、中心、東−中心、テキストを備えることがある。
・フレーム（１３２０）：３×３行列（３２５）、要素のサイズ：幅及び高さ４ピクセル、幅をサイズ変更するための要素：北−中心、中心、南−中心、高さをサイズ変更するための要素：西−中心、中心、東−中心。
・垂直スクロールバー（１３３０）：１×３行列、要素のサイズ：幅及び高さ８ピクセル、幅をサイズ変更するための要素：なし、高さをサイズ変更するための要素：中心、（フレームオブジェクトの位置に応じて）フレームに取り付けられる。高さを基準にしたインデックスのインジケータグラフィックオブジェクトを備える。
・水平スクロールバー（１３４０）：３×１行列、要素のサイズ：幅及び高さ８ピクセル、幅をサイズ変更するための要素：中心、高さをサイズ変更するための要素：なし、（フレームオブジェクトの位置に応じて）フレームに取り付けられる。幅を基準にしてインデックスのインジケータグラフィックオブジェクトを備える。
・水平線：１×１行列、要素のサイズ：幅及び高さ４ピクセル。
・垂直線：１×１行列、要素のサイズ：幅及び高さ４ピクセル。
【０３５８】
ウェブブラウザインタフェースのグラフィックオブジェクト及びそれらの関連付けられる関数のすべての要約がここに示される。
【０３５９】
以下に続くのは、デコーダのナビゲータモデルの構築に必要であるグラフィックオブジェクトの網羅的ではないリストである。個々に示されている表は、要素ごとにオブジェクトを一覧表示し、オブジェクトのリストは、複数のグラフィック要素から構成される。
【０３６０】
【表６】
2014089751.tif 000008
【０３６１】
【表７】
2014089751.tif 000009
【０３６２】
【表８】
2014089751.tif 000010
【０３６３】
【表９】
2014089751.tif 000011
【０３６４】
【表１０】
2014089751.tif 000012
【０３６５】
【表１１】
2014089751.tif 000013
【０３６６】
以下の表は、グラフィック表現で可変サイズを有することがあるグラフィックオブジェクトを形成する様々な初歩的なグラフィックオブジェクトを説明する。複雑なオブジェクトを作るための初歩的なオブジェクトの並置は、（謎を再構成する）プログラムによって実施される。これらのオブジェクトはＰＩＸＭＡＰフォーマットをしている。
【０３６７】
【表１２】
2014089751.tif 000014
【０３６８】
【表１３】
2014089751.tif 000015
【０３６９】
【表１４】
2014089751.tif 000016
【０３７０】
【表１５】
2014089751.tif 000017
【０３７１】
【表１６】
2014089751.tif 000018
【０３７２】
【表１７】
2014089751.tif 000019
【０３７３】
ウェブブラウザ用のＪａｖａＡＰＩを、ここで説明する。
【０３７４】
デコーダ内のナビゲータアプリケーションのレベルで使用されるＪａｖａパッケージのリストが続く。このリストは、ＪＤＫ１．１のＡＷＴ（要約ウィンドウツールキット）クラスとネイティブＣコードで作成される、異なるサービスのＪａｖａインタフェースクラスという２つの部分に分割される。
【０３７５】
【表１８】
2014089751.tif 000020
【０３７６】
【表１９】
2014089751.tif 000021
【０３７７】
ブラウザパッケージと呼ばれるナビゲータパッケージは、様々なパッケージをともに分類する。つまり、ＨＴＭＬ文書をフェッチできるようにするサービスを提供するｂｒｏｗｓｅｒ．ｄｒａｗｅｒパッケージ、及び文書ブラウザ内のナビゲーション、及びユーザ認証とのインターネット接続の確立を可能にするｍｅｄｉａｗｅｖｔｖパッケージである。
【０３７８】
ｂｒｏｗｓｅｒ．ｄｒａｗｅｒ．ＭｈｗＢｏｏｋｍａｒｋクラスの構造をここで説明する。ブックマークリストは、ユーザと関連付けられる。ブックマークリスト内には階層はない。
【０３７９】
構成子：ＭｈｗＢｏｏｋｍａｒｋ（ｓｕｂｓｃｒｉｂｅｒＩｄ）：既存のブックマークリストを開く。
構成子：ＭｈｗＢｏｏｋｍａｒｋ（ｓｕｂｓｃｒｉｂｅｒＩｄ）：新規ブックマークリストを作成する。
ｄｅｌｅｔｅＢｏｏｋｍａｒｋ（）：ブックマークリストを破壊する。
ａｄｄ（ＵＲＬ，ｎａｍｅ）：項目を追加する。
ｒｅｍｏｖｅ（ｉｔｅｍＮｕｍｂｅｒ）：項目を削除する。
ｍｏｄｉｆｙ（ｉｔｅｍＮｕｍｂｅｒ，ＵＲＬ，ｎａｍｅ）：既存の項目を修正する。
ｇｅｔＬｉｓｔ（）：ブックマークリスト内の項目のリストを戻す（階層なし）。
ｇｅｔＩｔｅｍＣｏｕｎｔ（）：ブックマークリスト内の項目の数を戻す。
ｉｓＦｕｌｌ（）：ブール−リストはいっぱいか。
ｉｓＥｍｐｔｙ（）：ブール−リストは空か。
ｓｅｔＨｏｍｅＰａｇｅ（ｉｔｅｍＮｕｍｂｅｒ）
ｇｅｔＨｏｍｅＰａｇｅ（）：ｉｔｅｍＮｕｍｂｅｒ
ｇｏＴｏＵＲＬ（ｓｅｓｓｉｏｎＮｕｍｂｅｒ）：選択された項目に対応する文書をロードする。
【０３８０】
故障が発生した場合、エラーメッセージが、メソッドａｄｄ（）、ｒｅｍｏｖｅ（）、ｍｏｄｉｆｙ（）、ｇｅｔＬｉｓｔ（）、ｓｅｔＨｏｍｅＰａｇｅ（）（または、発生が非同期である場合には任意のイベント）によって戻される。
【０３８１】
ｂｒｏｗｓｅｒ．ｄｒａｗｅｒ．ＭｈｗＨｉｓｔｏｒｙクラスは、過去に表示された文書のリストの中でのある文書から別の文書へのナビゲーションを可能にする。履歴リストに階層はない。クラスの詳細が以下に示される。
【０３８２】
構成子：ＭｈｗＨｉｓｔｏｒｙ（ｓｅｓｓｉｏｎＮｕｍｂｅｒ）
ｇｅｔＬｉｓｔ（）：履歴リストを戻す（履歴なし）。
ｇｅｔＣｕｒｒｅｎｔ（）：現在のＵＲＬを得る。
ｓｅｔＣｕｒｒｅｎｔ（ｉｎｄｅｘＮｕｍｂｅｒ）：下内のＵＲＬを変更する。
ｇｅｔＮｅｘｔ（）：次の項目のＵＲＬを得る。
ｇｅｔＰｒｅｖｉｏｕｓ（）：過去の項目のＵＲＬを得る。
ｇｅｔＩｔｅｍＣｏｕｎｔ（）：履歴内の項目の数を戻す。
ａｄｄＥｖｅｎｔｓＲｅｇｉｓｔｅｒ（）：履歴リストのエラーイベントを購読する。
ｒｅｍｏｖｅＥｖｅｎｔｓＲｅｇｉｓｔｅｒ（）
【０３８３】
故障が発生した場合、エラーメッセージが、メソッドｇｅｔＬｉｓｔ（）、ｇｅｔＮｅｘｔ（）、ｇｅｔＰｒｅｖｉｏｕｓ（）、ｓｅｔＣｕｒｒｅｎｔ（あるいは、発生が非同期である場合にはイベント）によって戻される。
【０３８４】
イベントは以下のとおりである。ａｄｄＥｖｅｎｔｓＲｅｇｉｓｔｅｒ（ｓｅｓｓｉｏｎＮｕｍｂｅｒ）［履歴リストエラーイベントを購読する］、ｒｅｍｏｖｅＥｖｅｎｔｓＲｅｇｉｓｔｅｒ（ｓｅｓｓｉｏｎＮｕｍｂｅｒ）［登録を取り消す］。
【０３８５】
ｂｒｏｗｓｅｒ．ｄｒａｗｅｒ．ＭｈｗＤｏｃｕｍｅｎｔクラスは、デコーダ内でのＨＴＭＬ文書のロード及び表示を可能にする。クラスの詳細が、ここに示される。
構成子：ＭｈｗＤｏｃｕｍｅｎｔ（ｓｅｓｓｉｏｎＮｕｍｂｅｒ）
ｆｒｅｅｚｅ（）：現在の文書の表示を停止する（文書のロードは続行する）。
ｕｎｆｒｅｅｚｅ（）：現在の文書の表示を再開する。
ｉｓＰｅｎｄｉｎｇ（）：文書が現在ロードしているかどうか。
ｓｔｏｐ（）：現在の文書のロードを停止する。
ｒｅｌｏａｄ（）：文書を再ロードする。
ｇｅｔＤｏｃｕｍｅｎｔＩｎｆｏ（）：文書のタイトル及びＵＲＬを戻す。
ａｄｄＳｔａｔｕｓＲｅｇｉｓｔｅｒ（）：ロードの状態及び終わりに関する情報を購読する。
ｇｏＴｏＵＲＬ（ｕｒｌ）：ウェブページをロードする。
ｓｕｂｍｉｔ（ｌｏｇｉｎ，ｐａｓｓｗｏｒｄ，ＵＲＬ）：ウェブページをロードするために認証を提出する。
ｇｅｔＳｔａｔｉｓｔｉｃｓＤｏｃｕｍｅｎｔ（）：進行中の要求の数及び現在ロードされている文書のＵＲＬを戻す。
【０３８６】
ｂｒｏｗｓｅｒ．ｍｅｄｉａｗｅｂｔｖ．ＭｈｗＣｏｎｎｅｃｔｉｏｎクラスは、ユーザ接続及び認証機能性をともに分類する。クラスの詳細は、ここで示される。
【０３８７】
構成子：ＭｈｗＣｏｎｎｅｃｔｉｏｎ（ｓｕｂｓｃｒｉｂｅｒＩＤ）
ｓｔａｒｔ（）：接続を要求する。
ｓｔｏｐ（）：切断を要求する。
ｃａｎｃｅｌ（）：接続を取り消す。
ｓｅｔＡｕｔｈｅｎｔｉｆｉｃａｔｉｏｎＴｙｐｅ（ｔｙｐｅ）：ＣＡＮＡＬ＋モード（ｍｓｄ／ｐａｓｓｗｏｒｄ）に対する、あるいはログイン／パスワードによって認証のモードを設定する。
ｇｅｔＡｔｔｒｉｂｕｔｅｓ（）：接続属性を戻す。
ｇｅｔＡｔｔｒｉｂｕｔｅｓ（ａｔｔｒｉｂｕｔｅｓ）：接続属性を修正する。
ｓｅｔＰａｓｓｗｏｒｄ（ｐａｓｓｗｏｒｄ）：パスワードを修正する。
ｇｅｔＰａｓｓｗｏｒｄ（ｐａｓｓｗｏｒｄ）：パスワードを得る。
ｓｅｔＡｕｔｏＣｈｅｃｋＰａｓｓｗｏｒｄ（ｂＡｕｔｏＣｈｅｃｋ）：パスワードが、確認パスワードによって自アクティブに検証されるべきかどうかを設定する。
ｇｅｔＡｕｔｏＣｈｅｃｋＰａｓｓｗｏｒｄ（ｂＡｕｔｏＣｈｅｃｋ）：パスワードが、確認パスワードによって自アクティブに検証されるべきかどうかを読み取る。
ｇｅｔＩＰＣｌｉｅｎｔ（ｉｐａｄｄｒｅｓｓ，ｎｅｔｍａｓｋ）：選択されたＩＰ及びネットマスクの対を読み取る。
ｓｅｔＩＰＣｌｉｅｎｔ（ｉｐａｄｄｒｅｓｓ，ｎｅｔｍａｓｋ）：ＩＰ及びネットマスクの対を修正する。
ｇｅｔＤＮＳ（ｄｎｓ１，ｄｎｓ２）：一次ＤＮＳアドレス及び二次ＤＮＳアドレスを読み取る。
ｓｅｔＤＮＳ（ｄｎｓ１，ｄｎｓ２）：一次ＤＮＳアドレス及び二次ＤＮＳアドレスを修正する。
ｇｅｔＵＲＬＣｏｎｆｉｇＳｅｒｖｅｒ（ｕｒｌ）：構成サーバのアドレスを読み取る。
ｓｅｔＵＲＬＣｏｎｆｉｇＳｅｒｖｅｒ（ｕｒｌ）：構成サーバのアドレスを修正する。
ｇｅｔＱｕｅｒｙＣｏｍｍａｎｄ（ｑｕｅｒｙＣｍｄ，ｔｙｐｅＯｆＱｕｅｒｙ）：構成サーバに送信される要求を型ごとに読み取る。
ｓｅｔＱｕｅｒｙＣｏｍｍａｎｄ（ｑｕｅｒｙＣｍｄ，ｔｙｐｅＯｆＱｕｅｒｙ）：要求を型ごとに修正する。
ｑｕｅｒｙＡｃｑｕｉｓｉｔｉｏｎｓ（ｔａｂｌｅＡｃｑｕｉｓｉｔｉｏｎｓ，ｔｙｐｅＯｆＡｃｑｕｉｓｉｏｎ，ＮｕｍｂｅｒＯｆＡｃｑｕｉｓｉｔｉｏｎｓ）：獲得のリストを読み取る。
ｓｔａｒｔＡｃｑｕｉｓｉｔｉｏｎ（ａｃｑｕｉｓｉｔｉｏｎＩｄ）：獲得を開始する（データ／ビデオ）。
ｓｔｏｐＡｃｑｕｉｓｉｔｉｏｎ（ａｃｑｕｉｓｉｏｎＩｄ）：獲得を停止する（データ／ビデオ）。
ａｄｄＳｔａｔｕｓＲｅｇｉｓｔｅｒ（）：加入は、接続ステータスを知らされる。
【０３８８】
イベントは、以下のとおりである。つまり、接続の損失、現在の接続、確立された接続、接続確認要求、接続エラー、モデムステータス、オン／オフ、進行中の初期化、進行中のダイヤリング、エラーであるがモデムはオン、サーバステータス、無効ポート、無効ＵＲＬ、ログインエラー、未知のログイン、及び無効パスワードである。
【０３８９】
ｒｅｍｏｖｅＳｔａｔｕｓＲｅｇｉｓｔｅｒ（）：ネットワーク接続ステータスに対する登録を取り消す。
ｉｓＣｏｎｎｅｃｔｅｄ ｓｂｓｃｒｉｂｅｒＩｄ（）：モデム接続／切断ステータスを示すブールを戻す。
ｉｓＰｅｎｄｉｎｇ（）：現在接続を確立中のモデムのブールを戻す。
ｇｅｔＥｘｔｅｎｄｅｄＰｒｏｖｉｄｅｒＵｒｌ（ｐｒｏｖｉｄｅｒＵｒｌ）：現在加入されているプロバイダを読み取る。
ｇｅｔＥｘｔｅｎｄｅｄＰｒｏｖｉｄｅｒＵｒｌ（ｐｒｏｖｉｄｅｒＵｒｌ）：現在加入されているプロバイダを修正する。
【０３９０】
ｂｒｏｗｓｅｒ．ｍｅｄｉａｗｅｂｔｖ．ＭｈｗＣｏｎｆｉｇｕｒａｔｉｏｎクラスは、各ユーザ及びその優先順位のプロファイルを管理する。クラスの詳細が、以下に示される。
【０３９１】
構成子：ＭｈｗＣｏｎｆｉｇｕｒａｔｉｏｎ（）
ｒｅａｄＰｒｏｆｉｌｅ（ｓｕｂｓｃｒｉｂｅｒＩｄ）：プロファイルを読み取る。
ｗｒｉｔｅＰｒｏｆｉｌｅ（ｓｕｂｓｃｒｉｂｅｒＩｄ，ｐｒｏｆｉｌｅ）：プロファイルを書き込む。
ｒｅａｄＤｅｆａｕｌｔＰｒｏｆｉｌｅ（）：デフォルトプロファイルを読み取る。
ｗｒｉｔｅＤｅｆａｕｌｔＰｒｏｆｉｌｅ（ｐｒｏｆｉｌｅ）：デフォルトプロファイルを修正する。
ｇｅｔＵｓｅｒＣｏｕｎｔ（）：ユーザの数
ｎｅｗＵｓｅｒ（ｐｒｏｆｉｌｅ）：新規ユーザについて特定する。
ｇｅｔＬａｓｔＣｏｎｎｅｃｔ（）：最後に接続されたユーザ。
【０３９２】
プロファイルの最大数は、現在５に固定されているが、これは厳密な制限を表さない。プロファイルのさらに大きい数は、必要がある場合は記憶されてよい。
【０３９３】
故障が発生した場合、ＷｒｉｔｅｒＰｒｏｆｉｌｅ（）メソッド及びｗｒｉｔｅＤｅｆａｕｌｔＰｒｏｆｉｌｅ（）メソッド（あるいは、発生が非同期である場合にはイベント）によって、エラーメッセージが戻される。
【０３９４】
ｂｒｏｗｓｅｒ．ｍｅｄｉａｗｅｂｔｖ．ＭｈｗＭｕｌｔｉＳｅｓｓｉｏｎクラスは、ナビゲータセッションを選択できるようにする。セッションは、別のインスタンスによって自アクティブに起動されたナビゲータのインスタンスである。ナビゲータが開始すると、セッションが、認証された接続の確立後に作成される。クラスの詳細が、以下に示される。
構成子：ＭｈｗＭｕｌｔｉＳｅｓｓｉｏｎ
ｇｅｔＣｕｒｒｅｃｔＳｅｓｓｉｏｎＮｕｍｂｅｒ（）
ｇｅｔＣｕｒｒｅｎｔＳｅｓｓｉｏｎＮｕｍｂｅｒ（ｉｎｔ  ｎｕｍｂｅｒ）
ｇｅｔＰｒｅｖｉｏｕｓＳｅｓｓｉｏｎ（）
ａｄｄＳｅｓｓｉｏｎ（）：作成されたセッションの数を戻す。
ｒｅｍｏｖｅＳｅｓｓｉｏｎ（ｉｎｔ ｎｕｍＳｅｓｓｉｏｎ）
【０３９５】
デコーダ用のナビゲータモデルを、図６ａ及び図７〜図３０を参照して、さらに詳細に説明する。
【０３９６】
ここに提示されるモデルは、ナビゲータの簡略な例であり、主要な機能性の一般的な考えを示す。それは、グラフィック表記のレベルで完全な自由度を与える。重要な機能だけが、同じ型の機能がその中で分類されるゾーンまたは画面、及び汎用ユーザインタフェースである。
【０３９７】
ナビゲータは、グラフィックスタジオの使用可能なグラフィックス（ＭＰＥＧ，ＰＩＸＭＡＰ）のすべてを利用する。このモデルの画面は、ツリー形式で編成され、それぞれのものが必須関数の集合体をともに分類する。各関数または画面内のオプションは、（リモートコントローラ上の）矢印ボタンの助けを借りてフォーカスを移動することによって、あるいはカーソル／ポインタでキーパッドを使用することによってアクセスされる。処置の選択は、制御装置クリックによって、または事前に定義されたボタン（例えば「ＯＫ」）によって達成される。
【０３９８】
物理的なキーボードがない場合、リモートコントローラを使用してテキストを入力するには、仮想キーボードを提供することが必要である。これは、すばやくキーをたたく可能性によりフォーカスを移動することによって、リモートコントローラのボタンを仮想キーボード上に写像することによって達成される。言い換えると、リモートコントローラ上のボタンの画像は輪郭で（トレースされた形式で）可視である、あるいは仮想キーボードのピクチャ上でわずかに不透明である。仮想キーボードを、本書では後半にさらに詳しく説明する。
【０３９９】
図３０は、ウェブページの一部が（１４１１）の下で可視である、ナビゲータ関数ボタン（１４１０）のトップレベルチェーンを示す。
【０４００】
メインナビゲータ画面を、ここでは図３０を特に参照して説明する。
【０４０１】
ナビゲータ関数は複数の層で分類される。メイン画面は、再ロード／停止（１４０１）、前ページ（１４０２）、次ページ（１４０３）、最近ビジットしたサイトの履歴、ブックマーク、接続／切断、構成、終了ナビゲータ（１４０８）などの一連のボタンから構成される、仮想バー（メインメニュー）（１４１０）を表示する。
【０４０２】
ナビゲータＧＵＩ（メイン画面）（１４１０）は、関数キーが（リモートコントローラの上またはキーボードの上のどちらかで）押されるときに表示される。ＧＵＩがＴＶ画面で可視であるとき、（ＧＵＩが上をカバーする）ＨＴＭＬ文書（１４１１）はメモリの中にロードされ続けるが、文書のリフレッシュは、ＧＵＩの性能に影響を及ぼさないように一時停止される。ＨＴＭＬ文書は、ナビゲータＧＵＩが片付けられると、再表示される。性能が最終的に満足行き、それによりＨＴＭＬ文書及びＧＵＩの同時表示を可能にする場合に、この制約は解除される。
【０４０３】
ＧＵＩは、（リモートコントローラまたはキーボード上の）ファンクションキーを押すことによって、あるいはＧＵＩボタンゾーンの外側をクリックすることによってテレビ画面から片付けられる。それから、現在ロード中あるいはキャッシュメモリに記憶中のＨＴＭＬ文書の表示が開始されるか、再開される。
【０４０４】
ボタンは実際的には正方形のゾーン（例えば、３２ピクセル×３２ピクセル）である。グラフィックカーソルがゾーンに入ると、そのゾーン（ウィンドウ）はフォーカスを受け取る（ＥｎｔｅｒＮｏｔｉｆｙ（ＷｉｎｄｏｗＩＤ）関数を参照すること）。
【０４０５】
例えば、ボタングラフィックがタイヤである場合、グラフィックカーソルの実際の位置がタイヤのピクセルを効果的にカバーするかどうかが検出されなければならない。この目的のため、（クリッピングマスクでの相対的な位置、ｇｅｔｐｉｘｅｌ（）の計算、それからピクセル値を試験することによって）ボタンのクリッピングマスク内でのマウスポインタのホットスポットにあるピクセルの値を見つけることが必要である。この検出方法により、クリックがボタンの関数を開始する前に実施されたかどうかについて、試験を改善することができる。
【０４０６】
マウスポインタがボタンの矩形または正方形のゾーンを離れると、ゾーンはフォーカスを失う（ＬｅａｖｅＮｏｔｉｆｙ（ＷｉｎｄｏｗＩＤ）を参照すること）。
【０４０７】
記述ボタン要約を、ここでさらに詳細に説明する。
【０４０８】
マウスポインタまたは矩形のフォーカスが関数を表すボタンと一致すると、短いフレーズ（ｔｏｏｌｔｉｐ）が水平にまたは垂直にのどちらかで表示され、ボタンの関数を説明する。ボタンがマウスクリックによってまたはファンクションキーによってのどちらかで選択されると、サブメニューオプションを含むボタンのリストが表示される。短い記述フレーズ（ｔｏｏｌｔｉｐｓ）のシステムも、サブメニューボタンに使用される。
【０４０９】
メニューオプションのナビゲーションは、リモートコントローラ上またはキーボード上のどちらかにある矢印で達成される。フォーカスを有していたメイン画面の最後のボタンは、次回メイン画面が表示されるときのために記憶される。
【０４１０】
仮想キーボードを、ここで図４２〜図４５に関してさらに詳細に説明する。
【０４１１】
図４２は、現在可視である仮想キーボード（１５０１）がどのようにして仮想キーボード（１５０１、１５０６）の下にある「グリッド」に写像するのかを概略して示す。
【０４１２】
図４３は、仮想キーボードのキーに対する典型的な文字の写像を示す。
【０４１３】
図４４は、第１（１５４５）及び第２（１５４６）の数ブロックがそれぞれフォーカスを有する（２つの異なる種類のリモートコントローラ１５４２と１５４３を示す）仮想キーボードに使用される画像を示す。
【０４１４】
図４５は、典型的な寸法が重ね合わされる、典型的な仮想キーボードレイアウトを示す。
【０４１５】
最初に、仮想キーボードは、それが使用されるアプリケーションとは無関係であるツールとして考えられる。このようにして、それは「ＷｅｂＢｒｏｗｓｅｒ」アプリケーション及び等しく「Ｍａｉｌ」アプリケーション内で使用することができる。さらに、「外観」は、関係するアプリケーションの「外観」に完全に無関係である。
【０４１６】
仮想キーボードは、物理的なキーボードまたはキーボード付きリモートコントローラを所有していないユーザが、画面の編集可能な領域を選択した瞬間から表示される。フォーカスは、編集可能領域内のテキストの最後に配置される。（リモートコントローラまたは仮想キーボード上の）「ＯＫ」または（仮想キーボード上の）「取り消し」を押すと、それは片付けられる。
【０４１７】
ユーザは、アップ矢印キー及びダウン矢印キーも使用できる。これが場面上に同じ仮想キーボードであるが、キー（１５０６）上の文字が異なる仮想キーボードをもたらす。このようにして、５つの仮想キーボードの集合の間でフリップすると、人は西欧型コンピュータのキーボードの文字のすべてを表示できる。必要が生じると、他のキーボードを追加する可能性もある。
【０４１８】
図４４に関して、リモートコントローラの数ブロックと仮想キーボード上のフォーカスの間で即時関連付けを可能とするために、画像制御装置の重なり合う画像がフォーカス（１５４２、１５４３）を示す。このようにして、ユーザはキーボードの唯一の部分がフォーカスを有すること、及び文字の残りが矢印キーを用いてフォーカスを移動することによって達することができることを容易に視覚化することができる。キーボードは、後者の点を頭に入れて設計される。
【０４１９】
仮想キーボード解決策は、ほとんど画面高さを占有せず、使用可能な文字数の容易な拡張に対処する。デフォルトにより、それは表示される縮小アルファベット付きの仮想キーボードである。
【０４２０】
一定のボタンは重要な特殊関数を有する。
・現在の選択をｖａｌｉｄｉｎｇするためのリモートコントローラ上の「ＯＫ」（フィールドだけが１行を有する場合、文字（１５２１）も確証する、あるいは代わりにまったく影響を及ぼさないように選ばれてよい。それ以外の場合、それは復帰だけに対応する）。
・確証せずにツールを終了するための仮想キーボード上の「取り消し」（１５２２）（キーボードを開いた後に加えられた修正は失われるだろう）。
・入力された最後の文字を消去する仮想キーボード上の「後退」（１５２３）
・編集領域内で移動するための上矢印キー、下矢印キー、左矢印キー、右矢印キー
・１回の移動で構成可能な空間の数を挿入する、（デフォルトにより４）仮想キーボードでの「タブ」（１５２０）
キーボードはつねに「挿入」モードにある。
【０４２１】
キーボードの例は図４４に示され、後述される。
【０４２２】
図４３に図示される５つのキーボード（５×３）及びＷｅｂＢｒｏｗｓｅｒアプリケーション用にインストールされる２つのフォント（エアリアルウェブとクーリエ）を用いると、従来のキーボードの文字のすべてがカバーできる。画面上のキーボードの寸法は幅２２７ピクセルかける高さ１８４ピクセルである。
【０４２３】
仮想キーボード及び多様なアプリケーションでのその使用に関する機能接続は、「ｃａｎａｌｐｌｕｓ．ｖｉｒｔｕａｌｋｂｄ」パッケージ内で展開される。
【０４２４】
パッケージ内に含まれているクラスは、「ＭｈｗＶｉｒｔｕａｌＫｂｄ」（仮想キーボードグラフィック表示及び行動クラス）、「ＭｈｗＶｋＴｅｘｔＦｉｅｌｄ」（ＴｅｘｔＦｉｅｌｄを共用するグローバルアプリケーション内で定義される仮想キーボードがイベントを制御できるようにする「ｊａｖａ．ａｗｔ．ＴｅｘｔＦｉｅｌｄ」から派生するクラス）、及び「ＭｈｗＴｅｘｔＡｒｅａ」（ＴｅｘｔＡｒｅａクラスを使用するグローバルアプリケーション内に定義される仮想キーボードがイベントを制御できるようにする「ｊａｖａ．ａｗｔ．ＴｅｘｔＡｒｅａ」から派生するクラス）を含む。
【０４２５】
ＭｈｗＶｉｒｔｕａｌＫｂｄクラスをここでさらに詳細に説明する。
【０４２６】
「ＭｈｗＶｉｒｔｕａｌＫｂｄ」クラスの構成子は、「専用」として定義される。このようにして、（例えば物理的なキーボードが不在の場合に）それを使用する必要がある可能性のあるメインアプリケーソンが起動されるときに、唯一の一意の仮想キーボードが構築することができる。したがって、目的は、特に現在のアプリケーションのために構成され、ユーザがテキストフィールド（単一行または複数行）を入力するときに表示されるキーボードを提示することである。
【０４２７】
キーボードが作成されると、構成できる以下の４つの主要（静的）な変数が、設定される。
・親：コンテナ：キーボードが作成されるときに、それ自体が存在しなければならない仮想キーボードの「親」。それは、引数内で渡される「親」が「ヌル」である場合に「ＮｕｌｌＰｏｉｎｔｅｒＥｘｃｅｐｔｉｏｎ」を返す「ｓｅｔＰａｒｅｎｔ」メソッドを使用して設定される。
・記述ファイル：キーボードを、仮想キーボードが使用されるときに得られる多様な「キーボード」に関係する画像の後ろにあるグラフィック、及びキーの上に印刷されるラベルの両方の点でキーボードを記述するＡＳＣＩＩファイル。文字は、それらのユニコード符号によって指定される。記述ファイル名は、「ｓｅｔＳｃｒｅｅｎｓＦｉｌｅ」メソッドを使用して設定できる。
・画面数：仮想キーボードによって初期化され、使用される「数ブロック」の数。「ｓｅｔＳｃｒｅｅｎｓＮｕｍｂｅｒ」によって設定されるこの数は、その特徴が前記に詳説された記述ファイル内で読み取られる、キーボードの数に一致する。
・初期座標：これらは、（前述された）親コンテナ内のキーボードの背景画像の左上角の座標である。これは、「ｓｅｔＣｏｏｒｄＩｎｉｔ」メソッドを使用して設定される。
【０４２８】
いったんキーボードが作成されると、それが存在する場合（アプリケーションの仮想キーボードが存在しない場合、及びアプリケーションがそれを使用する場合、「ｇｅｔＩｎｓｔａｎｃｅ」メソッドが、そのために人が設定したであろう変数［前述された４つ］を使用して）仮想キーボードを作成する）には、現在のアプリケーションのキーボードを発見する「ｇｅｔＩｎｓｔａｎｃｅ」メソッドを使用することによってそれを使用するか否かが決定できる。
【０４２９】
イベント管理をここで説明する。
【０４３０】
前述の説明に従って、仮想キーボードは、リモートコントローラ上の数ブロック、「ＯＫ」ボタン、及び４つの矢印方向キーによってそれに送信されるイベントを解釈することだけによっていったん表示されると機能する。これらのボタンは、使用中のキーボードに対して特定的な役割を有するだろう。
【０４３１】
「ＯＫ」ボタンは、それが、ユーザに以下の２つのことを行うことができるようにするため、重要な役割を有する。つまり、情報を入力するためにテキストフィールドに「戻る」後に、仮想キーボードの動作を表示し、開始することと、テキストフィールドを「省き」、変更を保存することである。
【０４３２】
矢印キー
「右」矢印と「左」矢印は、（「フォーカス」を有する数番号を示す）リモートコントローラの画像を、仮想キーボード上で表される３つの数ブロックに移動できるようにする。リモートコントローラ上の数ブロックのキーは、このようにして、フォーカスを有する「キーボード」に応じて、多様な文字の表示に「結合される」。
【０４３３】
最も一般的な場合、キーボードがアクティブなときにこれらのボタンを「軽くたたく」と、カーソルにより示されている位置にある現在のテキストフィールド内で、そのキーの上に示されている文字の自アクティブな挿入が起こる。
【０４３４】
文字の内、６個を「特殊」文字と見なすことができ、キーの上に表示されている文字をテキストフィールド内に直接的に表示させない。
【０４３５】
後退：「＜」（１５２３）：この文字に対応するリモートコントローラ上のボタンが押されると、現在のテキストフィールド内のカーソル位置のすぐ隣の文字が消去される。
【０４３６】
タブ：「＞＞」（１５２０）：この文字に対応するリモートコントローラ上のボタンが押されると、構成可能な空間数（「」）、デフォルトによって４が現在のカーソル位置に挿入される。
【０４３７】
入力：文字（１５２１）：この文字に対応するリモートコントローラ上のボタンが押されると、カーソル位置に「行送り」が挿入される。事実上、現在のテキストフィールドが「ＭｈｗＶｋＴｅｘｔＦｉｅｌｄ」クラスのインスタンス、つまり編集可能な１行を有するインスタンスである場合、このボタンを軽くたたくと、フィールドに影響を及ぼさないか、あるいはフィールドのバリデーションを引き起こすかのどちらかだろう。逆に、このテキストフィールドが「ＭｈｗＶｋＴｅｘｔＡｒｅａ」クラスのインスタンスである場合には、それは複数の編集可能行から成り、この文字が「行送り」を引き起こす（カーソルが最後の編集可能行に配置される場合、このボタンを軽くたたいても影響はないだろう）。
【０４３８】
取り消し：「φ」（１５２２）：この文字に対応するリモートコントローラ上のボタンが押されると、仮想キーボードの開放に続く現在のテキストフィールドに対して加えられた修正のすべてがアンドゥされる。言い換えると、その内容は、それが修正が加えられる前に有していた値に戻され、仮想キーボードは「終了される」。
【０４３９】
左矢印：この文字に対応するリモートコントローラ上のボタンが押されると、現在のテキストフィールド内のカーソルが左に１つの場所移動される。カーソルがすでに「ゼロ」位置にある（追加の左への移動が可能ではない）場合には、このボタンは影響を及ぼさない。
【０４４０】
右矢印：この文字に対応するリモートコントローラ上のボタンが押されると、現在のテキストフィールド内のカーソルが右に１つの場所移動する。テキストフィールド内の最後の文字の後にカーソルがすでに配置される（これ以上右に移動できない）場合、このボタンは影響を及ぼさない。
【０４４１】
上矢印：この文字に対応するリモートコントローラ上のボタンが押されると、現在のテキストフィールド内のカーソルが１つの場所上方へ移動される。カーソルがすでにテキストフィールドの第１行にある場合（あるいは現在のテキストフィールドが１行：ＭｈｗＶｋＴｅｘｔＦｉｅｌｄだけを有する場合）このボタンは影響を及ぼさない。
【０４４２】
下矢印：この文字に対応するリモートコントローラ上のボタンが押されると、現在のテキストフィールド内のカーソルが１つの場所下方へ移動される。カーソルがすでにテキストフィールドの最後の行にある場合（あるいは現在のテキストフィールドが１行：ＭｈｗＶｋＴｅｘｔＦｉｅｌｄだけを有する場合）、このボタンは影響を及ぼさない。
【０４４３】
「ｆｉｎｄＬｏｃａｔｉｏｎ」メソッドは、「切り捨てられる」面を最小限に抑えようとして、画面上での仮想キーボードの設置を決定する。
【０４４４】
ＭｈｗＶｋＴｅｘｔＦｉｅｌｄは、「ｊａｖａ．ａｗｔ」パッケージの「ＴｅｘｔＦｉｅｌｄ」クラスの特殊化にすぎない。それは、さらに、仮想キーボードの使用を指定する（またはしない）ブール値を管理する。
【０４４５】
構成子は、簡略な追加引数、つまり仮想キーボードの使用を指定するブールにより、「ｊａｖａ．ａｗｔ」パッケージの「ＴｅｘｔＦｉｅｌｄ」クラスの構成子とまさに同じである。
【０４４６】
ブールが「真」である場合、「ＴｅｘｔＦｉｅｌｄ」クラスの「ベース」インスタンスが作成され、現在のアプリケーション内で使用可能な仮想キーボードリスナーも、「ａｄｄＫｅｙＬｉｓｔｎｅｒ」メソッドを使用して同時に追加される。「真」ではない場合には、「通常の」ＴｅｘｔＦｉｅｌｄが作成される。
【０４４７】
ＴｅｘｔＦｉｅｌｄがフォーカスを有するときに、ユーザが「ＯＫ」を押し、ブールが仮想キーボードの使用を指定すると、仮想キーボードが表示され、フォーカスを獲得する。それは、イベントのすべてを管理し、テキストフィールドを塗りつぶすことができる。ユーザが「ＯＫ」を再び押す場合、そのテキストは確証され、キーボードがフォーカスを戻す。仮想キーボードの使用が考えられない（ブール＝偽）の場合には、「ＴｅｘｔＦｉｅｌｄ」は、「ｊａｖａ．ａｗｔ」内の標準ＴｅｘｔＦｉｅｌｄと同じ「動作」を有する。
【０４４８】
ＭｈｗＶｋＴｅｘｔＡｒｅａｇは、単に「ｊａｖａ．ａｗｔ」パッケージ内の「ＴｅｘｔＡｒｅａ」クラスの特殊化にすぎない。それは、さらに、仮想キーボードの使用を指定する（またはしない）ブール値を管理する。
【０４４９】
構成子は、簡略な追加の引数、つまり仮想キーボードの使用を指定するブールを含む、「ｊａｖａ．ａｗｔ」パッケージ内の「ＴｅｘｔＡｒｅａ」クラスの構成子とまったく同じである。
【０４５０】
ブールが「真」である場合、「ＴｅｘｔＡｒｅａ」クラスの「ベース」インスタンスが作成され、現在のアプリケーション内で使用できる仮想キーボードリスナーも、「ａｄｄＫｅｙＬｉｓｔｎｅｒ」メソッドを使用して同時に追加される。真ではない場合には、「通常の」ＴｅｘｔＡｒｅａが作成される。
【０４５１】
ＴｅｘｔＡｒｅａがフォーカスを有するとき、ユーザが「ＯＫ」を押し、ブールが仮想キーボードの使用を指定すると、仮想キーボードが表示され、フォーカスを獲得する。それは、イベントのすべてを管理し、テキストフィールドを塗りつぶすことができる。ユーザが再び「ＯＫ」を押すと、そのテキストが確証され、キーボードがフォーカスを戻す。仮想キーボードの使用が考えられる（ブール＝偽）の場合、「ＴｅｘｔＡｒｅａ」が、「ｊａｖａ．ａｗｔ」内の標準ＴｅｘｔＡｒｅａと同じ「動作」を有する。
【０４５２】
以下の項は、前述された特徴のインプリメンテーション、特にグラフィックオブジェクト（例えば、テキストフィールド、ボタン、スライダ、リスト、チェックボックス、選択肢等）のグラフィック要素の集合からの再構築をさらに説明する。
【０４５３】
図３９は、例えば、４つの角（ＮＷ２１００、ＮＥ２１０１、ＳＷ２１０２、ＳＥ２１０３）、４つの辺（Ｎ２１０４、Ｅ２１０５、Ｗ２１０６、Ｓ２１０７）、及び中心（Ｃ２１０８）という９つの要素から作られるボタンを示す。
【０４５４】
典型的ではあるが、必ずしもではなく、これらの９つの要素のそれぞれは正方形（４×４ピクセル、８×８ピクセル、１６×１６ピクセル）である。Ｎ要素、Ｅ要素、Ｗ要素、Ｓ要素及びＣ要素のブロックが、必要とされる（外観によって画定される境界線とともに、構成要素のサイズによって画定される）領域内で並べて表示される。この領域は、要素のサイズの倍数である必要はない。現在、並列表示は、左から右、または上部から下に移動するため、あらゆる不完全に描画された要素が底部及び右側辺に表示される。これが有用であると感じられる場合には、「中心揃え」、及び「右」揃えの並列表示規則を追加することが考えられるだろう。一般的には、ＮＷ要素、ＮＥ要素、ＳＷ要素及びＳＥ要素は、境界線と同じ大きさであるため、並列表示は必要ない。ただし、それらが必要とされるより小さい場合には、並列表示は自アクティブに実行される。
【０４５５】
これがどのようにして実現されるのかに関する簡略な説明が続く。作業は３つの領域に分けられる。つまり、様々な外見の作成及び様々なＷＧＴウィジェットへの割り当てを可能にするネイティブＷＧＴモジュール、構成要素の様々なグラフィック特徴を塗るための関数が含まれるネイティブ「ＬｏｏｋＰｉｘｍａｐ」モジュールの展開、及びネイティブコードと接続するためのｍｈｗ．ａｗｔ．Ｊａｖａパッケージの展開である。
【０４５６】
展開のこれらの３つの領域を、以下の項に説明する。
【０４５７】
ＷＧＴモジュール外観機構を、図４０と図４１を参照してここで説明する。
【０４５８】
本項の目的とは、ＷＧＴモジュールが、管理されている多様なグラフィックオブジェクトの「外観」を制御できるためにどのように修正されたのかを説明することである。新しい外観は、ＷＧＴモジュールをもとのままに残して、必要に応じて、及び必要なときに追加できる新しいクラスの中で定義することができる。標準的なＷＧＴ外観（ＬｏｏｋＷｇｔ）が、この機構を使用することを希望しないアプリケーションがそれを使用しなくてもいいように、提供され、具体化され、デフォルトによってウィジェットに帰される。
【０４５９】
以下の特徴が必要とされる。つまり数多くの異なる外観がオブジェクト型ごとに定義できる。別の外観が各オブジェクトに独立して指定できる。及びデフォルトにより、現在のＷＧＴによって定義される外観がオブジェクトに適用される。
【０４６０】
オブジェクトの外観を描画するための、ビットマップとベクタという２つの異なる技法が可能でなければならない。
【０４６１】
ビットマップ技法では、オブジェクトは、それから描画される単独のビットマップを作成するための数多くの事前に定義されたビットマップ要素を結合することによって描画される。可変サイズのオブジェクトを作成するために、要素は、例えば、必要とされるサイズのオブジェクトを構築するために辺に沿って繰り返すことができる。
【０４６２】
これらの要素のそれぞれのサイズだけではなく正確な配置も定義されない。考え方は、新しい外観の作成がＷＧＴによって過剰に制約されないように、これを可能な限り自由にしておくことである。外観クラスは、必要とされるオブジェクトサイズの関数としてともにそれらを適合するためのビットマップ要素及び規則を定義しなければならない。
【０４６３】
後述されるＬｏｏｋＰｉｘｍａｐ（ネイティブ）及びＰｉｘｍａｐＬｏｏｋ（Ｊａｖａ）クラスは、このメソッドを独占的に使用する。展開者が、ベクタメソッドを使用するＬｏｏｋＰｉｘｍａｐから派生するあるいは派生しない独自の外観を作成するのを停止するものは何もない。
【０４６４】
ベクタ技法においては、オブジェクトは、ＤｒａｗＲｅｃｔａｎｃｌｅ（），ＤｒａｗＡｒｃ（）などの一連の基本的な描画動作を使用して描画される。外観クラスは、必要とされるオブジェクトサイズの関数としてオブジェクトを描画するための規則を定義しなければならない。
【０４６５】
ビットマップ技法とベクタ技法の両方を結合する外観クラスを考えることは完全に可能である。例えば、ビットマップアプローチは、ボタンの基本的な形式に使用できるだろうが、ベクタアプローチは強調表示を提供できるだろう。
【０４６６】
現在説明されているＷＧＴモジュール外観機構を、さらに詳細に説明する。
【０４６７】
以下の機構が組み込まれた。
・その内の一定のものがオブジェクトに帰される外観クラスに含まれる、各オブジェクトの現在のペイントメソッドの７つの関数、つまりＤｒａｗＢａｃｋｇｒｏｕｎｄ（）、ＭｈｗＷｇｔＬｏｏｋＤｒａｗＢａｃｋｇｒｏｕｎｄ（）、ＤｒａｗＦｏｒｅｇｒｏｕｎｄ（）、ＭｈｗＷｇｔＬｏｏｋＤｒａｗＦｏｒｅｇｒｏｕｎｄ（）、ＭｈｗＷｇｔＬｏｏｋＤｒａｗＲｅｌｉｅｆ（）、ＭｈｗＷｇｔＬｏｏｋＤｒａｗＦｏｃｕｓ（）、ＭｈｗＷｇｔＬｏｏｋＨｉｇｈｉｇｈｔ（）への分割
・抽象クラスＭｈｗＷｇｔＬｏｏｋの作成
・ＭｈｗＷｇＬｏｏｋから派生し、ＷＧＴが初期化されるときに具体化されるクラスＭｈｗＷｇｔＬｏｏｋＷｇｔの作成
・特定の外観がＭｈｗＷｇｔＸＸＸＡｔｔｓＳｅｔＬｏｏｋを帰されない場合にそれが作成されると各オブジェクトに帰されるだろう外観を設定するために使用されるｇ＿ＴｈｅＤｅｆａｕｌｔＬｏｏｋグローバル変数の追加
・オブジェクトのデフォルト外観を変更するためのパブリックメソッドＭｈｗＷｇｔＳｅｔＤｅｆａｕｌｔＬｏｏｋ（ｃｏｎｔｅｘｔ）の追加
・２つのパブリックメソッド、ＭｈｗＷｇｔＳｅｔＸＸＸＡｔｔｒＬｏｏｋ（＊ｏｂｊｅｃｔ，ｌｏｏｋ）及びＭｈｗＷｇｔＧｅｔＸＸＸＡｔｔｓＬｏｏｋ（＊ｏｂｊｅｃｔ）のオブジェクトクラスへの追加
これらの態様は、印刷のためのメソッドで開始する以下の項に提示される。
【０４６８】
各ペイント関数は、ここで、それが呼び出されるときに以下のメソッドを呼び出す。つまり、ＤｒａｗＢａｃｋｇｒｏｕｎｄ（）、ＭｈｗＷｇｔＬｏｏｋＤｒａｗＢａｃｋｇｒｏｕｎｄ（）、ＤｒａｗＦｏｒｅｇｒｏｕｎｄ（）、ＭｈｗＷｇｔＬｏｏｋＤｒａｗＦｏｒｅｇｒｏｕｎｄ（）、ＭｈｗＷｇｔＬｏｏｋＤｒａｗＲｅｌｉｅｆ（），ＭｈｗＷｇｔＬｏｏｋＤｒａｗＦｏｃｕｓ（），及びＭｈｗＷｇｔＬｏｏｋＨｉｇｈｌｉｇｈｔ（）である。
【０４６９】
２つのメソッド、ＤｒａｗＢａｃｋｇｒｏｕｎｄ（）及びＤｒａｗＦｏｒｅｇｒｏｕｎｄ（）は、ＷＧＴの一部であり、外観に関係なく、呼び出される。それ以外は、事実上、問題のウィジェットと関連付けられる外観クラス内の対応する関数に対するポインタである。このようにして、外観クラスは、これらの部分のペイント関数を実現する。
【０４７０】
背景：これは、外観がウィジェット全体の後ろに描画できるようにする。
【０４７１】
前景：これは、（境界線を除く）ウィジェットの中心部分の上にその他のグラフィックの画像を描画するために使用できる。
【０４７２】
レリーフ：これは、ウィジェットのレリーフフラグがセットされ、ウィジェットのための境界線またはレリーフを描画するために使用される場合に呼び出される。
【０４７３】
フォーカス：これは、ウィジェットがフォーカスを有する場合に呼び出される。それは、これをグラフィックで示すために使用できる。
【０４７４】
強調表示：これは、ウィジェットが強調表示される場合に呼び出される。それは、これをグラフィックで示すために使用できる。
【０４７５】
抽象クラスＭｈｗＷｇｔＬｏｏｋが定義され、以下を含む。ＷｇｔＣｏｒｅＬｏｏｋＣｌａｓｓＭｅｔｈｏｄ、ＷｇｔＣｏｒｅＬｏｏｋＣｌａｓｓＦｉｌｅｄ、ＷｇｔＣｏｒｅＬｏｏｋＣｌａｓｓ、ＷｇｔＣｏｒｅＬｏｏｋＰａｒｔ、及びＷｇｔＣｏｒｅＬｏｏｋＯｂｊｅｃｔ。
【０４７６】
これらを以下に説明する。
【０４７７】
【表２０】
2014089751.tif 000022
【０４７８】
【表２１】
2014089751.tif 000023
【０４７９】
【表２２】
2014089751.tif 000024
【０４８０】
（Ｃａｒｄ８、Ｃａｒｄ１６等のデータ型は、示されているビット数を有する数型のエイリアスである。例えば、Ｃａｒｄ８は、「ｃｈａｒ」に同等であり、Ｃａｒｄ１６は「ｓｈｏｒｔ」に同等である等。）
各描画メソッドは、オブジェクトタイプごとに同一である。メソッドごとに、または少なくとも一定のメソッドに異なるメソッドを必要とする外観について、外観クラス内のメソッドは、ウィジェット型を特定し、それに応じて動作しなければならない。
【０４８１】
ＤｒａｗＮｏｔｈｉｎｇ（）メソッドの目的に注意する。それは、呼び出されるとＯＫを戻すだけである。一定の特徴は、必ずしも指定された外観で実現されない。ＷＧＴが必ずしも指定関数の存在を試験しなくてもよいように、あらゆる実現されていない関数は、このメソッドを指さなければならない。
【０４８２】
Ｍａｓｋにも注意されたい。これは、それぞれの要素が前記メソッドの１つに対応する、私用の読取専用ブールアレイである。要素が１に設定される場合には、対応するメソッドが再定義される。それ以外の場合、メソッドは再定義されない。このようにして、それが希望する場合には、ＷＧＴが、それが呼び出さなければならないメソッドを単一動作で実行することができる。
【０４８３】
外観クラスは、任意の外観定義とＷＧＴの間のインタフェースを定義するために使用される。ＷＧＴは、必要とされる外観を表示するためにこれらのメソッドだけを使用する。追加の機能性が外観に必要とされる場合、それは拡張された外観構造の中に組み込むことができるが、これらのメソッド／パラメータを考慮に入れるかどうかはアプリケーションにより、ＷＧＴによるのではない。このようにして、追加属性及びメソッドが追加できる。
【０４８４】
派生した外観構造は、すべてのこれらのメソッド及び属性を含まなければならず、それは独自のものも追加できる。ＷＧＴは、ＭｈｗＷｇｔＬｏｏｋ構造に定義されるそれらのメソッドを考慮に入れるだけだろう。
【０４８５】
ＭｈｗＷｇｔＬｏｏｋＷｇｔクラスをここで説明する。
【０４８６】
既存のアプリケーションが、ＷＧＴの修正済みバージョンと互換性のあるままとなるために修正される必要がないように、ＷＧＴオブジェクトが現在有する外観を定義する基本的な外観クラスが、ＷＧＴによって作成、具体化される。
【０４８７】
それはＭｈｗＷｇｔＬｏｏｋのサブクラスであり、ＭｈｗＷｇｔＬｏｏｋＷｇｔと呼ばれる。このクラスが初期化されると、構造の中のポインタのすべての値が、ＷＧＴによって定義されるメソッドの点に設定される。
【０４８８】
この基本的なクラスは、他にないも含まない―それはＷＧＴが現在提供する外観を定義するにすぎない。
【０４８９】
【表２３】
2014089751.tif 000025
【０４９０】
ＷＧＴ初期化に関して、ＭｈｗＷｇｔＬｏｏｋｗｇｔクラスは、ＷＧＴ起動時に作成されなければならない。ＷＧＴは、このようにして、アプリケーションが別の外観を指定しない場合にこれらのメソッドにアクセスできるだろう。ｇ＿ＴｈｅＤｅｆａｕｌｔＬｏｏｋグローバル変数（後述される）は、当初この外観での点に設定されなければならない。
【０４９１】
新しい外観を定義し、デフォルトの外観を設定するプロセスを、ここで説明する。
【０４９２】
ＷＧＴは、新しい外観オブジェクトを定義するまたは具体化する担当ではない。アプリケーションは、これを自ら行わなければならない。作成されるすべての外観オブジェクトは、ＭｈｗＷｇｔＬｏｏｋ構造で除去可能でなければならない。以下の外観の管理を参照すること。
【０４９３】
デフォルトの外観に関して、フィールド
MhwWgtLook        *DefaultLook
が、このコンテキストから作成されるあらゆる新しいオブジェクトに適用されるＭｈｗＷｇｔＬｏｏｋのインスタンスを指すＭｈｗＷｇｔＣｏｎｔｅｘｔオブジェクトに追加されなければならない。新しいＷＧＴコンテキストが作成されると、このフィールドはＷｇｔＢａｓｉｃＬｏｏｋの点に設定されなければならない。
【０４９４】
コンテキストのためのデフォルト外観を設定することに関して、パブリックメソッド：
MgwWgtSetDefaultLook(MhwWgtContext,  aContext,  MhwWqtLook  aLook)
が、ａＬｏｏｋでの点にａＣｏｎｔｅｘｔ内のＤｅｆａｕｌｔＬｏｏｋフィールドを設定するために提供される。
【０４９５】
外観をオブジェクトに関連付けるためには、以下の属性が、コアクラスのｃｏｒｅＡｔｔｓ構造に追加される。
MhwWgtLook    *Look
この属性は、このようにして作成されるオブジェクトごとに作成される。オブジェクトが具体化されるたびに、外観はＤｅｆａｕｌｔＬｏｏｋグローバル変数での点に設定される。
【０４９６】
２つの新しいパブリックメソッドＭｈｗＷｇｔＳｅｔＸＸＸＡｔｔｓＬｏｏｋ（ＭｈｗＷｇｔＷｉｄｇｅｔ  ａｎＯｂｊｅｃｔ、ＭｈＷＷｇＬｏｏｋ  ａＬｏｏｋ）及びＭｈｗＷｇｔＧｅｔＸＸＸＡｔｔｓＬｏｏｋ（ＭｈｗＷｇｔＷｉｄｇｅｔ  ａｎＯｂｊｅｃｔ、ＭｈｗＷｇｔＬｏｏｋ  ＊ａＬｏｏｋ）が、オブジェクトと関連付けられる外観インスタンスを変更できるようにするためにコアクラスに追加されなければならない。
【０４９７】
外観の管理をここで説明する。
【０４９８】
ＷＧＴは、外観管理を提供しない。デフォルト以外の外観を使用するためには、アプリケーションは、最初に、１つまたは複数の外観クラスが具体化、初期化されてから、それが新しいＷＧＴオブジェクトを作成するたびにＭｈｗＷｇｔＳｅｔＣｏｒｅＡｔｔｓＬｏｏｋ（）メソッドを使用し、オブジェクトを所望される外観と関連付けることを保証しなければならない。それがすべての将来のウィジェットのために指定される外観を使用することを希望する場合、それは、前述されたＭｈｗＷｇｔＳｅｔＤｅｆａｕｌｔＬｏｏｋ（）メソッドを使用できる。
【０４９９】
デフォルトによって定義される外観以外の任意の外観を使用することを希望するアプリケーションは、外観を作成、具体化する担当である。発明の別の実施形態では、アプリケーションは外観を遠隔でダウンロードしてよい。ただし、この場合、アプリケーション自体が、ＭｈｗＷｇｔＬｏｏｋから派生する必要とされるクラスを供給しなければならない。
【０５００】
外観は、それを使用するすべてのウィジェットが破壊されるまで、それを作成したアプリケーションによって破壊されてはならない。これは、「クライアント」の数をカウントするために、ｒｅｆＣｏｕｎｔｅｒフィールドの追加を必要とする。
Look=MhwNewLook()
MhwLookRef(look);
.
.
.
MhwLookUnref(look);
Look=0;
これは、自由な（外観）を置換する。外観は、そのｒｅｆＣｏｕｎｔｅｒフィールドが０に等しいときに実際に破壊されるだろう。
SetXxxLook(widget,  look)  {
If(widget->core.look)
MhwLookUnref(widget->core.look);
widget->core.look=look;
if(look)
MhwLookRef(look);
}
外観を実現するためのＡＰＩのＷＧＴモジュールリストが、ここに示される。
【０５０１】
【表２４】
2014089751.tif 000026
【０５０２】
Ｌｏｏｋ／ＬｏｏｋＰｉｘｍａｐモジュールを、ここでさらに詳細に説明する。
【０５０３】
ＭｈｗＷｇｔＬｏｏｋＰｉｘｍａｐクラスは、前述されたＭｈｗＷｇｔＬｏｏｋクラスから派生する。本質的には、それは、前述されたように、必要とされるサイズのグラフィック画像を作成するために各構成要素の多様な要素を構築することによって動作する。
【０５０４】
これらの画像は、以下のために使用される。つまり、ボタンの背景、レリーフ（すなわち、例えばテキスト領域のアクティブなゾーンの回りの境界線）、選択肢構成要素の記号、チェックボックス、スライダ、及びスライダリフトである。
【０５０５】
図４０を参照すると、初期化時間を短縮するために、画像は圧縮されないが、可能な限り占有される空間を最小限に抑えるために設計される特殊フォーマットに記憶される。各ピクセル（２１５２）の色は、現在のカラーマップ中の色のインデックス数（２１５１）である単一バイトで記述される。図４０は、例のバッファ、つまり４×４画像（２１５３）を含む画像を示す。
【０５０６】
図４０の画像（２１５３）は、以下のとおりに記憶されるだろう。
Card8  slidLiftSeVrImage4[4][4]  =
｛
｛  ０，  ０，  ０，  １｝，
｛  ０，  ０，  １，  ２｝，
｛  ０，  １，  ２，  ３｝，
｛  １，  ２，  ３，  ４｝，
｝；
ＬｏｏｋＰｉｘＭａｐ画像構造を、ここで説明する。
【０５０７】
画像バッファのサイズを特定するために、画像の幅と高さとともに、前述された画像バッファを含む構造体ＬｏｏｋＰｉｘｍａｐＩｍｇｅが定義される。後述されるこの構造体は、グラフィック要素ごとにデータを含むために使用される。
typedef struct
{
Card8  *imageData;    Buffer  containing  the  iamge.  It  is  a  two
dimensional  array  of  Card8,  each  element  of
which  contains  the  index  number  in  the  palette
of  the  colour  to  be  displayed  at  the  position
in  the  array.
Card8  *maskData;    Buffer  containing  the  mask  It  is  a  one
dimensional  array  of  Card8,   with  one  bit  per
pixel.  (Format  as  returned  by  the  Image
module).
Card16  width;        Width  of  the  image.
Card16  height;      Height  of  the  image.
Card8  isOpaque;      0  if  image  contains  any  transparent  elements,
1  if  entirely  opaque.
}
LookPixmapImage;
指定された種類の要素について、それらは概して同じであるだろうが、画像は様々なサイズである場合がある。ただし、中心要素（ｘｘｘｘｘＣ）は、多くの場合サイズ１×１である。ＭｈｗＷｇｔＬｏｏｋＰｉｘｍａｐＡｌｌＩｍａｇｅｓ構造は、後述されるように、すべてのピクチャ要素をともに分類する。
【０５０８】
【表２５】
2014089751.tif 000027
【０５０９】
【表２６】
2014089751.tif 000028
【０５１０】
【表２７】
2014089751.tif 000029
【０５１１】
本項は、様々な外観の集合をウェブブラウザに適用できるようにするために作成されたＬｏｏｋＰｉｘｍａｐクラスを含むＬｏｏｋＰｉｘｍａｐモジュールを説明する。
【０５１２】
このモジュールは以下のソースファイルを含む：ＭｈｗＷｇｔＬｏｏｋＰｉｘｍａｐ．ｈ、ＭｈｗＷｇｔＬｏｏｋＰｉｘｍａｐＳｔｒｕｃｔ．ｈ、ＷｇｔＬｏｏｋＰｉｘｍａｐＣｌａｓｓ．ｃ、ＷｇｔＬｏｏｋＰｉｘｍａｐＰｒｉｖａｔｅ．ｃ、ＭｈｗＷｇｔＬｏｏｋＰｉｘｍａｐＩｍａｇｅｓ．ｈ、ＭｈｗＷｇｔＬｏｏｋＰｉｘｍａｐＩｍａｇｅｓ２．ｈ、ＭｈｗＷｇｔＬｏｏｋＰｉｘｍａｐＩｍａｇｅｓ３．ｈ、ＭｈｗＷｇｔＬｏｏｋＰｉｘｍａｐＩｍａｇｅｓ４．ｈ、ＭｈｗＷｇｔＬｏｏｋＰｉｘｍａｐＩｍａｇｅｓ５．ｈ、及びＭｈｗＷｇｔＬｏｏｋＰｉｘｍａｐＩｍａｇｅｓ６．ｈ。
【０５１３】
ＬｏｏｋＰｉｘｍａｐオブジェクトを作成し、使用する好ましいメソッドの詳細を含むＬｏｏｋＰｉｘｍａｐモジュールを説明する。
【０５１４】
ウィジェットの作成及び管理のためにＷＧＴを使用する任意のソフトウェアが、ＷＧＴウィジェットに代替の外観を提供するためにＬｏｏｋＰｉｘｍａｐモジュールを使用できる。アプリケーションがＬｏｏｋＰｉｘｍａｐ外観を使用するために、ＬｏｏｋＰｉｘｍａｐオブジェクトが作成されなければならない。これは、以下のコードを使用して実行できる。
MhwWgtLkWebClass  PixmapLook;
MhwWgtLkWeb  PixmapLookObject;
MhwWgtLkWebAtts  LookPixmapValues;
MhwWgtError  WgtErr;
WgtErr  =  MhwWgtLkWebInitClass();
WgtErr  =  MhwWgtLkWebAttsInit(&LookPixmapValues);
WgtErr  =  MhwWgtLkWebInitDefault(&PixmapLook,  &LookPixmapValues);
PixmapLookObject  =  MhwWgtLkWebNew(&LookPixMapValues);
ここでデフォルトの外観を設定するためのメソッドが記述される。
【０５１５】
アプリケーションは、デフォルトで指定された外観オブジェクトを使用できる。デフォルトによって、デフォルトの外観はＷＧＴによって作成されるＬｏｏｋＷｇｔオブジェクトである。別のデフォルト外観を設定するために、それが前述されたようにすでに作成されていることを条件に、以下の関数を使用することができる。
MhwWgtSetDefaultLook((MhwWgtLook)PixmapLookObject);
作成されたすべてのそれ以降のＷＧＴウィジェットが、ＷＧＴデフォルトのＬｏｏｋＷｇｔとではなく、ＬｏｏｋＰｉｘｍａｐ外観クラスと関連付けられるだろう。
【０５１６】
アプリケーションは、指定された種類のウィジェット、あるいはここに説明されるように、指定されたウィジェットを選ぶまたは設定することができる。
【０５１７】
アプリケーションは、ウィジェットが作成される直前に以下の関数を呼び出すことによってオブジェクトが作成されるときに、指定されたウィジェットに対する外観を設定できる。
MhwWgtXXXAttsSetLook(MhwWgtXXXAtts*,  MhwWgtLook); 
それは、以下の関数を使用する作成後にオブジェクトの外観を設定することもできる。
MhwWgtXXXSetLook(MhwWgtXXXWidget  *,  MhwWgtLook);
（この場合ｘｘｘはウィジェットの種類―例えば、ＬＩＳＴである。）
【０５１８】
ＬｏｏｋＰｉｘｍａｐ画像を使用する方法をここで説明する。
【０５１９】
単一のＬｏｏｋＰｉｘｍａｐオブジェクトは、画像の単一の集合を使用する。ユーザは、ただ画像を変更するだけで、外観を明らかに劇的に変更することができる。
【０５２０】
ユーザは、以下の関数を呼び出すことによって指定されるＬｏｏｋＰｉｘｍａｐオブジェクトに使用される画像を変更することができる。
【０５２１】
MhwWgtLookPixmapSetImages(MhwWgtLookPixmap*,MhwWgtLookPixmapAllImages*);
は、指定されたＬｏｏｋＰｉｘｍａｐオブジェクトを使用するすべてのウィジェットに使用される画像を、指定された画像集合に設定する。
【０５２２】
MhwWgtLookPixmapSetDefaultImages(MhwWgtLookPixmap*);
は、指定されたＬｏｏｋＰｉｘｍａｐを使用してすべてのウィジェットに使用される画像をデフォルトの画像集合に設定する。
【０５２３】
ユーザは、様々なウィジェットに様々な画像を使用することを希望する場合、必要とされる画像の集合ごとにＬｏｏｋＰｉｘｍａｐオブジェクトを作成しなければならない。それから、各画像集合を適切な外観に割り当ててから、各外観を適切なウィジェットに関連付ける。
【０５２４】
ＬｏｏｋＰｉｘｍａｐモジュールのＡＰＩを、ここで図３９及び図４１を参照して説明する。
【０５２５】
以下のパブリックＡＰＩが使用できる。
【０５２６】
ＭｈｗＷｐｔＬｏｏｋＰｉｘｍａｐＳｅｔＩｍａｇｅｓ（）
プロトタイプ：
MhwWgtError  MhwWgtLookPixmapSetImages  (MhwWgtLkWeb  aLook,
MhwWgtLookPixmapAllImages*
SomeImages);
説明：
ａＬｏｏｋによって使用される画像の集合を、ｓｏｍｅＩｍａｇｅｓによって指される画像の集合に設定する。
パラメータ：
ａＬｏｏｋ      画像、ｓｏｍｅＩｍａｇｅｓを関連付けるためのＭｈｗＷｇＬｋ
Ｗｅｂオブジェクト
ｓｏｍｅＩｍａｇｅｓ      ａＬｏｏｋと関連付けるための画像の集合
Returns:
MHW_WGT_SUCCESS
【０５２７】
ＭｈｗＷｇｔＬｏｏｋＰｉｘｍａｐＳｅｔＩｍａｇｅｓＩＤ（）
プロトタイプ：
MhwWgtError  MhwWgtLookPixmapSetImagesID  (MhwWgtLkWeb  aLook,  Card8
anImageID);
説明：
ａＬｏｏｋによって使用される画像の集合を、ＭｈｗＷｇｔＬｏｏｋＰｉｘＭａｐにハードプログラミングされ、ａｎＩｍａｇｅＩＤによって特定される画像の集合に設定する。
パラメータ：
ａＬｏｏｋ  ａｎＩｍａｇｅＩＤによって特定される画像を関連付けるＭｈｗＷｇｔＬｋＷｅｂオブジェクト
ａｎＩｍａｇｅＩＤ  ａＬｏｏｋと関連付けるためのＭｈｗＷｇｔＬｏｏｋＰｉｘｍａｐでハードプログラミングされる画像の集合の識別子
Returns:
MHW_WGT_SUCCESS
【０５２８】
ＭｈｗＷｇｔＬｏｏｋＰｉｘｍａｐＳｅｔＤｅｆａｕｌｔＩｍａｇｅｓ（）
プロトタイプ：
MhwWgtError  MhwWgtLookPixmapSetDefaultImages  (MhwWgtLkWeb  aLook);
説明：
ａＬｏｏｋによって使用される画像の集合を、ＭｈｗＷｇｔＬｏｏｋＰｉｘｍａｐの中でハードプログラミングされ、識別子１によって特定される画像の集合に設定する。
パラメータ：
ａＬｏｏｋ  ａｎＩｍａｇｅＩＤによって特定される画像を関連付けるためのＭｈｗＷｇｔＬｋＷｅｂオブジェクト
Returns:
MHW_WGT_SUCCESS
【０５２９】
ＭｈｗＷｇｔＬｏｏｋＰｉｘｍａｐＬｏａｄＩｍａｇｅ（）
プロトタイプ：
MhwWgtError  MhwWgtLookPixmapLoadImages  (MhwWgtLkWeb aLook,  Int32
anElementID,  Int32  aWidth,  Int32
aHeight,  Card8*,  anImageBuffer);
説明：
現在のＭｈｗＷｇｔＬｏｏｋＰｉｘｍａｐＡｌｌＩｍａｇｅｓ構造体によって指される単一画像を、指定される画像での点に変更するために使用される。ＬｏｏｋＰｉｘｍａｐＩｍａｇｅｓ構造体を作成し、ａＬｏｏｋによって指されている現在のＭｈｗＷｇｔＬｏｏｋＰｉｘｍａｐＡｌｌＩｍａｇｅｓ構造体を、ａｎＥｌｅｍｅｎｔＩＤによって指定される要素のこのＬｏｏｋＰｉｘｍａｐＩｍａｇｅでの点に設定する。
パラメータ：
ａＬｏｏｋ      ａｎＩｍａｇｅＩＤによって特定される画像を関連付けるＭｈｗＷｇｔＬｋＷｅｂオブジェクト
ａｎＥｌｅｍｅｎｔＩＤ    変更するための要素の識別子
ａＷｉｄｔｈ    新しい画像のピクセル単位の幅
ａＨｅｉｇｈｔ    新しい画像のピクセル単位の高さ
ａｎＩｍａｇｅＢｕｆｆｅｒ    新しい画像データを含むバッファ
Returns:
MHW_WGT_SUCCESS
【０５３０】
ＬｏｏｋＰｉｘｍａｐＭａｋｅＩｍａｇｅＦｒｏｍＥｌｅｍｅｎｔｓ（）
プロトタイプ：
MhwWgtError  LookPixmapMakeImageFromElements
(LookPixmapImage* elemN,
LookPixmapImage*  elemE,
LookPixmapImage*  elemW,
LookPixmapImage*  elemS,
LookPixmapImage*  elemNW,
LookPixmapImage*  elemE,
LookPixmapImage*  elemSW,
LookPixmapImage*  elemSE,
LookPixmapImage*  elemC,  Card16  anX,
Card16  aY,  Card16  aWidth,  Card16
aHeight,  MHWWindowID  aWindow,
LookPixmapDrawMode  aDrawMode;
説明：
ｅｌｅｍＸの９個の画像を採取し、それらを指定されたＭＨＷウィンドウに描画する。画像を構築するための規則は、ａＤｒａｗＭｏｄｅによって指定される（現在はＭＨＷ＿ＷＧＴ＿ＬＩＫＷＥＢ＿ＤＲＡＷ＿ＮＯＲＭＡＬだけが存在する）。最終画像は、左上角が（ａｎＸ、ａＹ）に配置され、ａＷｉｄｔｈ×ａＨｅｉｇｈｔｎサイズであるウィンドウ内に描画される。要素の１つまたは複数がゼロサイズを有する場合（ｅｌｅｍＸＸ．ｗｉｄｔｈまたはｅｌｅｍＸＸ．ｈｅｉｇｈｔのどちらかがゼロである）、この要素は描画されない。
パラメータ：
ｅｌｅｍＮ，ｅｌｅｍＥ，ｅｌｅｍＷ，ｅｌｅｍＳ，ｅｌｅｍＮＷ，ｅｌｅｍＮＥ，ｅｌｅｍＳＷ，ｅｌｅｍＳＥ，ｅｌｅｍＣ：  それぞれ、上部、右、左、低部、左上角、
右上角、左下角、右下角、及び真中にある描画するための画像
ａｎＸ：最終画像を描画するための、ウィンドウ、ａＷｉｎｄｏｗ内のｘ位置。
ａＹ：最終画像を描画するための、ウィンドウ、ａＷｉｎｄｏｗ内のｙ位置。
ａＷｉｄｔｈ：新しい画像のピクセル単位の幅
ａＨｅｉｇｈｔ：新しい画像のピクセル単位の高さ
ａＷｉｎｄｏｗ：構築された画像を描画するウィンドウ
ａＤｒａｗＭｏｄｅ：画像を構築するためのモード。
ＭＨＷ＿ＷＧＴ＿ＬＫＷＥＢ＿ＤＲＡＷ＿ＮＯＲＭＡＬ：並列表示なしで４つ
の角（２２００、２２０１、２２０２、２２０３）に、ＮＷ（２１００）要素、
ＮＥ（２１０１）要素、ＳＷ（２１０２）要素及びＳＥ（２１０３）要素を入
れる。Ｎ要素とＳ要素を水平に並列表示する。Ｗ要素およびＥ要素を垂直に並
列表示する。Ｃ要素を水平に且つ垂直に並列表示する。それはあらゆる画像サ
イズについて働くが、中心領域（２２０８）が矩形であるならば、正しく領域
を並列表示することが保証されるにすぎない。
Returns:
MHW_WGT_SUCCESS
【０５３１】
Ｍｈｗ．ａｗｔ Ｊａｖａインタフェースパッケージをここで説明する。
【０５３２】
３つのＪａｖａクラスは、ＷＧＴに定められる外観機構がｊａｖａアプリケーションによって利用できるよう作成された。これらは、ｍｈｗ．ａｗｔ．Ｌｏｏｋ、ｍｈｗ．ａｗｔ．ＷｇｔＬｏｏｋ、及びｍｈｗ．ａｗｔ．ＰｉｘｍａｐＬｏｏｋである。
【０５３３】
外観クラスは、前述されたクラスＭｈｗＷｇｔＬｏｏｋに対応する抽象クラスである。
ＷｇｔＬｏｏｋクラスは、ＷＧＴクラスＭｈｗＷｇｔＬｏｏｋＷｇｔのインスタンスを作成し、取り扱うために使用される。
ＰｉｘｍａｐＬｏｏｋクラスは、ＷｇｔＬｏｏｋクラスによって使用される画像を記憶するために使用される。
【０５３４】
構成子の詳細で始まる、Ｍｈｗ．ａｗｔ．ＰｉｘｍａｐＬｏｏｋ  ＡＰＩをここで説明する。
【０５３５】
ＰｉｘｍａｐＬｏｏｋ
public  PixmapLook()
ＰｉｘｍａｐＬｏｏｋオブジェクトの新しいインスタンスを作成し、画像がデフォルトの画像（ＩＤ＝１）に初期化される。
【０５３６】
ＰｉｘｍａｐＬｏｏｋ
ＰｉｘｍａｐＬｏｏｋオブジェクトの新しいインスタンスを作成し、画像がＩｍａｇｅＩＤによって指定される画像に初期化される。
【０５３７】
メソッドをここで説明する。
【０５３８】
ＳｅｔＩｍａｇｅｓ
Public  void    SetImages()
このＰｉｘｍａｐＬｏｏｋオブジェクトの現在の画像をデフォルト（ＩＤ＝１）に設定する。
【０５３９】
ＳｅｔＩｍａｇｅｓ
Public  void  SetImages  (int  imageID)
このＰｉｘｍａｐＬｏｏｋオブジェクトの現在の画像を、ｉｍａｇｅＩＤによって指定される画像に設定する。
【０５４０】
ＬｏａｄＩｍａｇｅ
Public  void    LoadImages    (int  elementID,
int  width,
int  height,
byte[]  buffer)
指定された画像要素をロードする。それぞれのＰｉｘｍａｐＬｏｏｋオブジェクトが、それに関連付けられる（９４）の画像の集合を有する。これらの画像は、以下のようにグラフィック構成要素要素を表す：０ｒｅｌｎｏＮＷ、１ｒｅｌｎｏＳＷ、２ｒｅｌｎｏＮＥ、３ｒｅｌｎｏＳＥ、４ｒｅｌｎｏＮ、５ｒｅｌｎｏＷ、６ｒｅｌｎｏＥ、７ｒｅｌｎｏＳ、８ｒｅｌｎｏＣ、９ｒｅｌｆｏＮＷ、１０ｒｅｌｆｏＳＷ、１１ｒｅｌｆｏＮＥ、１２ｒｅｌｆｏＳＥ、１３ｒｅｌｆｏＮ、１４ｒｅｌｆｏＷ、１５ｒｅｌｆｏＥ、１６ｒｅｌｆｏＳ、１７ｒｅｌｆｏＣ、１８ｒｅｌｈｉＮＷ、１９ｒｅｌｈｉＳＷ、２０ｒｅｌｈｉＮＥ、２１ｒｅｌｈｉＳＥ、２２ｒｅｌｈｉＮ、２３ｒｅｌｈｉＷ、２４ｒｅｌｈｉＥ、２５ｒｅｌｈｉＳ、２６ｒｅｌｈｉＣ、２７ｒｅｌｆｈＮＷ、２８ｒｅｌｆｈＳＷ、２９ｒｅｌｆｈＮＥ、３０ｒｅｌｆｈＳＥ、３１ｒｅｌｆｈＮ、３２ｒｅｌｆｈＷ、３３ｒｅｌｆｈＥ、３４ｒｅｌｆｈＳ、３５ｒｅｌｆｈＣ、３６ｂｕｔｎｏＮＷ、３７ｂｕｔｎｏＳＷ、３８ｂｕｔｎｏＮＥ、３９ｂｕｔｎｏＳＥ、４０ｂｕｔｎｏＮ、４１ｂｕｔｎｏＷ、４２ｂｕｔｎｏＥ、４３ｂｕｔｎｏＳ、４４ｂｕｔｎｏＣ、４５ｂｕｔｆｏＮＷ、４６ｂｕｔｆｏＳＷ、４７ｂｕｔｆｏＮＥ、４８ｂｕｔｆｏＳＥ、４９ｂｕｔｆｏＮ、５０ｂｕｔｆｏＷ、５１ｂｕｔｆｏＥ、５２ｂｕｔｆｏＳ、５３ｂｕｔｆｏＣ、５４ｂｕｔｈｉＮＷ、５５ｂｕｔｈｉＳＷ、５６ｂｕｔｈｉＮＥ、５７ｂｕｔｈｉＳＥ、５８ｂｕｔｈｉＮ、５９ｂｕｔｈｉＷ、６０ｂｕｔｈｉＥ、６１ｂｕｔｈｉＳ、６２ｂｕｔｈｉＣ、６３ｂｕｔｆｈＮＷ、６４ｂｕｔｆｈＳＷ、６５ｂｕｔｆｈＮＥ、６６ｂｕｔｆｈＳＥ、６７ｂｕｔｆｈＮ、６８ｂｕｔｆｈＷ、６９ｂｕｔｆｈＥ、７０ｂｕｔｆｈＳ、７１ｂｕｔｆｈＣ、７２ｃｈｏｉｃｅ、７３ｃｈｃｋ１ｎｏ、７４ｃｈｃｋ１ｓｅ、７５ｃｈｃｋ１ｆｏ、７６ｃｈｃｋ１ｆｓ、７７ｃｈｃｋ２ｎｏ、７８ｃｈｃｋ２ｓｅ、７９ｃｈｃｋ２ｆｏ、８０ｃｈｃｋ２ｆｓ、８１ｓｌｉｄＮｅＶｒ、８２ｓｌｉｄＥＶｒ、８３ｓｌｉｄＳｅＶｒ、８４ｓｌｉｄＳｗＨｒ、８５ｓｌｉｄＳＨｒ、８６ｓｌｉｄＳｅＨｒ、８７ｓｌｉｄＳｅＶｒＨｒ、８８ｓｌｉｄＬｉｆｔＮｅＶｒ、８９ｓｌｉｄＬｉｆｔＥＶｒ、９０ｓｌｉｄＬｉｆｔＳｅＶｒ、９１ｓｌｉｄＬｉｆｔＳｗＨｒ、９２ｓｌｉｄＬｉｆｔＳＨｒ、９３ｓｌｉｄＬｉｆｔＳｅＨｒ。
ｗｉｄｔｈは、渡される画像の幅を指定する。
ｈｅｉｇｈｔは、渡される画像の高さを指定する。
ｂｕｆｆｅｒは、画像データを含む。これはバイトアレイの形をしており、それぞれのバイトが、ピクセルごとに使用されるカラーマップインデックスを指定する。ピクセル（ｘ、ｙ）に使用されるインデックスはｂｕｆｆｅｒ［（ｙ＊ｗｉｄｔｈ）＋ｘ］である。
【０５４１】
ＭａｋｅＩｍａｇｅＦｒｏｍＥｌｅｍｅｎｔｓ
public  void    MakeImageFromElements  (int[]  widths,
Int[]  height,
byte[]  []  buffers.
int  anX,
int  aY,
iny  aWigth,
int  aHeight,
java.awt.Component  aComponent)
９つの要素（Ｎ、Ｅ、Ｗ、Ｓ、ＮＷ、ＮＥ、ＳＷ、ＳＥ、Ｃ）に基づいて画像を構築し、左上角が（ａｎＸ、ａＹ）にあり、サイズがａＷｉｄｔｈｘａＨｅｉｇｈｔである構成要素ａＣｏｍｐｏｎｅｎｔと関連付けられるウィンドウでそれを描画する。画像バッファは、２次元アレイとして渡され、一方の次元が画像番号（Ｎ、Ｅ、Ｗ、Ｓ、ＮＷ、ＮＥ、ＳＷ、ＳＥ、Ｃに対応する０〜８）を指定し、他方がデータを含む。各バッファの幅及び高さは、アレイ幅及び高さで指定される。
【０５４２】
ＤｏｗｎｌｏａｄＬｏｏｋＤｉｒ
public  java.lang.String  DownloadLookDir()
ＭＰＥＧストリームから「外観」ディレクトリをダウンロードする。新行（ｎｅｗｌｉｎｅｓ）によって区切られてダウンロードできる外観画像の各集合に関する情報を含む文字列を戻す。タイトル（０〜ｎ−１）の行番号は、関数ＤｏｗｎＬｏａｄＬｏｏｋＩｍａｇｅｓ（ｉｎｔ  ＩｍａｇｅＳｅｔ）とともに使用される識別子（ＩｍａｇｅＳｅｔ）に一致する。
【０５４３】
ディレクトリは、事実上、戻される文字列を含む簡略なテキストファイルである。ファイル経路は、ソース――現在は／ｈｏｍｅ／ｕｓｅｒｓ／ｍｓｔｏｄｄａｒ／ｕｍｐｌｕｓ／ｕｔｉｌ／ｌｏｏｋｓ／ｉｍａｇｅｓ．ｄｉｒでハード符号化される。これは、適宜に変更できる。このようにして、これはＭＰＥＧストリームから自アクティブにダウンロードするために、デコーダ内で使用できる。
【０５４４】
ファイルのフォーマットは以下のとおりである。
<Image  Set  Title  1><\t><  Image  Set  Description><\t><URL  Resource><\t><  URL  Review><\n>
<Image Set  Title  2><\t><  Image  Set  Description><\t><URL  Resource><\t><  URL  Review><\n>
<Image  Set  Title  3><\t><  Image  Set  Description><\t><URL  Resource><\t><  URL  Review><\n>
<Image  Set  Title  4><\t><  Image  Set  Description><\t><URL  Resource><\t><  URL  Review><\n>
うまくいかない場合には、“”を戻す。
【０５４５】
ＤｏｗｎｌｏａｄＬｏｏｋＩｍａｇｅｓ
public void
DownloadLookImages(int ImageSet)
ＤｏｗｎＬｏａｄＬｏｏｋＤｉｒ（）で戻される項目の１つの行番号（０〜ｎ−１）によって特定されるＭＰＥＧストリームからの画像の新しい集合をダウンロードし、それらをこの外観に帰す。
【０５４６】
データを含むファイルは以下のフォーマットである。
ＷＷＷＷＨＨＨＨＷＷＷＷＨＨＨＨ．．．（メソッドＬｏａｄＩｍａｇｅ（）と同じ順序の）すべて９４の画像の幅と高さの１０進値を含む４バイト文字列（先行する空間）の系列。画像ごとのデータバッファが、再びＬｏａｄＩｍａｇｅ（）と同じフォーマットで従う。画像間の整列が行われず、次の画像の始まりは、前の画像に続くバイトで開始する。
【０５４７】
ファイル経路は、ソース――現在は／ｈｏｍｅ／ｕｓｅｒｓ／ｍｓｔｏｄｄａｒ／ｍｈｐｌｕｓ／ｕｔｉｌ／ｌｏｏｋｓ／ｉｍａｇｅｓ．＜ＩｍａｇｅＳｅｔ＞内でハード符号化される。これは、適宜に変更できる。これは、このようにして、ＭＰＥＧストリームから自アクティブにダウンロードするためにデコーダ内で使用することができる。
public  void  DownloadLookImages(String  ImageURL)
指定されるＵＲＬによって特定されるＭＰＥＧストリームから画像の新しい集合をダウンロードし、それらをこの外観に帰す。
データを含むファイルは、前述されたフォーマットである。
【０５４８】
ファイルの構造は、明快さのためにＣ構文に後述される。
【０５４９】
【表２８】
2014089751.tif 000030
【０５５０】
【表２９】
2014089751.tif 000031
【０５５１】
【表３０】
2014089751.tif 000032
【０５５２】
【表３１】
2014089751.tif 000033
【０５５３】
【表３２】
2014089751.tif 000034
【０５５４】
【表３３】
2014089751.tif 000035
【０５５５】
【表３４】
2014089751.tif 000036
【０５５６】
例えば：
幅      高さ          幅      高さ  
【０５５７】
【表３５】
2014089751.tif 000037
【０５５８】
【表３６】
2014089751.tif 000038
【０５５９】
等。
【０５６０】
ｒｅＤｒａｗＡｌｌ
public  void  reDrawAll()
なくなるまで、フォーカスのあるウィジェット、それから親を見つけ出す。それから、上部ウィンドウが非可視及び可視に再び設定される。それから、ウィンドウ全体が再描画される必要がある。
【０５６１】
１つまたは複数のグラフィックオブジェクトを表示するため、複数のこのようなオブジェクト間でナビゲートするため、あるいはユーザから入力を受け取るための前述された多様なメソッドは、放送供給業者からの放送の受信の文脈で、おもにではあるが独占的ではなく他の領域にも等しく適用されてよい。一般的には、ユーザとの視覚的な対話を含むセットトップボックスの機能性がこのようなメソッドを利用してよい。
【０５６２】
例えば、おそらくサブチェーンが取り付けられているアイコンのナビゲート可能なチェーンは、ユーザが商品を表示、価格を見る、発注する、それ以外の場合アプリケーションと対話することができるようにするために、ホームショッピングアプリケーションで利用できるだろう。発注するために使用されるグラフィックオブジェクトは、前述された方法で、強調表示時に、自アクティブに購入するための記号（例えば、ドルコード＄）とこれまで費やされた額を表すテキスト、すなわち加入者の言語ではワード「購入」の間で、「フリップ」する可能性がある。代わりに、またはさらに、ワード「購入」を加入者の言語の中に含むグラフィックオブジェクトは、「購入」アイコンが選択されるたびに表示し、「ハングオフする」ためにあらゆるサブチェーンを分岐に提供する。
【０５６３】
前記例の「購入」アイコンは、ユーザがナビゲートできるチェーンの中にアイコンの論理的なシーケンスを提供するために、クリックされると、これまで行われた購入品のリストを表示するあるアイコン、及びクリックされると、購入されたばかりの製品の納品オプションを設定する別のアイコンの隣に置かれる。「購入」アイコンが選択されると、サブチェーンは、さらに高価なアイテムのケースに様々なクレジット計画を含むことのある多様な補助的なオプションと表示されるだろう。納品のために番地住所などのユーザから必要とされる任意のテキスト情報が、仮想キーボードで入力できるだろう。
【０５６４】
電子番組表では、様々なチャネル、テーマ及び時刻と日付を対話によりブラウズし、表示するために類似する方法が利用できるだろう。追加カスタマイズが、ユーザの優先順位に従ってチェーン内でグラフィックオプションを配列し直すために可能である場合がある。チャネルのチェーンのケースでは、ユーザの好ましいチャネルは、チェーンの先頭として分類できるだろう。このような優先順位は、ユーザによって示されるか、あるいはプログラムによって演繹されるだろう。
【０５６５】
前述されたメソッドのためのその他のアプリケーションは、オンデマンドのオンラインカタログ、ニュース及び天気サービス、ゲーム、及びセットトップボックスの一般的な管理（その構成の管理等）を含む。ゲームのケースでは、表／裏フリップフロップ効果が、必ずしも追加のメソッドを作成することを必要としなくても、ゲーム内動画を提供するために使用でき、仮想キーボードがさらに上級の種類のゲームのために制御装置の代替形式として使用できるだろう。
【０５６６】
リモートコントローラを使用する対話のすべてのメソッドが、ここに説明されるように、リモートコントローラのボタンをシミュレートする（例えば、キーボード上の番号０〜９、矢印キー及びリターンキーを使用する）、または直接的に（例えば、ボタンをクリックするためにマウスを、仮想キーボードを使用する代わりにテキストを直接的に入力するためにキーボードを使用する）のどちらかにより、マウス（またはローラボールまたはジョイスティックなどのその他の指向性制御装置）及び／またはキーボード（または複数のキーを有するその他のデバイス）の使用によって代用または補足されてよいことも理解されなければならない。
【０５６７】
前述された仮想キーボードは、例えば、ゲーム機または移動電話などの複数のキーを有する任意のデバイスで実現されてよい。後者では、仮想キーボードは、実質的には説明されたように電話の画面上で（十分に大きなディスプレイを備えた電話で）、あるいは圧縮された形式で（より小さなディスプレイを備えた電話で）表示できるだろう。仮想キーボードのこのような圧縮は、好ましくは、左キー、右キー、上キー及び／または下キー（あるいは、例えばローラ方指向性制御装置のケースではその同等物）を押すことによってアクセスされることのある文字または文字の種別の示唆により、一度に１つだけの文字の数ブロックを示すことを伴なう可能性がある。圧縮された仮想キーボードは、特にキーボードを捧持するために使用できる空間がほとんどない場合に、その他のアプリケーションで使用されてよい。
【０５６８】
用語「チェックボックス」は、例えば、様々な状態、好ましくは「チェック済み」と「未チェック」に相当する２つの状態であるが、おそらく３つ以上の状態を表示することができ、ユーザによってクリックまたは選択されたときに、その状態を一貫した様式で改変してよい円形などの任意の形状のグラフィックオブジェクトを指してよい。「チェック済み」状態は、照合印、×印、またはボックス上のその他の装飾によって示されてよい。
【０５６９】
参照を容易にするために、個々に使用される以下の用語は、以下の好ましい意味を有する。
【０５７０】
ＨＴＭＬ：ハイパーテキストマーク付け言語、つまりインターネットで交換される文書を記述する言語。文書は、サイト、フォーマット情報、サウンド及びピクチャ等に対する参考資料を含んでよい。
【０５７１】
ＨＴＴＰ：ハイパーテキスト転送プロトコル、つまりＨＴＭＬ文書及びＨＴＭＬ文書を表示するナビゲーションアプリケーションを保持するインターネットサーバ間で通信するためのプロトコル。
【０５７２】
ＭＰＥＧ−２：モーションピクチャエキスパートグループ、つまり動画画像及びサウンドをライルタイムで符号化する方法。
【０５７３】
ＰＰＰ：ポイントトゥポイントプロトコル、つまり２台のコンピュータをモデムを介してネットワーク化できるようにする距離アクセス通信プロトコル。
【０５７４】
ＰＲＯＸＹ  ＳＥＲＶＥＲ：安全なインターネット接続を可能にし、ＨＴＴＰ要求とＦＴＰ要求もバッファに入れるサーバ上に位置しているアプリケーション。
【０５７５】
ＳＥＳＳＩＯＮ：接続の種類、または指定された時間でのメモリ内のアプリケーションのインスタンス。
【０５７６】
ＵＲＬ：全域資源位置指示子、つまりインターネット上でファイルまたはリソースの場所を突き止めるために使用するためのアドレス。サイトへのリンクは、ウェブページに含まれるリソースのアドレスを指定する。
【０５７７】
ＷＷＷ：ワールドワイドウェブ、つまりローカル文書またはリモート文書を使用するインターネット網。ウェブ文書はウェブページであり、ページ内でのリンクが、ローカルネットワークに位置しているのか、リモートネットワークに位置しているのかに関係なく、様々なページ間の及び様々な主題の間でのナビゲーション可能にする。
【０５７８】
ＧＵＩ：グラフィックユーザインタフェース
ＷＧＴ：ウィジェットツールキット
本発明が、純粋に例証して前述されてきた、及び発明の範囲内で詳細の修正を加えることができることが理解されるだろう。
【０５７９】
説明で開示されるそれぞれの特徴、及び（該当する場合）請求項と図面は、無関係に、または任意の適切な組み合わせで提供されてよい。
【０５８０】
前述のいずれかまたはすべてにおいて、本発明のある特徴はコンピュータソフトウェアを使用して実現されている。ただし、言うまでもなく、これらの特徴のいずれかが、ハードウェアまたはハードウェア及びソフトウェアの組み合わせを使用して実現されてよいことが、熟練者に明らかとなるだろう。さらに、ハードウェア、コンピュータソフトウェア等によって実行される関数は、電気信号及び類似信号で、または電気信号及び類似信号を使用して実行されることが容易に理解されるだろう。
【０５８１】
情報の記憶に関する特徴は、適切な記憶場所または記憶装置によって実現されてよい。情報の処理に関する特徴は、ソフトウェア内またはハードウェア内の、あるいは２つの組み合わせで、適切なプロセッサまたは制御手段によって実現されてよい。
【０５８２】
前述のいずれかまたはすべてにおいて、発明は、以下の形式の任意の、いくつかのまたはすべてで実現されてよい。つまり、それはコンピュータシステムを動作する方法で実現されてよく、それはコンピュータシステム自体で実現されてよく、それはそのシステムを動作する方法でプログラミングされるか、あるいはそのシステムを動作する方法を実行するために適応されるまたは配列されるときに、コンピュータシステムで実現されてよい。及び／またはそれは、システムを動作する方法に従って動作するように適応されるそれに記録されるプログラムを有するコンピュータ読み取り可能記憶媒体で実現されてよい。
【０５８３】
ここに全体的に使用されるように、用語「コンピュータシステム」は、「コンピュータ」、「システム」、「装置」、「機器」、「機械」及び類似する用語と交換されてよい。
【０５８４】
請求項に表示される参照番号は、例証としてのみであり、請求項の範囲に制限的な影響を及ぼさないものとする。
【０５８５】
出願人は、疑いを回避するために、これにより、自分が添付図面で著作権を請求することを宣言する。
【図１ａ】
2014089751.tif 000039
【図１ｂ】
2014089751.tif 000040
【図２ａ】
2014089751.tif 000041
【図２ｂ】
2014089751.tif 000042
【図２ｃ】
2014089751.tif 000043
【図３】
2014089751.tif 000044
【図４】
2014089751.tif 000045
【図５】
2014089751.tif 000046
【図６ａ】
2014089751.tif 000047
【図６ｂ】
2014089751.tif 000048
【図７】
2014089751.tif 000049
【図８】
2014089751.tif 000050
【図９】
2014089751.tif 000051
【図１０】
2014089751.tif 000052
【図１１】
2014089751.tif 000053
【図１２】
2014089751.tif 000054
【図１３】
2014089751.tif 000055
【図１４】
2014089751.tif 000056
【図１５】
2014089751.tif 000057
【図１６】
2014089751.tif 000058
【図１７】
2014089751.tif 000059
【図１８】
2014089751.tif 000060
【図１９】
2014089751.tif 000061
【図２０】
2014089751.tif 000062
【図２１】
2014089751.tif 000063
【図２２】
2014089751.tif 000064
【図２３】
2014089751.tif 000065
【図２４】
2014089751.tif 000066
【図２５】
2014089751.tif 000067
【図２６】
2014089751.tif 000068
【図２７】
2014089751.tif 000069
【図２８】
2014089751.tif 000070
【図２９】
2014089751.tif 000071
【図３０】
2014089751.tif 000072
【図３１】
2014089751.tif 000073
【図３２】
2014089751.tif 000074
【図３３】
2014089751.tif 000075
【図３４】
2014089751.tif 000076
【図３５】
2014089751.tif 000077
【図３６】
2014089751.tif 000078
【図３７】
2014089751.tif 000079
【図３８】
2014089751.tif 000080
【図３９】
2014089751.tif 000081
【図４０】
2014089751.tif 000082
【図４１】
2014089751.tif 000083
【図４２】
2014089751.tif 000084
【図４３】
2014089751.tif 000085
【図４４】
2014089751.tif 000086
【図４５】
2014089751.tif 000087
【手続補正書】
【提出日】平成26年2月3日(2014.2.3)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
グラフィックユーザインタフェース内のグラフィックオブジェクトの表現を表示する方法であって、
グラフィックオブジェクトの表現を表示することと、
グラフィックオブジェクト間の連結を示すための連結要素の表現を表示してグラフィックオブジェクトの表現の連結チェーンを表示することと、
前記連結チェーンからの分岐を有し、選択的に表示可能であるサブチェーンのグラフィックオブジェクトを表示することと、
を含む、前記方法。
【請求項２】
前記サブチェーンが前記連結チェーンのグラフィックオブジェクトにフォーカスを当てることによって選択的に表示可能である、請求項１に記載の方法。
【請求項３】
前記連結要素の表現がグラフィックオブジェクトの表現の間に及ぶ、請求項１または２に記載の方法。
【請求項４】
各グラフィックオブジェクトに対して、該グラフィックオブジェクトからのナビゲーション経路の選択肢を示す複数の連結要素が与えられる、請求項１〜３のうちいずれか一項に記載の方法。
【請求項５】
前記サブチェーンが前記連結チェーンから垂直に延びる、請求項１〜４のうちいずれか一項に記載の方法。
【請求項６】
グラフィックオブジェクトの第１の表現を表示することと、グラフィックオブジェクトの第２の表現を表示することとを含み、該第２の表現が該第１の表現に隣接して表示可能である、請求項１〜５のうちいずれか一項に記載の方法。
【請求項７】
前記第２の表現が前記グラフィックオブジェクトの前記第１の表現のサブチェーンの一部として表示可能である、請求項６に記載の方法。
【請求項８】
前記第１の表現がアイコンを有する、請求項６または７に記載の方法。
【請求項９】
前記グラフィックオブジェクトの第２の表現が該グラフィックオブジェクトのテキスト記述を有する、請求項６〜８のうちいずれか一項に記載の方法。
【請求項１０】
前記第１の表現と第２の表現とを接続する連結要素を表示することをさらに含む、請求項６〜９のうちいずれか一項に記載の方法。
【請求項１１】
受信機／デコーダ、またはデジタルもしくはアナログのテレビ受信機／デコーダ、またはテレビセットとともに使用される受信機／デコーダによって実行され、または移動電話によって実行される、請求項１〜１０のうちいずれか一項に記載の方法。
【請求項１２】
グラフィックユーザインタフェース内のグラフィックオブジェクトの表現を表示する装置であって、
グラフィックオブジェクトの表現を表示するための手段と、
グラフィックオブジェクト間の連結を示すための連結要素の表現を表示してグラフィックオブジェクトの表現の連結チェーンを表示する手段と、
前記連結チェーンからの分岐を有し、選択的に表示可能であるサブチェーンのグラフィックオブジェクトを表示する手段と、
を備える、前記装置。
【請求項１３】
受信機／デコーダ、またはデジタルまたはアナログのテレビ受信機／デコーダ、またはテレビセットとともに使用される受信機／デコーダ、または移動電話を備える、請求項１２に記載の装置。
【請求項１４】
請求項１２に記載の装置を備える受信機／デコーダ。
【請求項１５】
請求項１４に記載の受信機／デコーダ、および当該受信機／デコーダに接続されまたは接続可能であるテレビセットを備えるテレビシステム。
【請求項１６】
グラフィックオブジェクトの連結チェーンを備えるグラフィックユーザインタフェース内のオブジェクトであって、
グラフィックオブジェクトのサブチェーンを含み、該サブチェーンが連結チェーンからの分岐を有し、該サブチェーンが選択的に表示可能である、前記オブジェクト。
【請求項１７】
プログラムが記録された記録媒体であって、該プログラムが請求項１〜１１のいずれかに記載の方法を実行するためのプログラムである、前記記録媒体。