(57)【特許請求の範囲】
【請求項１】
アプリケーションに外観の切替要求を受理するインタフェースを備え、
ウィンドウシステムのＧＵＩ部品は、外観を切り替える機能を備えたＧＵＩ部品本体部と、ＧＵＩ部品の描画処理部分のみを分離され、ＧＵＩ部品本体部からの描画要求を受け付けてＧＵＩ部品本体部の持つ描画対象に対して描画を行う描画処理部と、前記ＧＵＩ部品本体部が描画処理の変更要求を受け付けた際に、描画処理のＩＤ情報を元に描画処理生成要求を受け、描画処理部を作成する描画処理生成部とを備え、
アプリケーションは、前記インタフェースを介した外観の切替要求により、前記ＧＵＩ部品本体部に対して描画処理を変更するように要求し、ＧＵＩ部品本体部は描画処理変更要求により描画処理生成要求を前記描画処理生成部へ行う手段を備えたことを特徴とするアプリケーションのユーザインターフェースの外観切替装置。
【請求項２】
前記描画処理部は、前記ＧＵＩ部品本体部からの描画要求を受け付けてＧＵＩ部品本体部の持つ描画対象に対して描画を行う手段を備え、
前記ＧＵＩ部品本体部は、描画処理の変更要求をしたときに描画処理部を一旦削除し、該描画処理部を新しい描画処理部に差し替える手段を備えたことを特徴とする請求項１に記載のアプリケーションのユーザインターフェースの外観切替装置。
【請求項３】
前記描画処理部はレイアウト描画処理手段を選択する手段を備え、
前記レイアウト描画処理手段は、サブ描画処理として任意の描画処理を持つことができ、プロパティとしてレイアウト方法を持ち、ＧＵＩ部品内部においてのレイアウト方法を指定して複数の任意の描画処理を組み合わせできる手段を備えたことを特徴とする請求項１に記載のアプリケーションのユーザインターフェースの外観切替装置。
【請求項４】
前記レイアウト描画処理手段は、
オーバレイをレイアウト方法として用意することで描画処理を重ね合わせる手段と、
レイアウト描画処理を再帰的に適用することで、複数のレイアウト方法を組み合わせた描画処理を実装する手段とを備えたことを特徴とする請求項３に記載のアプリケーションのユーザインターフェースの外観切替装置。
【請求項５】
アプリケーションに外観の切替要求を受理するインタフェースを備え、
ウィンドウシステムのＧＵＩ部品は、外観を切り替える機能を備えたＧＵＩ部品本体部と、ＧＵＩ部品の描画処理部分のみを分離され、ＧＵＩ部品本体部からの描画要求を受け付けてＧＵＩ部品本体部の持つ描画対象に対して描画を行う描画処理部と、前記ＧＵＩ部品本体部が描画処理の変更要求を受け付けた際に、描画処理のＩＤ情報を元に描画処理生成要求を受け、描画処理部を作成する描画処理生成部とを備え、
アプリケーションは、前記インタフェースを介した外観の切替要求により、前記ＧＵＩ部品本体部に対して描画処理を変更するように要求し、ＧＵＩ部品本体部は描画処理変更要求により描画処理生成要求を前記描画処理生成部へ行うステップを備えたことを特徴とするアプリケーションのユーザインターフェースの外観切替方法。
【請求項６】
前記描画処理部は、前記ＧＵＩ部品本体部からの描画要求を受け付けてＧＵＩ部品本体部の持つ描画対象に対して描画を行うステップを備え、
前記ＧＵＩ部品本体部は、描画処理の変更要求をしたときに描画処理部を一旦削除し、該描画処理部を新しい描画処理部に差し替えるステップを備えたことを特徴とする請求項５に記載のアプリケーションのユーザインターフェースの外観切替方法。
【請求項７】
前記描画処理部はレイアウト描画処理ステップを選択するステップを備え、
前記レイアウト描画処理ステップは、サブ描画処理として任意の描画処理を持つことができ、プロパティとしてレイアウト方法を持ち、ＧＵＩ部品内部においてのレイアウト方法を指定して複数の任意の描画処理を組み合わせできるステップを備えたことを特徴とする請求項５に記載のアプリケーションのユーザインターフェースの外観切替方法。
【請求項８】
前記レイアウト描画処理ステップは、
オーバレイをレイアウト方法として用意することで描画処理を重ね合わせるステップと、
レイアウト描画処理を再帰的に適用することで、複数のレイアウト方法を組み合わせた描画処理を実装するステップとを備えたことを特徴とする請求項７に記載のアプリケーションのユーザインターフェースの外観切替方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステムのユーザインタフェースにおいて、動作時に外観を変更する装置および方法に関する。
【背景技術】
【０００２】
アプリケーションのユーザインタフェースは、外観（ＧＵＩ画面構成、ＧＵＩ部品形状や色など）の変更にスキンを用いる方法がある（例えば、特許文献１参照）。スキンは、アプリケーションソフトの外見に関する情報を格納したファイルであり、一般に複数のファイルからなっており、図１０に示すように、スキンの外観を定義するテキストファイルや画像ファイルが1つのスキンになり、アプリケーションの外観を変更可能にする。このスキンを利用するには、アプリケーションソフト側に「スキン機能」を設ける。
【０００３】
具体例としては、音楽プレイヤーアプリケーションＷｉｎＡｍｐなどで外部定義ファイルを用意し、これにアプリケーションのインタフェース画面の外観（外形・色・フォント・画像など）を定義しておき、ユーザが好みの外観に切り替える。
【特許文献１】特表２００３−５３２１８９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ＷｉｎＡｍｐなどのスキン機能は、外観を簡単に変更する機能がないため、以下のような要求に対応できない。
【０００５】
スキン機能はアプリケーションが持つ機能であるため、図１１に示すように、同じＧＵＩ部品を用いた別アプリケーションであっても別個にスキン機能を設計・実装し定義ファイルを用意する必要があり、手間がかかる。
【０００６】
例えば、あるアプリケーションであるボタンの色を外部定義データから読み込んだ値に設定するように実装したとする。ウィンドウシステム自体には外部定義データからＧＵＩ部品を生成する機能がないため、図１２に示すように、アプリケーションは外部定義データを読み込み、その定義データを元にＧＵＩ部品の色（属性）を定義してボタン生成をウィンドウシステムに依頼し、システムが画面上にボタンを生成する。このような処理を各アプリケーション側で作成することになる。
【０００７】
また、ＧＵＩ部品の例としてプログレスバーを考える。進捗状況を伸縮するバーにより示すＧＵＩ部品であり表示色を設定することができたりするが、表示の方法をダイヤル表示に変えたりすることは出来ない。
【０００８】
本発明の目的は、動的な外観の変更を行うアプリケーションの作成を容易にするユーザインターフェースの外観切替装置および外観切替方法を提供することにある。
【課題を解決するための手段】
【０００９】
本発明は、前記の課題を解決するため、ＧＵＩ部品自体が外観を変更する機能をもつこととしたもので、以下の特徴をもつ装置および方法である。
【００１０】
（装置の発明）
（１）アプリケーションに外観の切替要求を受理するインタフェースを備え、
ウィンドウシステムのＧＵＩ部品は、外観を切り替える機能を備えたＧＵＩ部品本体部と、ＧＵＩ部品の描画処理部分のみを分離され、ＧＵＩ部品本体部からの描画要求を受け付けてＧＵＩ部品本体部の持つ描画対象に対して描画を行う描画処理部と、前記ＧＵＩ部品本体部が描画処理の変更要求を受け付けた際に、描画処理のＩＤ情報を元に描画処理生成要求を受け、描画処理部を作成する描画処理生成部とを備え、
アプリケーションは、前記インタフェースを介した外観の切替要求により、前記ＧＵＩ部品本体部に対して描画処理を変更するように要求し、ＧＵＩ部品本体部は描画処理変更要求により描画処理生成要求を前記描画処理生成部へ行う手段を備えたことを特徴とする。
【００１１】
（２）前記描画処理部は、前記ＧＵＩ部品本体部からの描画要求を受け付けてＧＵＩ部品本体部の持つ描画対象に対して描画を行う手段を備え、
前記ＧＵＩ部品本体部は、描画処理の変更要求をしたときに描画処理部を一旦削除し、該描画処理部を新しい描画処理部に差し替える手段を備えたことを特徴とする。
【００１２】
（３）前記描画処理部はレイアウト描画処理手段を選択する手段を備え、
前記レイアウト描画処理手段は、サブ描画処理として任意の描画処理を持つことができ、プロパティとしてレイアウト方法を持ち、ＧＵＩ部品内部においてのレイアウト方法を指定して複数の任意の描画処理を組み合わせできる手段を備えたことを特徴とする。
【００１３】
（４）前記レイアウト描画処理手段は、
オーバレイをレイアウト方法として用意することで描画処理を重ね合わせる手段と、
レイアウト描画処理を再帰的に適用することで、複数のレイアウト方法を組み合わせた描画処理を実装する手段とを備えたことを特徴とする。
【００１４】
（方法の発明）
（５）アプリケーションに外観の切替要求を受理するインタフェースを備え、
ウィンドウシステムのＧＵＩ部品は、外観を切り替える機能を備えたＧＵＩ部品本体部と、ＧＵＩ部品の描画処理部分のみを分離され、ＧＵＩ部品本体部からの描画要求を受け付けてＧＵＩ部品本体部の持つ描画対象に対して描画を行う描画処理部と、前記ＧＵＩ部品本体部が描画処理の変更要求を受け付けた際に、描画処理のＩＤ情報を元に描画処理生成要求を受け、描画処理部を作成する描画処理生成部とを備え、
アプリケーションは、前記インタフェースを介した外観の切替要求により、前記ＧＵＩ部品本体部に対して描画処理を変更するように要求し、ＧＵＩ部品本体部は描画処理変更要求により描画処理生成要求を前記描画処理生成部へ行うステップを備えたことを特徴とする。
【００１５】
（６）前記描画処理部は、前記ＧＵＩ部品本体部からの描画要求を受け付けてＧＵＩ部品本体部の持つ描画対象に対して描画を行うステップを備え、
前記ＧＵＩ部品本体部は、描画処理の変更要求をしたときに描画処理部を一旦削除し、該描画処理部を新しい描画処理部に差し替えるステップを備えたことを特徴とする。
【００１６】
（７）前記描画処理部はレイアウト描画処理ステップを選択するステップを備え、
前記レイアウト描画処理ステップは、サブ描画処理として任意の描画処理を持つことができ、プロパティとしてレイアウト方法を持ち、ＧＵＩ部品内部においてのレイアウト方法を指定して複数の任意の描画処理を組み合わせできるステップを備えたことを特徴とする。
【００１７】
（８）前記レイアウト描画処理ステップは、
オーバレイをレイアウト方法として用意することで描画処理を重ね合わせるステップと、
レイアウト描画処理を再帰的に適用することで、複数のレイアウト方法を組み合わせた描画処理を実装するステップとを備えたことを特徴とする。
【発明の効果】
【００１８】
以上のとおり、本発明によれば、ＧＵＩ部品の外観を動的に切り替えること、ＧＵＩ部品自体が外観を変更する機能をもつこと、ＧＵＩ部品の描画処理をＧＵＩ部品本体部から分離し描画処理部としたこと、および１つのＧＵＩ部品本体部に対して複数の既存の描画処理を組み合わせて描画することができることとしたため、ユーザインタフェースの外観変更・実装が容易になる。
【００１９】
具体的には、同じＧＵＩ部品を用いた複数のアプリケーションであっても外観切替え要求受理インタフェースを実装し、要求受理時にＧＵＩ部品に対して描画処理変更を要求するだけで切替え機能を実現できる。
【００２０】
また、描画処理の分離は、描画処理の一部でなく全てを描画処理部に委譲しているため、ＧＵＩ部品部からは描画処理部を呼び出せればよく、実装に対する制約がないため、プラットフォームの持つすべての描画機能（図形描画、文字描画など）を使うことができ、自由な描画を行うことができる。また、外観設計の責任範囲が描画処理に限定しているためメンテナンス性が高い。
【００２１】
また、外観を動的に切り替えることができるよう描画処理が分離されたＧＵＩ部品について、レイアウト描画処理を用いて既存の複数の描画処理を組み合わせて新しい描画処理を簡単に作成することができる。そのため、同じ内容の描画処理を再度実装する必要がない。また、描画処理のレイアウト方法にオーバレイを用意することで、描画処理を重ね合わせることが出来る。また、レイアウト描画処理を再帰的に適用することで、複数のレイアウト方法（縦並び・横並び・オーバレイなど）を組み合わせた自由なレイアウトを実現することができる。
【００２２】
ＧＵＩ部品自体を組み合わせてレイアウトすることでも同様の外観を得ることが出来るが、その場合、複数のＧＵＩ部品により構成されるのに対して、描画処理のみを組み合わせた場合はＧＵＩ部品自体は１つであり、ＧＵＩ部品を使用する際に必要な設定作業の省力化を図ることが出来る。
【発明を実施するための最良の形態】
【００２３】
（実施形態１）
図１は、本実施形態を示すユーザインタフェースのＧＵＩ部品のための要部構成図である。同図中、Ａは通常のアプリケーションの構成を示す。
【００２４】
ウィンドウシステムのＧＵＩ部品１を拡張し、ＧＵＩ部品本体部２からＧＵＩ部品の描画処理部５を分離し、ＧＵＩ部品本体部２には描画処理部を変更する要求を受理できる構成とする。アプリケーション３は、外観の切り替え要求を受理するインタフェース４を持ち、このインタフェース４を介した要求でアプリケーションが持つＧＵＩ部品本体部２に対して描画処理を変更するよう要求し、ＧＵＩ部品本体部２は指定された新しい描画処理ＩＤを元に描画処理部５を再生成し、描画処理部５の再生成後に描画処理部５に持つ描画処理で描画内容を変更させる、すなわち外観切り替えを実現する。
【００２５】
また、描画処理を一意に識別するＩＤ情報から描画処理部を生成できる描画処理生成部６を用意する。図２は外観切替の処理手順を示し、ユーザからの描画処理の切り替え要求に対し、ＧＵＩ部品では描画処理が生成済であればそれを削除した後に描画処理部を生成し、描画処理の初期化を行って、アプリケーションから取得したプロパティ（例えばアナログメータ部品に表示する値情報など）を元に描画する。
【００２６】
ＩＤ情報は、図２に示す手順のうちＧＵＩ部品本体部までに指定されれば良い。すなわちユーザが直に指定する、ユーザに指定内容を元に外観要求受理インターフェースが指定する、外観要求受理インターフェースの指定内容を元にアプリケーションが指定する、のいずれかである。
【００２７】
図３は、ユーザによる描画処理切り替えの処理形態を示し、外観切替え要求受理インタフェース４をアプリケーション３のユーザインタフェースと接続し、プログラム起動中にユーザから描画方法を指定することで、ユーザの好みの外観に切替える。
【００２８】
外観切替え要求受理インタフェース４をオペレーティングシステムと接続することで、アプリケーションプログラム起動中にオペレーティングシステムから取得した状態などにより外観を切替える。例えば、図４に示すように、システム状態監視を行うコンポーネント７を用意し、システムの備えるハードウェア性能やシステム負荷に応じて描画処理を負荷の軽いものに変更する。
【００２９】
したがって、本実施形態によれば、ＧＵＩ部品の外観を動的に切り替えることができる。
また、通常のスキンに見られる処理では、あらかじめ用意された描画処理の一部をパラメータ化して外部ファイルから読み込むことでカスタマイズを実現している。そのためカスタマイズを行える範囲は、固定的かつ限定的である。さらに範囲を変更する場合の影響範囲がアプリケーション全体に及ぶ。一方で本実施形態の描画処理は、描画処理自体を外部化してＧＵＩ部品から呼び出す。そのため、ＧＵＩ部品からの呼び出しが行えれば、任意の手段で実装でき、プラットフォームの持つすべての描画機能を使え、自由な描画が行える。さらに、描画の責任範囲が描画処理に限定しているためメンテナンス性が高い。
【００３０】
また、本実施形態によれば、ＧＵＩ部品が外観を変更する機能をもつことにより、同じＧＵＩ部品を用いた複数のアプリケーションの外観を簡単に変更できる。すなわち、通常のスキンでは、外観を切り替える機能をアプリケーションが持つ。そのため別のアプリケーションでも外観を切り替えられるようにするには、対象とするすべてのアプリケーションに同様の機能を１から実装する必要がある。一方で本実施形態では外観を切替える機能をＧＵＩ部品が持つため、同じＧＵＩ部品を用いれば別アプリケーションであっても外観切替え要求受理インタフェースを実装するだけで切替え機能を実現できる。
【００３１】
なお、実施形態において、描画処理部５はＧＵＩ部品本体部２と同じプログラム内の一部として実装することもできるし外部プログラムとして実装することも出来る。例えば、図５に示すように、ＧＵＩ部品本体から呼び出された外部プログラムが、描画する内容をその各要素ごとに定義した描画要素定義と、アプリケーションのプロパティに応じて描画を制御するプログラムである描画処理定義とを読み込んで描画を行うようにする。同図では描画対象である描画コンテキストを外部プログラムがアクセスできない例を示しているが、ブラウザやそれに類した描画エンジンに対して描画を行う場合は、外部の描画処理が直接描画を実行することが出来る。同図中、描画要素の定義にはＳＶＧなどのベクター形式の画像定義ファイルを、描画処理にはＪａｖａ（登録商標）ｓｃｒｉｐｔなどのインタプリタを使用することができる。
【００３２】
（実施形態２）
上記の実施形態１では、いくつかのＧＵＩ部品を組み合わせたような１つのＧＵＩ部品が欲しい場合、描画処理の実装に手間が掛かる。例えば、デジタル表示とアナログ表示とを組み合わせた数値表示用のＧＵＩ部品が欲しいとする。これを実装する際に、既にデジタル表示とアナログ表示の描画処理を行うＧＵＩ部品がそれぞれ単体では存在しても、それらとは別に新たに両方の描画処理を行うＧＵＩ部品用の描画処理を実装する必要がある。
【００３３】
本実施形態では、図６に描画処理の要部構成を示すように、描画処理５には描画処理としてレイアウト描画処理５Ａを使用し、そのサブ描画処理として既存の描画処理（同図中の５Ｂ、５Ｃ）をレイアウト方法を指定して組み合わせることが出来る。
【００３４】
レイアウト方法（縦並び・横並び・オーバレイなど）とレイアウト属性（上揃え・下揃え・中央揃え・右揃え・左揃え・オフセットなど）は、レイアウト描画処理５Ａのプロパティとして公開することで、自由なレイアウトを可能にする。
【００３５】
一例として、ユーザがユーザインタフェースを介してレイアウト方法を変更する場合の処理手順を図７に示す。ユーザがレイアウトプロパティを変更することで、ＧＵＩ部品の描画を指示し、この描画処理はレイアウトプロパティの値に従ってレイアウト処理を実行し、描画する。
【００３６】
さらに、本実施形態では、描画処理のレイアウト方法にオーバレイを用意することで、描画処理を重ね合わせ可能にする。例えば、図８に示すように、デジアナメータもデジタルＧＵＩ部品とアナログＧＵＩ部品の組み合わせで実装できる。
【００３７】
また、レイアウト描画処理を再帰的に適用することで、複数のレイアウト方法（縦並び・横並び・オーバレイなど）を組み合わせた自由な描画処理を実装できる。例えば、図９に例を示すように、ＧＵＩ部品の縦並び・横並びを組み合わせた描画ができる。
【００３８】
したがって、本実施形態によれば、外観を動的に切り替えることができるよう描画処理が分離されたＧＵＩ部品について、既存の描画処理を組み合わせて新しい描画処理を簡単に作成できる。また、レイアウト描画処理を用いて複数の描画処理を組み合わせた描画処理ができるため、同じ内容の描画処理を再度実装する必要がない。
【図面の簡単な説明】
【００３９】
【図１】本発明の実施形態１を示すＧＵＩ部品の要部構成図。
【図２】外観切替の処理手順。
【図３】ユーザからの要求による外観切替の例。
【図４】システム状態に応じた外観切替の例。
【図５】描画処理の定義を外部化する例。
【図６】レイアウト描画処理の構成図。
【図７】レイアウト方法の変更処理手順。
【図８】描画処理の重ね合わせの例。
【図９】描画処理の組み合わせレイアウトの例。
【図１０】スキンの構成例。
【図１１】スキン機能追加のアプリケーションへの影響範囲。
【図１２】スキンの動作例。
【符号の説明】
【００４０】
１  ウィンドウシステムのＧＵＩ部品
２  ＧＵＩ部品本体部
３  アプリケーション
４  外部切替え要求受理インタフェース
５  描画処理部
６  描画処理生成部
７  システム状態監視コンポーネント
【図１】
0004962332.tif 000002
【図２】
0004962332.tif 000003
【図３】
0004962332.tif 000004
【図４】
0004962332.tif 000005
【図５】
0004962332.tif 000006
【図６】
0004962332.tif 000007
【図７】
0004962332.tif 000008
【図８】
0004962332.tif 000009
【図１０】
0004962332.tif 000010
【図１１】
0004962332.tif 000011
【図１２】
0004962332.tif 000012
【図９】
0004962332.tif 000013