(57)【要約】【課題】インターフェースの機能性を損なわずにルールを変更できるようにしながら、ＵＩスタイルを定義できるようにする。【解決手段】オブジェクトに関連付けられた第１のスタイルを確定し、第１のスタイルに関連付けられた第１のプロパティを適用する。オブジェクトに関連付けられた次の各スタイルについて、オブジェクトに対して次のスタイルに関連付けられた第２のプロパティを適用する。プロパティは少なくともユーザインターフェース内のオブジェクトのグラフィカル属性を含む。【選択図】図２
2006244465.tif 000002
【特許請求の範囲】
【請求項１】
ランタイム中にユーザインターフェース内のオブジェクトにスタイルを適用する方法であって、
前記オブジェクトに関連付けられた第１のスタイルを確定するステップと、
前記オブジェクトに対して、前記第１のスタイルに関連付けられた第１のプロパティを適用するステップと、
前記オブジェクトに関連付けられた次の各スタイルについて、前記オブジェクトに対して前記次のスタイルに関連付けられた第２のプロパティを適用するステップと
を含み、前記プロパティは少なくとも前記ユーザインターフェース内の前記オブジェクトのグラフィカル属性を含むことを特徴とする方法。
【請求項２】
前記第１のスタイルまたは前記次のスタイルは、親スタイルからプロパティおよび値を継承することを特徴とする請求項１に記載の方法。
【請求項３】
前記親スタイルの前記プロパティおよび値が前記第１のスタイルまたは前記次のスタイルによってオーバーライドされることを特徴とする請求項２に記載の方法。
【請求項４】
前記オブジェクトに対してローカルなプロパティを適用するステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項５】
前記スタイルをテーマ別にまとめるステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項６】
ローカルなテーマを適用することによって前記スタイルをオーバーライドするステップをさらに含むことを特徴とする請求項５に記載の方法。
【請求項７】
ランタイム中にオブジェクトに適用すべきスタイルをデザインタイム時に定義する方法であって、
各スタイルがそれぞれそれ自体に関連付けられた名前をもつ、ユーザインターフェースにおけるスタイルのリストを提供するステップと、
前記スタイルに関連付けられた前記オブジェクトにプロパティを適用するステップと
を含み、前記プロパティは少なくともランタイム時に適用すべき前記オブジェクトのグラフィカル属性を含むことを特徴とする方法。
【請求項８】
前記オブジェクトを選択し、前記名前を選択することによって前記スタイルを適用するステップをさらに含むことを特徴とする請求項７に記載の方法。
【請求項９】
ランタイム中にユーザインターフェース内のオブジェクトにスタイルを適用するためのコンピュータ実行命令を記憶したコンピュータ可読媒体であって、
前記オブジェクトに関連付けられた第１のスタイルを確定するステップと、
前記オブジェクトに対して、前記第１のスタイルに関連付けられた第１のプロパティを適用するステップと、
前記オブジェクトに関連付けられた次の各スタイルについて、前記オブジェクトに対して前記次のスタイルに関連付けられた第２のプロパティを適用するステップと
を実行するための命令を含み、前記プロパティは少なくとも前記ユーザインターフェース内の前記オブジェクトのグラフィカル属性を含むことを特徴とするコンピュータ可読媒体。
【請求項１０】
前記第１のスタイルまたは前記次のスタイルは親スタイルからプロパティおよび値を継承することを特徴とする請求項９に記載のコンピュータ可読媒体。
【請求項１１】
前記親スタイルの前記プロパティおよび値が前記第１のスタイルまたは前記次のスタイルによってオーバーライドされることを特徴とする請求項１０に記載のコンピュータ可読媒体。
【請求項１２】
前記オブジェクトに対してローカルなプロパティを適用するための命令をさらに含むことを特徴とする請求項９に記載のコンピュータ可読媒体。
【請求項１３】
前記スタイルをテーマ別にまとめるための命令をさらに含むことを特徴とする請求項９に記載のコンピュータ可読媒体。
【請求項１４】
ローカルなテーマを適用することによって前記スタイルをオーバーライドするための命令をさらに含むことを特徴とする請求項１３に記載のコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にグラフィックス編集の分野に関する。より詳細には、本発明は、コンピューティング環境内でグラフィカルオブジェクトおよび他のタイプのオブジェクトに属性を適用するために使用される、スタイルメカニズムを提供するシステムおよび方法に関する。
【背景技術】
【０００２】
スタイルとは、当業者には明らかなように、一般には特定の出版物中での、または特定の出版社によって使用される、文書の提示方法である。スタイルは、たとえばＭＩＣＲＯＳＯＦＴ  ＷＯＲＤやＭＩＣＲＯＳＯＦＴ  ＶＩＳＩＯ（登録商標）で、テキスト、線および／またはフィルの提示方法を定義するのに使用されている。このスタイルの定義は、文書全体を通して一様な体裁を提供するために、テキスト、線および／またはフィルのいくつかの特徴を強制する。
【０００３】
スタイルが一般的な意味でまだ実施されていない領域の１つが、ユーザインターフェース（ＵＩ）のデザインである。そこでは、ＵＩのデザイン定義が、デザインタイム時、ランタイム時のいずれにおいても定義され、実施され、維持されることが望ましい。この目標を達成するために、ウェブページデザインに使用されるＣＳＳ（カスケーディングスタイルシート）やＸＳＬ（拡張スタイル言語）などの試みが行われてきた。しかし、これらの方法はいずれも複雑で理解し難いことで有名である。より重要なことには、これらの方法を効率的に利用するソフトウェアツール、特にデザインの直接操作および理解を可能にするＷＹＳＩＷＹＧ（Ｗｈａｔ  Ｙｏｕ  Ｓｅｅ  Ｉｓ  Ｗｈａｔ  Ｙｏｕ  Ｇｅｔ）ツールを作成することが極めて困難であることが分かっている。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
１つの問題は、ランタイムソフトウェアでそれらのルールを実施し、インターフェースの機能性を損なわずにルールを変更できるようにしながら、ソフトウェアデザインタイムツールがどのようにＵＩスタイルを定義できるかということである。具体的には、スタイリングメカニズムは、汎用でありＵＩデザインのあらゆる面に適用可能であり、グラフィックスおよび開発ツールを介して操作でき、ＵＩデザイナーが容易に習得できるほどシンプルで親しみ易いメカニズムであるべきである。しかし、これらの特徴を提供する従来のスタイルメカニズムは存在しない。
【０００５】
したがって、上述の機能を提供するスタイリングメカニズムが必要である。本発明は、そのようなソリューションを提供する。
【課題を解決するための手段】
【０００６】
本発明は、ユーザインターフェース内のオブジェクトに適用されることにより、そのオブジェクトの任意の属性を定義するスタイルモデルを実施するための方法を対象とする。このモデルは、２つの部分に分けられている。すなわち、ユーザインターフェースのルックアンドフィールに影響を及ぼすためにスタイル定義を使用する「ランタイム」と、ユーザインターフェースのルックアンドフィールを定義するＷＹＳＩＷＹＧツールによって提示される経験である「デザインタイム」である。デザインタイムは、ランタイムオブジェクトに関して実施することができる。スタイルに関連付けられるプロパティは、デザインタイムＵＩを使用してオブジェクトに対して設定し、ランタイム時に実施することができる。スタイルは、変更を多くのオブジェクトに適用するための簡単なメカニズムを提供するために、テーマ別にグループ分けすることができる。
【０００７】
本発明のその他の特徴および利点は、添付の図面を参照しながら行われる例示的実施形態についての以下の詳細な説明により、明らかになるであろう。
【０００８】
前述の要約、および好ましい実施形態についての以下の詳細な説明は、添付の図面と併せて参照することにより、よりよく理解されよう。本発明を説明するために、図面には本発明の例示的な構成が示されているが、本発明は開示された特定の方法および手段に限定されない。
【発明を実施するための最良の形態】
【０００９】
例示的コンピューティング環境
図１は、本発明を実施することができる、適切なコンピューティングシステム環境１００の例を示す。コンピューティングシステム環境１００は、適切なコンピューティング環境の一例に過ぎず、本発明の使用範囲または機能に関するいかなる限定も示唆するものではない。また、コンピューティング環境１００も、例示的動作環境１００中で示される構成要素の１つまたはそれらの組合せに依存するか、あるいはそれらを必要としていると解釈すべきではない。
【００１０】
本発明は、他の多くの汎用または専用のコンピューティングシステム環境または構成で動作可能である。本発明での使用に適した周知のコンピューティングシステム、環境および／または構成の例としては、パーソナルコンピュータ、サーバコンピュータ、携帯型またはラップトップ型装置、マルチプロセッサシステム、マイクロプロセッサに基づくシステム、セットトップボックス、プログラム可能な家庭用電化製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、上記のシステムまたは装置のうちのいずれかを含む分散コンピューティング環境などがあるが、それだけには限定されない。
【００１１】
本発明は、コンピュータで実行される、例えばプログラムモジュールなどのコンピュータ実行命令という一般的なコンテキストで説明することができる。一般的に、プログラムモジュールとしては、特定のタスクの実行または特定の抽象データ型の実施を行うルーチン、プログラム、オブジェクト、構成要素、データ構造などがある。本発明は、通信ネットワークまたは他のデータ送信媒体を介してリンクされたリモート処理装置によってタスクが実行される分散コンピューティング環境で実施することもできる。分散コンピューティング環境では、プログラムモジュールまたは他のデータを、メモリ記憶装置を含むローカルおよびリモートのいずれのコンピュータ記憶媒体にも置くことができる。
【００１２】
図１を参照すると、本発明を実施するための例示的システムは、コンピュータ１１０の形をとる汎用コンピューティングデバイスを含む。コンピュータ１１０の構成要素には、処理装置１２０、システムメモリ１３０、およびシステムメモリを含めたシステムの様々な構成要素を処理装置１２０に結合するシステムバス１２１が含まれ得るが、それだけには限定されない。システムバス１２１は、メモリバスまたはメモリコントローラ、周辺バス、および様々なバスアーキテクチャのいずれかを使用したローカルバスを含めて、いくつかのバス構造のタイプのいずれでもよい。限定ではなく例を挙げると、これらのバスアーキテクチャとしては、ＩＳＡ（Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、ＭＣＡ（Ｍｉｃｒｏ  Ｃｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、ＥＩＳＡ（Ｅｎｈａｎｃｅｄ  ＩＳＡ）バス、ＶＥＳＡ（Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ）ローカルバス、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バス（メザニンバスとも呼ばれる）、ＰＣＩ−Ｅｘｐｒｅｓｓ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｅｘｐｒｅｓｓ）バス、ＳＭＢｕｓ（Ｓｙｓｔｅｍｓ  Ｍａｎａｇｅｍｅｎｔ  Ｂｕｓ）などがある。
【００１３】
コンピュータ１１０は、一般に様々なコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ１１０がアクセスできる利用可能などんな媒体でもよく、揮発性および不揮発性の媒体、着脱式および非着脱式の媒体を含む。限定ではなく例を挙げると、コンピュータ可読媒体は、コンピュータ記憶媒体および通信媒体を含むことができる。コンピュータ記憶媒体としては、コンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータなど、情報の記憶に用いられる任意の方法または技術で実装される揮発性および不揮発性の媒体、着脱式および非着脱式の媒体がある。コンピュータ記憶媒体としては、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたは他のメモリ技術、ＣＤ−ＲＯＭ、ＤＶＤまたは他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶または他の磁気記憶装置、あるいは所望の情報を記憶し、コンピュータ１１０がアクセスできるような他の任意の媒体があるが、それだけには限定されない。通信媒体は、一般に、コンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータを、搬送波や他の搬送機構などの変調データ信号の形で実施し、それには任意の情報送達媒体が含まれる。「変調データ信号」という用語は、その１つまたは複数の特徴が、信号に含まれる情報を符号化するように設定または変更された信号を意味する。限定ではなく例を挙げると、通信媒体としては、有線ネットワークまたは直接配線接続などの有線媒体、ならびに音響、ＲＦ、赤外線、その他の無線媒体などの無線媒体がある。上記の任意の組合せも、コンピュータ可読媒体の範囲に含まれるものとする。
【００１４】
システムメモリ１３０は、例えばＲＯＭ１３１やＲＡＭ１３２など揮発性および／または不揮発性のメモリの形をとるコンピュータ記憶媒体を含む。一般に、例えば起動の際にコンピュータ１１０内の要素間での情報の転送を助ける基本ルーチンを含む基本入出力システム（ＢＩＯＳ）１３３が、ＲＯＭ１３１に格納されている。ＲＡＭ１３２は、一般に、直ちに処理装置１２０からアクセス可能であり、および／または処理装置１２０が操作を加えているデータおよび／またはプログラムモジュールを含む。限定ではなく例を挙げると、図１はオペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、およびプログラムデータ１３７を示す。
【００１５】
コンピュータ１１０は、他の着脱式および非着脱式、揮発性および不揮発性のコンピュータ記憶媒体を含むことができる。あくまで一例として、図１は、非着脱式で不揮発性の磁気媒体を読み書きするハードディスクドライブ１４１、着脱式で不揮発性の磁気ディスク１５２を読み書きする磁気ディスクドライブ１５１、およびＣＤ−ＲＯＭや他の光媒体など着脱式で不揮発性の光ディスク１５６を読み書きする光ディスクドライブ１５５を示す。この例示的動作環境で使用できる他の着脱式および非着脱式、揮発性および不揮発性のコンピュータ記憶媒体としては、磁気テープカセット、フラッシュメモリカード、ＤＶＤ、デジタルビデオテープ、ソリッドステートＲＡＭ、ソリッドステートＲＯＭなどがあるが、それだけには限定されない。ハードディスクドライブ１４１は、一般にインターフェース１４０などの非着脱式メモリインターフェースを介してシステムバス１２１に接続されており、磁気ディスクドライブ１５１および光ディスクドライブ１５５は、一般にインターフェース１５０などの着脱式メモリインターフェースを介してシステムバス１２１に接続されている。
【００１６】
上に説明し、図１に示したドライブおよびそれらに関連するコンピュータ記憶媒体は、コンピュータ１１０用のコンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータを記憶する。たとえば、図１では、ハードディスクドライブ１４１は、オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、およびプログラムデータ１４７を記憶しているものとして示してある。これらの構成要素は、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、およびプログラムデータ１３７と同じでもよく、異なっていてもよいことに留意されたい。ここでは、オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、およびプログラムデータ１４７が少なくとも異なるコピーであることを示すために別の参照番号を付けた。ユーザは、キーボード１６２や一般にマウス、トラックボールまたはタッチパッドと呼ばれるポインティングデバイス１６１などの入力装置を介して、コンピュータ１１０に命令および情報を入力することができる。他の入力装置（図示せず）としては、マイクロホン、ジョイスティック、ゲームパッド、パラボラアンテナ、スキャナなどがある。これらおよび他の入力装置は、システムバスに結合されているユーザ入力インターフェース１６０を介して処理装置１２０に接続されることが多いが、パラレルポート、ゲームポートまたはユニバーサルシリアルバス（ＵＳＢ）など他のインターフェースおよびバス構造によって接続することもできる。モニタ１９１または他のタイプの表示装置も、ビデオインターフェース１９０などのインターフェースを介してシステムバス１２１に接続されている。モニタに加え、コンピュータは、出力周辺インターフェース１９５を介して接続することができるスピーカ１９７やプリンタ１９６などの他の周辺出力装置を含み得る。
【００１７】
コンピュータ１１０は、リモートコンピュータ１８０など１つまたは複数のリモートコンピュータへの論理接続を使用したネットワーク環境で動作することもできる。リモートコンピュータ１８０は、パーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピアデバイスまたは他の共通ネットワークノードでよく、図１ではメモリ記憶装置１８１しか図示されていないが、一般にはコンピュータ１１０に関連して説明した上述の多くのまたは全ての要素を含む。図示された論理接続は、ローカルエリアネットワーク（ＬＡＮ）１７１およびワイドエリアネットワーク（ＷＡＮ）１７３を含むが、他のネットワークを含むこともできる。これらのネットワーク環境は、オフィス、事業体規模のコンピュータネットワーク、イントラネットおよびインターネットにおいて一般的となっている。
【００１８】
ＬＡＮネットワーク環境で使用する場合、コンピュータ１１０はネットワークインターフェースまたはアダプタ１７０を介してＬＡＮ１７１に接続される。ＷＡＮネットワーク環境で使用する場合、コンピュータ１１０は、一般にインターネットなどのＷＡＮ１７３上での通信を確立するためのモデム１７２または他の手段を含む。モデム１７２は、内部モデムでも外部モデムでもよく、ユーザ入力インターフェース１６０または他の適切な機構を介してシステムバス１２１に接続することができる。ネットワーク環境では、コンピュータ１１０に関連して図示されたプログラムモジュールあるいはその一部を、リモートメモリ記憶装置に記憶することができる。限定ではなく例として、図１ではリモートアプリケーションプログラム１８５がメモリ装置１８１上にあるものとして示してある。図示されたネットワーク接続は例示的であり、コンピュータ間の通信リンクを確立するための他の手段を使用することもできることが理解できよう。
【００１９】
ＵＩデザインのためのスタイリングの例示的実施形態
一般に、現代のユーザインターフェース（ＵＩ）は、ＵＩ内の要素（たとえばボタン、四角形、ウィンドウ）およびこれら要素のプロパティ（たとえば色、位置、テキスト値）を表す１組のオブジェクトによって定義される。本発明は、「スタイル」を、色、位置、ジオメトリなどを含み、ただしそれだけには限定されない１組のプロパティと、たとえば緑、画面の中央、楕円など、これらのプロパティへの値の割当てとして実施する。各スタイルは、一意的にそのスタイルを参照するために使用することができる名前または他の識別子をもつことができ、スタイルはＵＩ定義によるオブジェクトに適用することができる。たとえば、ユーザインターフェースデザイナーは、前景色および背景色がそれぞれ黒および白と定義される「ゼブラ」、および前景色および背景色がそれぞれ黒およびオレンジと定義される「タイガー」の２つのスタイルを定義することができる。「ゼブラ」を１組のボタンおよびリストボックスに適用した場合、それらは黒と白で提示され、あるいはデザイナーは「タイガー」を適用して黒とオレンジのスキームを得ることができる。
【００２０】
本発明のスタイル定義メカニズムは、２つの部分に分けることができる。すなわち、ＵＩのルックアンドフィールに影響を及ぼすためにスタイル定義を使用する「ランタイム」成分と、ユーザインターフェースのルックアンドフィールを定義するのに使用されるＷＹＳＩＷＹＧツールによって提示される経験である「デザインタイム」成分の２つである。デザインタイム成分は、ランタイムオブジェクトに関して実施することができる。
【００２１】
ランタイムスタイルオブジェクト
スタイルオブジェクトは、値が割り当てられた、名前付きの１組のプロパティである。プロパティは、任意のクラスのプロパティでよい。ＴｙｐｅおよびＰｒｏｐｅｒｔｙの名前を与えることによってコモンランゲージランタイム（ＣＲＬ）および他のオブジェクトシステムがそのプロパティを参照できるような、プロパティ参照用の一般的なメカニズムが使用される。たとえば、「Ｂｕｔｔｏｎ．Ｂａｃｋｇｒｏｕｎｄ」。ただし、「Ｂｕｔｔｏｎ」がＴｙｐｅ名であり、「Ｂａｃｋｇｒｏｕｎｄ」がそのタイプのプロパティの名前である。ＣＬＲは、本件特許出願人から市販の．ＮＥＴフレームワークの一部であり、プログラムの実行を管理し、共通のオブジェクト指向クラスの共有を可能にする。
【００２２】
したがって、たとえば以下のように、ＸＭＬでＳｔｙｌｅを宣言することが可能である。
【００２３】
【表１】
2006244465.tif 000003
【００２４】
スタイル継承が実施されている場合、スタイルは他のスタイルに基づいてよい。すなわち、あるスタイルが、ある親スタイルから任意のプロパティおよび／または値の対を獲得することができる。新規スタイルでのプロパティ割当てが優先され、したがって親での設定を「オーバーライド」すると言われる。たとえば
【００２５】
【表２】
2006244465.tif 000004
【００２６】
スタイルの擬似Ｃ＃クラス定義は、以下のような定義でもよい。
【００２７】
【表３】
2006244465.tif 000005
【００２８】
各要素はスタイルと呼ばれるプロパティを含み、その値はスタイルのＩＤである。このプロパティの値が、その要素のスタイルとなる。
【００２９】
【表４】
2006244465.tif 000006
【００３０】
名前が付けられ、共有されるリソースは、任意のプロパティタイプで定義することができる。
【００３１】
【表５】
2006244465.tif 000007
【００３２】
任意のスタイル化可能なプロパティの値は、ある要素上にローカル値があるかどうか確かめることによって決定される。ローカル値がない場合、要素のスタイルからのプロパティ値が使用される。
【００３３】
スタイルおよびリソースは、テーマ別にまとめることができる。テーマは、１組のコンテンツの全体的な外観を容易に切り替えられるようにする、１群のスタイル定義である。
【００３４】
【表６】
2006244465.tif 000008
【００３５】
ローカルなテーマは、既存のスタイルをオーバーライドすることができ、あるいはその１組のスタイルを拡張することができる。したがって、ユーザはあるアプリケーション内の全てのボタンについて、それぞれのボタンのスタイルプロパティを変更する必要なしに、デフォルトのボタン背景の変更を選ぶことができる。さらに、全てのコントロールが、周知のスタイル名のうちのいずれかであるデフォルトのスタイルプロパティを指定することが好ましい。たとえば、ボタンクラスは、それ自体のデフォルトスタイルを「ＳｙｓｔｅｍＢｕｔｔｏｎＳｔｙｌｅ」と定義することができる。
【００３６】
本発明によれば、上記についていくつかの変形形態が可能である。第１の変形形態によれば、任意に範囲を定められたテーマを定義することができる。その場合、テーマを、ツリー構造のどのレベルにも導入することができる。したがって、テーマがスタイルをオーバーライドし、パネルまたはボタン内に新しいスタイルを導入することができる。第２の変形形態では、スタイルとテンプレートは同じ物として定義される。テンプレードが、それが付属する制御に対してプロパティの設定もできる場合、ここで定義されるスタイルは単にテンプレートの１サブセットである。第３の変形形態は、強く型付けされたスタイルである。スタイルは、（ＱｕｅｒｙＧｒｏｕｐｓと同様に）複数組の関連するプロパティに分けることができる。それらの関連するプロパティは、全てのテキストプロパティ、ストロークプロパティなどでもよい。この変形形態では、制御は、各スタイルタイプ毎に異なるプロパティをもつはずである。これは非常に柔軟であり、スタイルに対して有用な構造を強制する。
【００３７】
ランタイム時には、オブジェクトを識別するためのスタイル名を使用して、オブジェクトにスタイルリストを提供させることにより、それらのオブジェクトに適用することができる。たとえば、
【００３８】
【表７】
2006244465.tif 000009
【００３９】
オブジェクト上のプロパティの実際値は先行計算によって決定される。まず、オブジェクトに対して直接設定された任意のプロパティが適用され、次いで、スタイルリストが順にウォークされ、既に設定されていないプロパティがあれば、現スタイルから適用される。したがって、上述の例では、Ｂｕｔｔｏｎに対して直接設定されなかったプロパティがＭｙＳｔｙｌｅ中にあればそれが適用され、次いでＯｔｈｅｒＳｔｙｌｅのプロパティのうちＢｕｔｔｏｎに対して直接設定されなかった、またはＭｙｓｔｙｌｅによって設定されたプロパティがあればそれが適用される。
【００４０】
一般に、｛ｓ１、ｓ２、ｓ３、．．．ｓｎ｝というスタイルリストをもつオブジェクトＯが与えられた場合、最終プロパティ値は以下の順に適用される。
【００４１】
Ｏに対して設定されている任意のプロパティ
ｓ１に対して設定され、Ｏに対して設定されていない任意のプロパティ
ｓ２に対して設定され、Ｏまたはｓ１に対して設定されていない任意のプロパティ
．．．
ｓｎに対して設定され、Ｏ、ｓ１、ｓ２、．．．ｓｎ−１に対して設定されていない任意のプロパティ
【００４２】
ここで図２を参照すると、本発明のランタイム成分によって実行される処理のフローチャートが示されている。処理は、各オブジェクト（「Ｏ」）毎に、ステップ２００で開始される。ステップ２０２で、Ｏに対して設定されたスタイルプロパティが適用される。次いで、ステップ２０４で、次のスタイルが選択される。ステップ２０６で、スタイルに関連する次のプロパティがスタイルから適用される。ステップ２０８で、そのプロパティがＯに対して設定されているかどうかが判定される。そうでない場合、ステップ２１０でプロパティが設定され、そうである場合は、処理はステップ２１２に進み、スタイル内に残っているプロパティがあるかどうかが判定される。そうである場合、処理はステップ２０６に戻り、そうでない場合は、処理はステップ２１４に進み、適用すべきスタイルが残っているかどうかが判定される。そうである場合、処理はステップ２０４に戻るが、そうでない場合は、処理はステップ２１６で終了する。
【００４３】
本発明によれば、１組のユーザインターフェースツールがスタイルリストを名前で表示することができ、それらの名前が表しているプロパティに対してデザイナーがプロパティおよび値を割り当てられるようにする。さらに、ツールは、ＵＩの要素へのスタイルの適用をもたらす。そのようなＵＩの例示的なデザインが、図３および図４に示してある。ランタイム成分は、ＵＩ要素にプロパティ割当てを獲得させ、スタイルの定義または適用を変更することによってその要素が新しいプロパティ割当てを獲得できるようにする。本発明の拡張形態では、単一のオブジェクトに対して複数のスタイルが適用でき、それによって色スタイルとフォントスタイルが混合できるようになり、オブジェクト指向の概念であるクラス継承を取り入れたスタイル継承によって、スタイルをより容易に管理および再利用できるようになる。
【００４４】
図３および図４を参照すると、図示された例示的ダイアログボックスを使用してスタイルを定義することができる。ＵＩにより、オブジェクトに対してプロパティを直接設定できるようになる。ＵＩを使用することにより、オブジェクトが選択でき、そこからプロパティを抽出することができる。次いで、抽出されたプロパティをスタイルとして名付けることができる。スタイルは、オブジェクトを指し示し、そのスタイルを名前で設定することによって、適用することができる。図３に示したように、選択されたボタンは「ブルーベリー」スタイルから色プロパティを獲得している。スタイルをメタリックに変更するだけで、図４に示したように１組のプロパティ全体が変更される。
【００４５】
したがって、本発明は、リソースモデルと互換性がある、簡単でありツール化可能なメカニズムを提供する。これはＸＭＬで実施することができるため、シリアル化が可能となり、容易にデバッグできるようになる。本発明を様々な図に示した好ましい実施形態に関して説明したが、本発明から逸脱することなく、本発明の同様の機能を実行するために他の類似の実施形態を使用してよく、あるいは説明した実施形態に改変または追加を行ってもよいことが理解されよう。たとえば、本出願で説明した本発明は、有線または無線に関わらず任意のコンピューティングデバイスまたは環境に適用することができ、通信ネットワークを介して接続され、ネットワークを介して対話する任意の数のそうしたコンピューティングデバイスに適用することができることが当業者には理解されよう。さらに、特に無線ネットワーク接続された装置の数が増え続ける中で、ハンドヘルドデバイスのオペレーティングシステムや他のアプリケーション特有のオペレーティングシステムを含めて様々なコンピュータプラットホームが企図されていることも強調しておきたい。さらに、本発明は複数の処理チップまたはデバイス内で、またはそれらにまたがって実施することができ、記憶も同様に複数のデバイス間で実現することができる。したがって、本発明はどの単一の実施形態にも限定されるべきではなく、添付の特許請求の範囲に従って、その広さおよび範囲を解釈すべきである。
【図面の簡単な説明】
【００４６】
【図１】本発明の諸態様を実施することができる例示的なコンピューティング環境を示すブロック図である。
【図２】本発明による、ランタイム成分によって実行される処理のフローチャートである。
【図３】例示的なデザインタイムユーザインターフェースを示す図である。
【図４】例示的なデザインタイムユーザインターフェースを示す図である。
【符号の説明】
【００４７】
１００  コンピューティング環境
１２０  処理装置
１２１  システムバス
１３０  システムメモリ
１３４  オペレーティングシステム
１３５  アプリケーションプログラム
１３６  その他のプログラムモジュール
１３７  プログラムデータ
１４０  非着脱式不揮発性メモリインターフェース
１４４  オペレーティングシステム
１４５  アプリケーションプログラム
１４６  その他のプログラムモジュール
１４７  プログラムデータ
１５０  着脱式不揮発性メモリインターフェース
１６０  ユーザ入力インターフェース
１６１  マウス
１６２  キーボード
１７０  ネットワークインターフェース
１７１  ローカルエリアネットワーク
１７２  モデム
１７３  ワイドエリアネットワーク
１８０  リモートコンピュータ
１８５  リモートアプリケーションプログラム
１９０  ビデオインターフェース
１９１  モニタ
１９５  出力周辺インターフェース
１９６  プリンタ
１９７  スピーカ
【図１】
2006244465.tif 000010
【図２】
2006244465.tif 000011
【図３】
2006244465.tif 000012
【図４】
2006244465.tif 000013