(57)【要約】【課題】メモリ資源が潤沢でない場合であっても単純な制御でマルチウィンドウ表示及び状態制御を実現する電子機器、状態制御方法及び状態制御プログラムを提供する。【解決手段】メモリと、イベントが発生すると、表示優先度が予め決められているレイヤ毎にある描画情報データ構造体のうち発生した前記イベントに対応する前記描画情報データ構造体に、発生した前記イベントに対応する描画情報を登録、又は、発生した前記イベントに対応する前記描画情報データ構造体に登録されている前記描画情報を抹消する状態管理手段と、前記描画情報が登録又は抹消されると、表示優先度の低いレイヤから順に、前記描画情報データ構造体に登録されている前記描画情報に基づいて前記メモリの一画面分の画像データ格納領域に描画する描画手段と、前記画像データ格納領域に描画された画像を一画面に表示する表示手段と、を備える電子機器。【選択図】図１
2011138529.tif 000002
【特許請求の範囲】
【請求項１】
メモリと、  イベントが発生すると、表示優先度が予め決められているレイヤ毎にある描画情報データ構造体のうち発生した前記イベントに対応する前記描画情報データ構造体に、発生した前記イベントに対応する描画情報を登録、又は、発生した前記イベントに対応する前記描画情報データ構造体に登録されている前記描画情報を抹消する状態管理手段と、  前記描画情報が登録又は抹消されると、表示優先度の低いレイヤから順に、前記描画情報データ構造体に登録されている前記描画情報に基づいて前記メモリの一画面分の画像データ格納領域に描画する描画手段と、  前記画像データ格納領域に描画された画像を一画面に表示する表示手段と、を備える電子機器。
【請求項２】
前記描画手段は、第一のレイヤの前記描画情報データ構造体に登録されている描画情報に基づいて描画される領域が前記第一のレイヤより表示優先度の高い第二のレイヤの前記描画情報データ構造体に登録されている描画情報に基づいて描画される領域に包含される場合、前記第一のレイヤの前記描画情報データ構造体に登録されている前記描画情報に基づいて描画することなく前記第二のレイヤの前記描画情報データ構造体に登録されている前記描画情報に基づいて描画し、前記第一のレイヤの前記描画情報データ構造体に登録されている前記描画情報に基づいて描画される領域が前記第二のレイヤの前記描画情報データ構造体に登録されている前記描画情報に基づいて描画される領域に包含されない場合、前記第一のレイヤの前記描画情報データ構造体に登録されている前記描画情報に基づいて描画した後に前記第二のレイヤの前記描画情報データ構造体に登録されている前記描画情報に基づいて描画する、請求項１に記載の電子機器。
【請求項３】
前記描画手段は、既に前記描画情報が前記描画情報データ構造体に登録され前記画像データ格納領域に描画済みである他のレイヤと比較して最も表示優先度が高い最優先レイヤの前記描画情報データ構造体に前記描画情報が登録されると、前記他のレイヤの前記描画情報データ構造体に登録されている前記描画情報に基づいて描画することなく、前記最優先レイヤの前記描画情報データ構造体に登録されている前記描画情報に基づいて描画処理を実行する、請求項２に記載の電子機器。
【請求項４】
前記描画情報は、前記描画処理の参照と、前記描画処理によって描画される領域の位置情報とを含み、  前記描画手段は、前記位置情報に基づいて前記描画情報に基づいて描画される複数の領域の包含関係を判定する、請求項３に記載の電子機器。
【請求項５】
発生した前記イベントに応じた処理を行い、前記イベントに対応する状態要素がアクティブであるか又は非アクティブであるかを前記状態要素毎に設定するイベント処理を実行するイベント処理手段をさらに備え、  前記状態管理手段は、前記イベントが発生すると、処理優先度が予め決められているレイヤ毎にある状態制御データ構造体に登録されているイベント処理情報のうち、最も処理優先度が高いレイヤの状態制御データ構造体に登録されているイベント処理情報に基づいて前記イベント処理手段を起動し、アクティブとなった前記状態要素のうち最も処理優先度の高い状態要素に対応する前記イベント処理情報を対応する前記状態制御データ構造体に登録又は非アクティブとなった前記状態要素に対応する前記イベント処理情報を対応する前記状態制御データ構造体から抹消する、請求項１〜４のいずれか一項に記載の電子機器。
【請求項６】
ユーザの指示を入力する指示入力手段をさらに備え、  前記イベント処理情報は、前記指示の有効無効判定処理及び前記指示に応じた処理を行う外部イベント処理の参照と、内部イベントに応じた処理を行う内部イベント処理の参照とを含み、  前記状態管理手段は、前記指示が入力されると、前記状態制御データ構造体に登録されている前記外部イベント処理の参照のうち最も処理優先度の高いレイヤの前記状態制御データ構造体に登録されている前記外部イベント処理の参照に基づいて前記外部イベント処理を起動し、前記内部イベントが発生すると、前記状態制御データ構造体に登録されている前記内部イベント処理の参照のうち最も処理優先度の高いレイヤの前記状態制御データ構造体に登録されている前記内部イベント処理の参照に基づいて前記内部イベント処理を起動する、請求項５に記載の電子機器。
【請求項７】
発生したイベントに応じた処理を行い、前記イベントに対応する状態要素がアクティブであるか又は非アクティブであるかを前記状態要素毎に設定するイベント処理を実行するイベント処理手段と、  前記イベントが発生すると、処理優先度が予め決められているレイヤ毎にある状態制御データ構造体に登録されているイベント処理情報のうち、最も処理優先度が高いレイヤの状態制御データ構造体に登録されているイベント処理情報に基づいて前記イベント処理手段を起動し、アクティブとなった前記状態要素のうち最も処理優先度の高い状態要素に対応する前記イベント処理情報を対応する前記状態制御データ構造体に登録又は非アクティブとなった前記状態要素に対応する前記イベント処理情報を対応する前記状態制御データ構造体から抹消する、状態管理手段と、を備える電子機器。
【請求項８】
イベントが発生すると、表示優先度が予め決められているレイヤ毎にある描画情報データ構造体のうち発生した前記イベントに対応する前記描画情報データ構造体に、発生した前記イベントに対応する描画情報を登録、又は、発生した前記イベントに対応する前記描画情報データ構造体に登録されている前記描画情報を抹消し、  前記描画情報が登録又は抹消されると、表示優先度の低いレイヤから順に、前記描画情報データ構造体に登録されている前記描画情報に基づいてメモリの一画面分の画像データ格納領域に描画し、  前記画像データ格納領域に描画された画像を一画面に表示する、ことを含む状態制御方法。
【請求項９】
発生したイベントに応じた処理を行い、前記イベントに対応する状態要素がアクティブであるか又は非アクティブであるかを前記状態要素毎に設定するイベント処理を実行し、  前記イベントが発生すると、処理優先度が予め決められているレイヤ毎にある状態制御データ構造体に登録されているイベント処理情報のうち、最も処理優先度が高いレイヤの状態制御データ構造体に登録されているイベント処理情報に基づいて前記イベント処理を起動し、アクティブとなった前記状態要素のうち最も処理優先度の高い状態要素に対応する前記イベント処理情報を対応する前記状態制御データ構造体に登録又は非アクティブとなった前記状態要素に対応する前記イベント処理情報を対応する前記状態制御データ構造体から抹消する、ことを含む状態制御方法。
【請求項１０】
イベントが発生すると、表示優先度が予め決められているレイヤ毎にある描画情報データ構造体のうち発生した前記イベントに対応する前記描画情報データ構造体に、発生した前記イベントに対応する描画情報を登録、又は、発生した前記イベントに対応する前記描画情報データ構造体に登録されている前記描画情報を抹消する状態管理手段と、  前記描画情報が登録又は抹消されると、表示優先度の低いレイヤから順に、前記描画情報データ構造体に登録されている前記描画情報に基づいてメモリの一画面分の画像データ格納領域に描画する描画手段と、  前記画像データ格納領域に描画された画像を一画面に表示する表示手段と、してコンピュータを機能させる状態制御プログラム。
【請求項１１】
発生したイベントに応じた処理を行い、前記イベントに対応する状態要素がアクティブであるか又は非アクティブであるかを前記状態要素毎に設定するイベント処理を実行するイベント処理手段と、  前記イベントが発生すると、処理優先度が予め決められているレイヤ毎にある状態制御データ構造体に登録されているイベント処理情報のうち、最も処理優先度が高いレイヤの状態制御データ構造体に登録されているイベント処理情報に基づいて前記イベント処理手段を起動し、アクティブとなった前記状態要素のうち最も処理優先度の高い状態要素に対応する前記イベント処理情報を対応する前記状態制御データ構造体に登録又は非アクティブとなった前記状態要素に対応する前記イベント処理情報を対応する前記状態制御データ構造体から抹消する、状態管理手段と、してコンピュータを機能させる状態制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は電子機器、状態制御方法及び状態制御プログラムに関する。
【背景技術】
【０００２】
従来、パーソナルコンピュータをはじめとする表示装置を有する電子機器において、ディスプレイに同時に複数のウィンドウを表示する、所謂マルチウィンドウ表示が知られている。このようなマルチウィンドウ表示を行う電子機器では、各ウィンドウの画像データをそれぞれメモリの異なる領域に作成し、ウィンドウの上下関係による表示優先順位に従って参照アドレスを切り換えることによって一画面分の表示を実現している（特許文献１）。しかしこの方法では、各ウィンドウの表示データを格納するために大量のメモリ領域が必要となる。
一方、メモリ資源が潤沢でない電子機器の場合、最小限のメモリ領域を使用してマルチウィンドウ表示を実現するためには、ソフトウェアでの制御が重複し複雑化するという問題があった。例えば、画面表示の変更の要因となるイベントが発生すると、イベント発生を検知し表示を更新するという一連の処理単位毎に、更新内容を判定する必要があった。具体的には例えば、次に表示されるウィンドウよりも表示優先度の高いウィンドウが現在表示されていないかどうか、ウィンドウを消去するとき次に表示されなければならないウィンドウはどれか、また表示が更新されなければならない領域を含むウィンドウはどれであるか、等を判定しなければならなかった。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１１−１６１２５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明は、メモリ資源が潤沢でない場合であっても単純な制御でマルチウィンドウ表示及び状態制御を実現する電子機器、状態制御方法及び状態制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００５】
（１）上記目的を達成するための電子機器は、メモリと、イベントが発生すると、表示優先度が予め決められているレイヤ毎にある描画情報データ構造体のうち発生した前記イベントに対応する前記描画情報データ構造体に、発生した前記イベントに対応する描画情報を登録、又は、発生した前記イベントに対応する前記描画情報データ構造体に登録されている前記描画情報を抹消する状態管理手段と、前記描画情報が登録又は抹消されると、表示優先度の低いレイヤから順に、前記描画情報データ構造体に登録されている前記描画情報に基づいて前記メモリの一画面分の画像データ格納領域に描画する描画手段と、前記画像データ格納領域に描画された画像を一画面に表示する表示手段と、を備える。
この電子機器によると、表示優先度が予め決められているレイヤ毎にある描画情報データ構造体に登録されている描画情報に基づいて一画面分の画像データ格納領域に画像データを描画する構成であるので、レイヤの個数分の画像データ格納領域を必要としないため、メモリ資源を節約することができる。描画情報を登録又は抹消する処理と描画処理とを切り離し、その間に、表示優先度が予め決められているレイヤ毎に描画情報データ構造体を介在させ、一元的に描画情報を管理することにより、プログラムロジックの重複をなくすことができる。すなわち、次に表示されるウィンドウよりも表示優先度の高いウィンドウは現在表示されていないかどうか、ウィンドウを消去するとき次に表示されるウィンドウはどれか、また表示が更新されなければならない領域を含むウィンドウはどれであるか等を、イベント発生を検知し表示を更新するという一連の処理単位毎に判定する必要がない。つまり、描画情報を登録又は抹消する処理では、イベントの種類によって一義的に定まっている描画情報を、イベントの種類によって一義的に定まっている描画情報データ構造体にイベント発生履歴を判定することなく登録し、また、イベントの種類によって一義的に定まっている描画情報データ構造体に登録されている描画情報をイベント発生履歴を判定することなく抹消すればよくなる。描画処理では、発生したのがどんなイベントであっても、イベント発生履歴とは無関係に、表示優先度の低いレイヤから順に、描画情報データ構造体に登録されている描画情報に基づいて記憶手段の一画面分の画像データ格納領域に描画するという同一の処理を繰り返せばよくなる。その結果、一画面分の画像データを生成することができるため、制御を単純化することができる。
【０００６】
（２）上記目的を達成するための電子機器において、前記描画手段は、第一のレイヤの前記描画情報データ構造体に登録されている描画情報に基づいて描画される領域が前記第一のレイヤより表示優先度の高い第二のレイヤの前記描画情報データ構造体に登録されている描画情報に基づいて描画される領域に包含される場合、前記第一のレイヤの前記描画情報データ構造体に登録されている前記描画情報に基づいて描画することなく前記第二のレイヤの前記描画情報データ構造体に登録されている前記描画情報に基づいて描画し、前記第一のレイヤの前記描画情報データ構造体に登録されている前記描画情報に基づいて描画される領域が前記第二のレイヤの前記描画情報データ構造体に登録されている前記描画情報に基づいて描画される領域に包含されない場合、前記第一のレイヤの前記描画情報データ構造体に登録されている前記描画情報に基づいて描画した後に前記第二のレイヤの前記描画情報データ構造体に登録されている前記描画情報に基づいて描画してもよい。
この電子機器によると、第一のレイヤの描画情報データ構造体に登録されている描画情報に基づいて描画される画像の全体に、それよりも表示優先度の高い第二のレイヤの描画情報データ構造体に登録されている描画情報に基づいて描画される画像が最終的に重なる場合、第一のレイヤの描画情報データ構造体に登録されている描画情報に基づいて描画することなく第二のレイヤの描画情報データ構造体に登録されている描画情報に基づいて描画するため、無駄な処理を省略し、一画面分の画像を表示するための画像データを早く生成することができる。
【０００７】
（３）上記目的を達成するための電子機器において、前記描画手段は、既に前記描画情報が前記描画情報データ構造体に登録され前記画像データ格納領域に描画済みである他のレイヤと比較して最も表示優先度が高い最優先レイヤの前記描画情報データ構造体に前記描画情報が登録されると、前記他のレイヤの前記描画情報データ構造体に登録されている前記描画情報に基づいて描画することなく、前記最優先レイヤの前記描画情報データ構造体に登録されている前記描画情報に基づいて描画処理を実行してもよい。
この電子機器によると、既に描画情報が描画情報データ構造体に登録され画像データ格納領域に描画済みである他のレイヤと比較して最も表示優先度が高い最優先レイヤの描画情報データ構造体に描画情報が登録されると、他のレイヤの描画情報データ構造体に登録されている描画情報に基づいて描画することなく、最優先レイヤの描画情報データ構造体に登録されている描画情報に基づいて描画するため、一画面分の画像を表示するための画像データを早く生成することができる。
【０００８】
（４）上記目的を達成するための電子機器において、前記描画情報は、前記描画処理の参照と、前記描画処理によって描画される領域の位置情報とを含み、前記描画手段は、前記位置情報に基づいて前記描画情報に基づいて描画される複数の領域の包含関係を判定してもよい。
【０００９】
（５）上記目的を達成するための電子機器は、発生した前記イベントに応じた処理を行い、前記イベントに対応する状態要素がアクティブであるか又は非アクティブであるかを前記状態要素毎に設定するイベント処理を実行するイベント処理手段をさらに備えてもよい。前記状態管理手段は、前記イベントが発生すると、処理優先度が予め決められているレイヤ毎にある状態制御データ構造体に登録されているイベント処理情報のうち、最も処理優先度が高いレイヤの状態制御データ構造体に登録されているイベント処理情報に基づいて前記イベント処理手段を起動し、アクティブとなった前記状態要素のうち最も処理優先度の高い状態要素に対応する前記イベント処理情報を対応する前記状態制御データ構造体に登録又は非アクティブとなった前記状態要素に対応する前記イベント処理情報を対応する前記状態制御データ構造体から抹消してもよい。
この電子機器によると、イベントが発生すると、処理優先度が予め決められているレイヤ毎にある状態制御データ構造体に登録されているイベント処理情報のうち最優先のレイヤに登録されているイベント処理情報に基づいてイベント処理が起動される。イベント処理では、発生したイベントに応じた処理が行われ、イベントに対応する状態要素がアクティブであるか又は非アクティブであるかが設定される。その後、アクティブになった状態要素のうち最優先の状態要素に対応するイベント処理情報が状態制御データ構造体に登録される。又は非アクティブになった状態要素に対応するイベント処理情報が状態制御データ構造体から抹消される。つまり、発生したイベントに応じた処理を行い、対応する状態要素がアクティブであるか非アクティブであるかを設定するイベント処理と、優先させるべき状態要素に対応するイベント処理を判定して起動する処理とを切り離し、その間に、処理優先度が予め決められているレイヤ毎にイベント処理情報データ構造体を介在させ、一元的にイベント処理を管理することにより、プログラムロジックの重複をなくすことができる。ここで状態要素とは、電子機器の状態を定める個々の要素を示すものである。イベント処理手段は、イベントの発生履歴や他の状態要素との優先関係を考慮することなく、発生したイベントに応じた処理を行い、対応する状態要素がアクティブであるか非アクティブであるかを設定すればよい。状態管理手段は、発生したのがどんなイベントであっても、処理優先度の高いレイヤから順に、状態制御データ構造体に登録されているイベント処理情報を検索し、最優先のレイヤの状態制御データ構造体に登録されているイベント処理情報に基づいてイベント処理を起動するという同一の処理を繰り返せばよくなる。また、状態管理手段は、アクティブである状態要素のうち最も処理優先度の高い状態要素に対応するイベント処理情報を対応するレイヤの状態制御データ構造体に登録又は非アクティブとなった状態要素に対応するイベント処理情報を対応する状態制御データ構造体から抹消すればよい。その結果、発生したイベントに応じた処理を実行することができるため、制御を単純化することができる。
【００１０】
（６）上記目的を達成するための電子機器は、ユーザの指示を入力する操作手段をさらに備えてもよい。前記イベント処理情報は、前記指示の有効無効判定処理及び前記指示に応じた処理を行う外部イベント処理の参照と、内部イベントに応じた処理を行う内部イベント処理の参照とを含んでもよい。前記状態管理手段は、前記指示が入力されると、前記状態制御データ構造体に登録されている前記外部イベント処理の参照のうち最も処理優先度の高いレイヤの前記状態制御データ構造体に登録されている前記外部イベント処理の参照に基づいて前記外部イベント処理を実行し、前記内部イベントが発生すると、前記状態制御データ構造体に登録されている前記内部イベント処理の参照のうち最も処理優先度の高いレイヤの前記状態制御データ構造体に登録されている前記内部イベント処理の参照に基づいて前記内部イベント処理を実行してもよい。
この電子機器によると、状態要素に対応付けられるイベント処理を外部イベント処理と内部イベント処理とに区別する構成であるので、状態要素に対応付けられるイベント処理を区別しない構成と比較して、プログラムロジックの重複を排除しプログラムサイズを削減することができる。すなわち例えば、異なる複数の状態要素に関して、外部イベントに対する処理は共通するが内部イベントに対する処理は異なるという場合に、外部イベントに対する処理と内部イベントに対する処理とを区別して参照できるため、プログラムロジックの重複を排除することができる。
【００１１】
（７）上記目的を達成するための電子機器は、発生したイベントに応じた処理を行い、前記イベントに対応する状態要素がアクティブであるか又は非アクティブであるかを前記状態要素毎に設定するイベント処理を実行するイベント処理手段と、前記イベントが発生すると、処理優先度が予め決められているレイヤ毎にある状態制御データ構造体に登録されているイベント処理情報のうち、最も処理優先度が高いレイヤの状態制御データ構造体に登録されているイベント処理情報に基づいて前記イベント処理手段を起動し、アクティブとなった前記状態要素のうち最も処理優先度の高い状態要素に対応する前記イベント処理情報を対応する前記状態制御データ構造体に登録又は非アクティブとなった前記状態要素に対応する前記イベント処理情報を対応する前記状態制御データ構造体から抹消する、状態管理手段と、を備える。
この電子機器によると、発生したイベントに応じた処理を行い、対応する状態要素がアクティブであるか非アクティブであるかを設定するイベント処理と、優先させるべき状態要素に対応するイベント処理を判定して起動する処理とを切り離し、その間に、処理優先度が予め決められているレイヤ毎にイベント処理情報データ構造体を介在させ、一元的にイベント処理を管理することにより、プログラムロジックの重複をなくすことができる。イベント処理手段は、イベントの発生履歴や他の状態要素との優先関係を考慮することなく、発生したイベントに応じた処理を行い、対応する状態要素がアクティブであるか非アクティブであるかを設定すればよい。状態管理手段は、発生したのがどんなイベントであっても、処理優先度の高いレイヤから順に、状態制御データ構造体に登録されているイベント処理情報を検索し、最優先のレイヤの状態制御データ構造体に登録されているイベント処理情報に基づいてイベント処理を起動するという同一の処理を繰り返せばよくなる。また、状態管理手段は、アクティブである状態要素のうち最も処理優先度の高い状態要素に対応するイベント処理情報を対応するレイヤの状態制御データ構造体に登録又は非アクティブとなった状態要素に対応するイベント処理情報を対応する状態制御データ構造体から抹消すればよい。その結果、発生したイベントに応じた処理を実行することができるため、制御を単純化することができる。
【００１２】
（８）上記目的を達成するための状態制御方法は、イベントが発生すると、表示優先度が予め決められているレイヤ毎にある描画情報データ構造体のうち発生した前記イベントに対応する前記描画情報データ構造体に、発生した前記イベントに対応する描画情報を登録、又は、発生した前記イベントに対応する前記描画情報データ構造体に登録されている前記描画情報を抹消し、前記描画情報が登録又は抹消されると、表示優先度の低いレイヤから順に、前記描画情報データ構造体に登録されている前記描画情報に基づいてメモリの一画面分の画像データ格納領域に描画し、前記画像データ格納領域に描画された画像を一画面に表示する、ことを含む。
この状態制御方法によると、表示優先度が予め決められているレイヤ毎にある描画情報データ構造体に登録されている描画情報に基づいて一画面分の画像データ格納領域に画像データを描画する構成であるので、レイヤの個数分の画像データ格納領域を必要としないため、メモリ資源を節約することができる。描画情報を登録又は抹消する処理と描画処理とを切り離し、その間に、表示優先度が予め決められているレイヤ毎に描画情報データ構造体を介在させ、一元的に描画情報を管理することにより、プログラムロジックの重複をなくすことができる。すなわち、次に表示されるウィンドウよりも表示優先度の高いウィンドウは現在表示されていないかどうか、ウィンドウを消去するとき次に表示されるウィンドウはどれか、また表示が更新されなければならない領域を含むウィンドウはどれであるか等を、イベント発生を検知し表示を更新するという一連の処理単位毎に判定する必要がない。つまり、描画情報を登録又は抹消する処理では、イベントの種類によって一義的に定まっている描画情報を、イベントの種類によって一義的に定まっている描画情報データ構造体にイベント発生履歴を判定することなく登録し、また、イベントの種類によって一義的に定まっている描画情報データ構造体に登録されている描画情報をイベント発生履歴を判定することなく抹消すればよくなる。描画処理では、発生したのがどんなイベントであっても、イベント発生履歴とは無関係に、表示優先度の低いレイヤから順に、描画情報データ構造体に登録されている描画情報に基づいて記憶手段の一画面分の画像データ格納領域に描画するという同一の処理を繰り返せばよくなる。その結果、一画面分の画像データを生成することができるため、制御を単純化することができる。
【００１３】
（９）上記目的を達成するための状態制御方法は、発生したイベントに応じた処理を行い、前記イベントに対応する状態要素がアクティブであるか又は非アクティブであるかを前記状態要素毎に設定するイベント処理を実行し、前記イベントが発生すると、処理優先度が予め決められているレイヤ毎にある状態制御データ構造体に登録されているイベント処理情報のうち、最も処理優先度が高いレイヤの状態制御データ構造体に登録されているイベント処理情報に基づいて前記イベント処理を起動し、アクティブとなった前記状態要素のうち最も処理優先度の高い状態要素に対応する前記イベント処理情報を対応する前記状態制御データ構造体に登録又は非アクティブとなった前記状態要素に対応する前記イベント処理情報を対応する前記状態制御データ構造体から抹消する、ことを含む。
この状態制御方法によると、発生したイベントに応じた処理を行い、対応する状態要素がアクティブであるか非アクティブであるかを設定するイベント処理と、優先させるべき状態要素に対応するイベント処理を判定して起動する処理とを切り離し、その間に、処理優先度が予め決められているレイヤ毎にイベント処理情報データ構造体を介在させ、一元的にイベント処理を管理することにより、プログラムロジックの重複をなくすことができる。イベント処理では、イベントの発生履歴や他の状態要素との優先関係を考慮することなく、発生したイベントに応じた処理を行い、対応する状態要素がアクティブであるか非アクティブであるかを設定すればよい。状態管理処理では、発生したのがどんなイベントであっても、処理優先度の高いレイヤから順に、状態制御データ構造体に登録されているイベント処理情報を検索し、最優先のレイヤの状態制御データ構造体に登録されているイベント処理情報に基づいてイベント処理を起動するという同一の処理を繰り返せばよくなる。また、状態管理処理は、アクティブである状態要素のうち最も処理優先度の高い状態要素に対応するイベント処理情報を対応するレイヤの状態制御データ構造体に登録又は非アクティブとなった状態要素に対応するイベント処理情報を対応する状態制御データ構造体から抹消すればよい。その結果、発生したイベントに応じた処理を実行することができるため、制御を単純化することができる。
【００１４】
（１０）上記目的を達成するための状態制御プログラムは、イベントが発生すると、表示優先度が予め決められているレイヤ毎にある描画情報データ構造体のうち発生した前記イベントに対応する前記描画情報データ構造体に、発生した前記イベントに対応する描画情報を登録、又は、発生した前記イベントに対応する前記描画情報データ構造体に登録されている前記描画情報を抹消する状態管理手段と、前記描画情報が登録又は抹消されると、表示優先度の低いレイヤから順に、前記描画情報データ構造体に登録されている前記描画情報に基づいてメモリの一画面分の画像データ格納領域に描画する描画手段と、前記画像データ格納領域に描画された画像を一画面に表示する表示手段と、してコンピュータを機能させる。
この状態制御プログラムによると、表示優先度が予め決められているレイヤ毎にある描画情報データ構造体に登録されている描画情報に基づいて一画面分の画像データ格納領域に画像データを描画する構成であるので、レイヤの個数分の画像データ格納領域を必要としないため、メモリ資源を節約することができる。描画情報を登録又は抹消する処理と描画処理とを切り離し、その間に、表示優先度が予め決められているレイヤ毎に描画情報データ構造体を介在させ、一元的に描画情報を管理することにより、プログラムロジックの重複をなくすことができる。すなわち、次に表示されるウィンドウよりも表示優先度の高いウィンドウは現在表示されていないかどうか、ウィンドウを消去するとき次に表示されるウィンドウはどれか、また表示が更新されなければならない領域を含むウィンドウはどれであるか等を、イベント発生を検知し表示を更新するという一連の処理単位毎に判定する必要がない。つまり、描画情報を登録又は抹消する処理では、イベントの種類によって一義的に定まっている描画情報を、イベントの種類によって一義的に定まっている描画情報データ構造体にイベント発生履歴を判定することなく登録し、また、イベントの種類によって一義的に定まっている描画情報データ構造体に登録されている描画情報をイベント発生履歴を判定することなく抹消すればよくなる。描画処理では、発生したのがどんなイベントであっても、イベント発生履歴とは無関係に、表示優先度の低いレイヤから順に、描画情報データ構造体に登録されている描画情報に基づいて記憶手段の一画面分の画像データ格納領域に描画するという同一の処理を繰り返せばよくなる。その結果、一画面分の画像データを生成することができるため、制御を単純化することができる。
【００１５】
（１１）上記目的を達成するための状態制御プログラムは、発生したイベントに応じた処理を行い、前記イベントに対応する状態要素がアクティブであるか又は非アクティブであるかを前記状態要素毎に設定するイベント処理を実行するイベント処理手段と、前記イベントが発生すると、処理優先度が予め決められているレイヤ毎にある状態制御データ構造体に登録されているイベント処理情報のうち、最も処理優先度が高いレイヤの状態制御データ構造体に登録されているイベント処理情報に基づいて前記イベント処理手段を起動し、アクティブとなった前記状態要素のうち最も処理優先度の高い状態要素に対応する前記イベント処理情報を対応する前記状態制御データ構造体に登録又は非アクティブとなった前記状態要素に対応する前記イベント処理情報を対応する前記状態制御データ構造体から抹消する、状態管理手段と、してコンピュータを機能させる。
この状態制御プログラムによると、発生したイベントに応じた処理を行い、対応する状態要素がアクティブであるか非アクティブであるかを設定するイベント処理と、優先させるべき状態要素に対応するイベント処理を判定して起動する処理とを切り離し、その間に、処理優先度が予め決められているレイヤ毎にイベント処理情報データ構造体を介在させ、一元的にイベント処理を管理することにより、プログラムロジックの重複をなくすことができる。イベント処理手段は、イベントの発生履歴や他の状態要素との優先関係を考慮することなく、発生したイベントに応じた処理を行い、対応する状態要素がアクティブであるか非アクティブであるかを設定すればよい。状態管理手段は、発生したのがどんなイベントであっても、処理優先度の高いレイヤから順に、状態制御データ構造体に登録されているイベント処理情報を検索し、最優先のレイヤの状態制御データ構造体に登録されているイベント処理情報に基づいてイベント処理を起動するという同一の処理を繰り返せばよくなる。また、状態管理手段は、アクティブである状態要素のうち最も処理優先度の高い状態要素に対応するイベント処理情報を対応するレイヤの状態制御データ構造体に登録又は非アクティブとなった状態要素に対応するイベント処理情報を対応する状態制御データ構造体から抹消すればよい。その結果、発生したイベントに応じた処理を実行することができるため、制御を単純化することができる。
【００１６】
尚、本発明に備わる複数の手段の各機能は、構成自体で機能が特定されるハードウェア資源、プログラムにより機能が特定されるハードウェア資源、又はそれらの組み合わせにより実現される。また、これら複数の手段の各機能は、各々が物理的に互いに独立したハードウェア資源で実現されるものに限定されない。また、請求項に記載された方法の各動作の順序は、技術上の阻害要因がない限り、記載順に限定されるものではなく、どのような順序で実行されてもよく、また同時に実行されてもよい。
【図面の簡単な説明】
【００１７】
【図１】本発明の一実施例に係るソフトウェアの機能ブロック図。
【図２】本発明の一実施例に係るハードウェアの機能ブロック図。
【図３】本発明の一実施例に係る状態管理データ構造体を示す図。
【図４】本発明の一実施例に係る状態制御データ構造体を示す図。
【図５】本発明の一実施例に係る描画情報データ構造体を示す図。
【図６】本発明の一実施例に係る模式図。
【図７】本発明の一実施例に係る模式図。
【図８】本発明の一実施例に係るフローチャート。
【図９】本発明の一実施例に係るフローチャート。
【図１０】本発明の一実施例に係るフローチャート。
【図１１】本発明の一実施例に係る模式図。
【図１２】本発明の一実施例に係る模式図。
【発明を実施するための形態】
【００１８】
以下、実施例に基づいて本発明の実施の形態を説明する。
図２は、本発明による電子機器の一実施例としてのマルチファンクションプリンタ（ＭＦＰ）１のハードウェア構成を示すブロック図である。ＭＦＰ１は、リムーバブルメモリ９６から画像を入力して印刷する機能、画像を読み取って印刷する機能などを備えている。
【００１９】
スキャンユニット５０は、リニアイメージセンサ、リニアイメージセンサの駆動回路、照明装置、結像光学系、ＡＤ変換器等で構成されている。尚、スキャンユニット５０は、フラットベッド型でもよいし、シートフィード型でもよいし、ハンディ型でもよい。
プリントユニット７０は、インクジェット方式で用紙に画像を形成するための記録ヘッド、記録ヘッドを往復運動させる駆動機構、給排紙機構等を備える。プリントユニット７０の印刷方式は、レーザ方式、サーマル方式、ドットインパクト方式等でも良い。
【００２０】
外部メモリコントローラ９５は、図示しないカードスロットから挿入されたリムーバブルメモリ９６に接続される。リムーバブルメモリ９６に格納されたデータは外部メモリコントローラ９５によって読み出され、ＲＡＭ７４に転送される。
通信部９３は、制御部７２がＰＣ等の外部のシステムと通信するための通信インタフェースである。通信部９３は、ＬＡＮ、インターネット、ＵＳＢ等を通じて外部のシステムと通信し、ハードディスク、コンパクトディスク等に格納されているデータを取得する。
【００２１】
ディジタル画像処理部８０は、ガンマ補正、シェーディング補正、カラーバランス補正、ＪＰＥＧ画像のデコード、解像度変換、アンシャープ処理、階調補正、ハーフトーニング、分版処理等の画像処理をＣＰＵ７８と協働して実行するＤＳＰである。ディジタル画像処理部８０は、スキャンユニット５０から出力される画像や外部メモリコントローラ９５によって読み出された画像のフォーマットを印刷に適したフォーマットに変換する。
【００２２】
制御部７２は、ＲＯＭ７６、ＣＰＵ７８及びメモリとしてのＲＡＭ７４、を備える。ＣＰＵ７８はＲＯＭ７６に格納されている制御プログラムを実行してＭＦＰ１の各部を制御する。ＲＯＭ７６は、制御プログラムを格納している不揮発性メモリである。ＲＡＭ７４は、制御プログラムやスキャンユニット５０に読み取られた画像等の各種のデータが一時的に格納される揮発性メモリである。制御プログラムは遠隔地のサーバからネットワークを経由してＲＯＭ７６に格納してもよいし、リムーバブルメモリ９６等のコンピュータ読み取り可能な記録媒体を経由してＲＯＭ７６に格納してもよい。
【００２３】
操作パネル６８は、モードに応じたメニューやステータスを表示するためのＦＰＤ（Flat Panel Display）８８、ＦＰＤ８８を駆動するディスプレイ駆動部（ＤＳＰＤ）８６、モードを変更したりメニューを操作したり各種要求を入力するためのボタン群８２等で構成されている。ボタン群８２は、請求項に記載の「指示入力手段」に相当する。ＦＰＤ８８は、例えばＱＶＧＡサイズの解像度を有する。ＦＰＤ８８の画面は、制御部７２によって生成されＲＡＭ７４の画面領域７３に格納される画像に基づいてＤＳＰＤ８６がＦＰＤ８８を駆動することによって表示される。画面領域７３は、請求項記載の「一画面分の画像データ格納領域」に相当する。ＤＳＰＤ８６及びＦＰＤ８８は、表示手段として機能する。
以上、ＭＦＰ１のハードウェア構成について説明した。
【００２４】
図１は、ＭＦＰ１の論理的構成を示すブロック図である。図３は、本実施形態に係る状態管理データ構造体、図４は状態制御データ構造体、図５は描画情報データ構造体を説明する図である。
状態管理データ構造体３２４は、「電源オフ中」や「カメラ接続表示中」などのような、ＭＦＰ１の全体としての状態を定めるための個々の要素（以降、状態要素という）毎に、イベント処理情報と描画情報と発生状況とを関連付けて記憶する。イベント処理情報フィールド及び描画情報フィールドは、各状態要素に対応付するイベント処理情報及び描画情報が予め設定されている。各状態要素の発生状況フィールドは、イベントの発生に応じて動的に「アクティブ」又は「非アクティブ」が設定される。イベント処理情報には、状態要素に対応する外部イベント処理モジュールの参照と内部イベント処理モジュールの参照が記憶される。外部イベント処理モジュールは、ボタン群８２を介して入力されたユーザの指示の有効無効判定及びその指示内容に応じた処理を行うプログラム部品である。内部イベント処理モジュールは、上記の外部イベント以外の内部的に発生するイベント（タイムアウト発生、プリントユニット７０でのエラー発生等）に応じた処理を行うプログラム部品である。外部イベント処理モジュール及び内部イベント処理モジュールでは、後述するように、発生したイベントの種類によっては、対応する状態要素の発生状況の更新も行われる。描画情報には、状態要素に対応する描画モジュールの参照と位置情報等が記憶される。各状態要素は処理優先度が予め設計されており、その処理優先度順に状態管理データ構造体３２４に格納されている。状態管理データ構造体３２４はＲＡＭ７４に記憶される。
【００２５】
状態管理モジュール３００は、制御部７２を状態管理手段として機能させるプログラム部品である。状態管理モジュール３００は、ユーザによるボタン群８２の操作や、外部機器との接続、インク切れ等の各種エラー等のイベントが発生すると、後述する状態制御データ構造体３２２に登録されているイベント処理情報のうち最優先のレイヤに登録されているイベント処理情報に基づいてイベント処理モジュールを起動する。
複数のイベント処理モジュール３５０、３５１、３５２、３５３、３５４、３５５、３５６、３５７は、対応する状態要素がアクティブである期間にイベントが発生した際に起動され、制御部７２をイベント処理手段として機能させるプログラム部品である。これらのイベント処理モジュールは、発生したイベントによって、状態管理データ構造体３２４で管理されている状態要素の発生状況が変化する場合、その状態要素の発生状況フィールドに「アクティブ」又は「非アクティブ」を設定する。イベント発生に応じてハンドリングされるイベント処理モジュール３５８において状態管理データ構造体３２４の対応する状態要素の発生状況を設定し、状態管理モジュール３００にイベントが発生したことを通知する構成であってもよい。この場合、イベント処理モジュール３５８は、制御部７２をイベント処理手段として機能させる。
また、状態管理モジュール３００は、状態管理データ構造体３２４を参照し、発生状況が「アクティブ」な状態要素のうち最優先の状態要素に対応するイベント処理情報を状態制御データ構造体３２２の対応するレイヤに、最優先の状態要素に対応する描画情報を描画情報データ構造体３００の対応するレイヤに登録する。あるイベントの発生によって、状態管理データ構造体３２４で管理している状態要素が全て「非アクティブ」になった場合は、状態管理モジュール３００は、状態制御データ構造体３２２及び描画情報データ構造体３００の対応するレイヤに登録されているイベント処理情報と描画情報とを抹消する。
【００２６】
状態制御データ構造体３２２は、レイヤの個数分ＲＡＭ７４に確保され、レイヤ毎に動的に登録されるイベント処理情報（外部イベント処理モジュールの参照、内部イベント処理モジュールの参照）を記憶する。モジュールの参照として設定されるのは、例えば各モジュールがＲＯＭ７６に格納されている領域の先頭アドレスである。例えばタスク間で送受信される、各イベント処理モジュールと対応したメッセージコードであってもよい。ここでレイヤとは、イベント処理を優先度順に概念的に区分するものである。レイヤには予め処理優先度が対応付けられており、レイヤ１を処理優先度を最も低く、レイヤ１からレイヤ５の順に処理優先度を高く設定している。レイヤの個数は５個に限定されない。処理優先度が最も高いレイヤ５には状態管理データ構造体３２４で管理されている状態要素のうち「アクティブ」でかつ処理優先度が最も高い状態要素に対応するイベント情報が対応付けられる。レイヤ１には、セットアップモード以外のモードでのデフォルト画面が表示されている状態におけるイベント処理情報が、レイヤ２には、セットアップモード以外のモードでのサブ画面が表示されている状態におけるイベント処理情報が、対応付けられる。レイヤ３には、セットアップモードでのデフォルト画面が表示されている状態におけるイベント処理情報が、レイヤ４には、セットアップモードでのサブ画面が表示されている状態におけるイベント処理情報が、対応付けられる。以上のような対応付けがレイヤ毎に予め設計されている。
【００２７】
画面管理モジュール３１０は、後述する画面管理処理を制御部７２に実行させることによって制御部７２を描画手段、表示手段として機能させるプログラム部品である。
複数の描画モジュール３０６、３０７、３０８、３０９は、ＦＰＤ８８に表示される画像の画像データを画面領域７３に描画させることによって制御部７２を描画手段として機能させるプログラム部品である。尚、複数の描画モジュールは、高速に描画可能な専用回路で構成され、図示しないＡＳＩＣに搭載されていてもよい。
【００２８】
描画情報データ構造体３００は、レイヤの個数分ＲＡＭ７４に確保され、レイヤ毎に登録される描画情報（描画モジュールの参照、描画モジュールによって描画される領域の位置情報、及び付加情報）と、レイヤ毎に設定される、描画実行の「要／不要」を記憶する。描画モジュールと対応するＩＤ番号をさらに記憶してもよい。ここでレイヤとは、ＦＰＤ８８に表示される画像要素を表示優先度順に概念的に区分するものである。レイヤには予め表示優先度が対応付けられており、レイヤ１を表示優先度を最も低く、レイヤ１からレイヤ５の順に表示優先度を高く設定している。もちろんレイヤの個数は５個以上でも以下でもよい。表示優先度が高いレイヤのデータ構造体に登録された描画情報に基づいて描画される画像要素は、表示優先度が低いレイヤのデータ構造体に登録された描画情報に基づいて描画される画像要素より優先的に表示される。表示優先度が最も高いレイヤ５には状態管理データ構造体３２４で管理されている状態要素のうち「アクティブ」でかつ処理優先度が最も高い状態要素に対応する画像要素が対応付けられる。レイヤ１には、セットアップモード以外のモードでのデフォルト画面を表す画像要素が、レイヤ２には、セットアップモード以外のモードでのサブ画面を表す画像要素が、対応付けられる。レイヤ３には、セットアップモードでのデフォルト画面を表す画像要素が、レイヤ４には、セットアップモードでのサブ画面を表す画像要素が対応付けられる。以上のような対応付けがレイヤ毎に予め設計されている。
【００２９】
描画モジュールの参照フィールドには、例えばある画像要素を描画するための描画命令群からなる描画モジュールがＲＯＭ７６に格納されている領域の先頭アドレスが設定される。参照フィールドに設定されるのは、例えばタスク間で送受信される、各描画モジュールと対応したメッセージコードであってもよい。また、参照フィールドには描画モジュールと対応するＩＤ番号が設定され、図示しない描画専用ＡＳＩＣにそのＩＤ番号を通知することによって描画させる構成であってもよい。位置情報フィールドには、描画モジュールによって描画される領域の位置を表す情報として、領域の描画開始座標（Ｘ，Ｙ）と幅及び高さが設定される。画像要素とは、例えばウィンドウのような矩形の画像を指す。尚、画像要素は矩形でなくてもよく、例えば文字やアイコンそのものであってもよい。付加情報フィールドは、描画情報毎に異なる個別の情報を記憶するためのフィールドで、例えば画面の領域全部を描画するか又は画面の一部の領域（例えば、「印刷中」の状態を示す画面における印刷残り枚数の数字の部分）だけ更新するか、等を指定するために使用される。描画命令群によって生成される画像データは、例えば１画素毎に色値を持つビットマップデータである。
以上、ＭＦＰ１の論理的構成について説明した。
【００３０】
図６は、イベント発生に応じて変化する状態制御データ構造体３２２を示す模式図である。図７は、図６のイベント発生に伴うＦＰＤ８８の画面遷移と描画情報データ構造体３２０の状態を示す模式図である。本実施形態による状態制御方法を説明するために、以下のイベントを例にして、具体的に説明する。
（１）ユーザが印刷したい画像を選択する。
（２）印刷する画像をユーザが確認する。
（３）ユーザが「印刷開始」ボタンを押す。
（４）ユーザがディジタルカメラをＭＦＰ１に接続する。
（５）ディジタルカメラの接続から一定時間が経過する。
（６）印刷が終了する。
【００３１】
（１）ユーザが印刷したい画像を選択する。
ユーザが、図示しないカードスロットにリムーバブルメモリ９６を装着し、リムーバブルメモリ９６内に格納されている画像から印刷したい画像を選択するためにボタン群８２を操作すると、状態制御データ構造体３２２に登録されているイベント処理モジュールのうち処理優先度が最優先のレイヤの状態制御データ構造体に登録されている外部イベント処理モジュールが起動される。具体的には、レイヤ１に登録されているデフォルト画面表示中の外部イベント処理モジュールが起動され、ユーザのボタン操作に応じた画像をリムーバブルメモリ９６からＲＡＭ７４に読み出す処理等が実行される。次に、描画情報登録処理及び画面管理処理が実行される。このとき描画情報登録処理に与えられるパラメータは例えば、指定レイヤとしてレイヤ１、描画モジュールの参照に「デフォルト画面」画像要素描画モジュールの参照、描画開始座標に（０，０）、幅と高さに（３２０，２４０）である。以下、描画情報登録処理及び画面管理処理について説明する。
【００３２】
（描画情報登録処理）
図８は、描画情報登録処理の流れを示すフローチャートである。描画情報登録処理は、画面表示内容の変更を伴うイベントが発生すると、実行される処理である。
はじめに、描画情報が指定レイヤの描画情報データ構造体に登録される（ステップＳ１００）。具体的には、パラメータとして与えられた指定レイヤの描画情報データ構造体に、同じくパラメータとして与えられた描画モジュールの参照と、その描画モジュールによって描画される領域の位置情報（描画開始座標、幅、高さ）とを登録する。
【００３３】
ステップＳ１０２では、指定レイヤより上位レイヤの描画情報データ構造体に描画情報が登録されているレイヤが存在するか判定される。指定レイヤより上位レイヤの描画情報データ構造体に描画情報が登録されているレイヤが存在する場合、描画情報登録処理が終了される。すなわち、新しく発生したイベントに対応する画像要素がその時点で表示されている画像要素よりも表示優先度が低い場合は、描画情報を登録するだけで実際に描画及び画面更新は行わない。描画及び画面更新は行わないが描画情報を描画情報データ構造体に登録しておくことにより、現時点で表示されている画像要素が消去されるとき、後述する画面管理処理によって、登録されている描画情報に基づいて対応する画像要素を表示させることができる。
【００３４】
ステップＳ１０４では、ステップＳ１０２で指定レイヤより上位レイヤの描画情報データ構造体に描画情報が登録されているレイヤが存在しない場合、指定レイヤの描画実行フィールドに「要」が設定される。
ステップＳ１０６では、画面管理処理が起動される。尚、画面管理処理は、描画情報登録処理によって起動されてもよいし、例えば画面管理モジュール３１０が描画情報データ構造体３２０の値をポーリングして、更新を検出した時点で画面管理処理が起動されてもよい。
尚、新しく発生したイベントに対応する画像要素が、その時点で表示されている画像要素よりも表示優先度が低い場合であっても、新しく発生したイベントに対応するレイヤとそれより表示優先度が高くかつ描画情報が登録されているレイヤの描画実行を「要」としてもよい。
【００３５】
（画面管理処理）
図９は、画面管理処理の流れを示すフローチャートである。画面管理処理は、画面表示を更新する際に実行される処理である。
はじめに、注目レイヤに最下位レイヤが設定される（ステップＳ２００）。具体的にはレイヤ１が設定される。
ステップＳ２０２では、注目レイヤの描画実行が「要」とされているか判定される。注目レイヤの描画情報データ構造体の描画実行フィールドに「要」が設定されていなければ、ステップＳ２０４の処理が行われる。
【００３６】
ステップＳ２０４では、登録されている描画情報に基づいて描画が実行される。具体的には、ステップＳ２０２で注目レイヤの描画情報データ構造体の描画実行フィールドが「要」と設定されている場合、注目レイヤの描画情報データ構造体の参照フィールドに登録されている描画モジュールを呼び出して、画面領域７３に画像データを描画する。
ステップＳ２０６では、注目レイヤの描画実行フィールドに「不要」が設定される。
ステップＳ２０８では、注目レイヤが最上位レイヤであるか判定される。注目レイヤが最上位レイヤでなければ、注目レイヤに一つ上のレイヤが設定される（ステップＳ２１０）。
【００３７】
以上の処理が最下位レイヤから１レイヤずつ最上位レイヤまで繰り返され、表示が更新される（ステップＳ２１２）。具体的には、制御部７２は、ＤＳＰＤ８６を制御して画面領域７３に描画されている画像データを用いてＦＰＤ８８の画面表示を更新させる。
このように、表示優先度が予め決められているレイヤ毎にある描画情報データ構造体に登録されている描画情報に基づいて最下位レイヤから順に画面領域７３に画像データを描画する構成では、レイヤの個数分の画像データ格納領域を必要としないため、メモリ資源を節約することができる。
以上説明した描画情報登録処理と画面管理処理とが実行することにより、制御部７２は図７（Ａ）に示す「デフォルト画面」画像要素の画像データを画面領域７３に生成し、ＤＳＰＤ８６を制御してＦＰＤ８８に画面２００の画像を表示させる。
【００３８】
（２）印刷する画像をユーザが確認する。
印刷したい画像がＦＰＤ８８に表示されている状態で、ユーザがボタン群８２の所定のボタン（例えば「ＯＫ」ボタン）を押すと、そのときＦＰＤ８８に表示されている画像の印刷設定情報が表示される状態に遷移する。具体的には、状態管理モジュール３００によって状態制御データ構造体３２２に登録されているイベント処理モジュールのうち処理優先度が最優先のレイヤの状態制御データ構造体に登録されている外部イベント処理モジュールが検索される。このとき、状態制御データ構造体３２２は図６（Ａ）に示す状態であるので、デフォルト画面表示中の外部イベント処理モジュールが起動される。デフォルト画面表示中の外部イベント処理では、ユーザの指示（ここでは「ＯＫ」ボタン押下）を有効と判定し、その時点で選択されている画像の印刷設定情報を取得する処理等が実行される。また、レイヤ２の状態制御データ構造体にサブ画面表示中の外部イベント処理モジュールとサブ画面表示中の内部イベント処理モジュールとが登録される（図６（Ｂ）参照）。
【００３９】
次に、描画情報登録処理と画面管理処理とが実行される。このとき描画情報登録処理に与えられるパラメータは例えば、指定レイヤとしてレイヤ２、描画モジュールの参照に「サブ画面」画像要素描画モジュールの参照、描画開始座標に（２０，１５）、幅と高さに（２８０，２１０）である。描画情報登録処理が実行されると、レイヤ２の描画情報データ構造体の描画実行のみが「要」と設定される。そのため、続けて画面管理処理が実行されることにより、既に図７（Ａ）の「デフォルト画面」画像要素の画像データが描画されている画面領域７３に、図７（Ｂ）に示す「サブ画面」画像要素の画像データが、パラメータとして与えられた位置情報の領域に上書きされ、ＦＰＤ８８に画面２０２が表示される。既に描画情報が描画情報データ構造体に登録され画面領域７３に描画済みである「デフォルト画面」画像要素を再度描画することなく、「サブ画面」画像要素を描画することにより、「デフォルト画面」画像要素、「サブ画面」画像要素を順に描画する場合と比較して、一画面分の画像を表示するための画像データを早く生成することができる。
【００４０】
（３）ユーザが「印刷開始」ボタンを押す。
図７（Ｂ）の画面２０２がＦＰＤ８８に表示されている状態で、ユーザがボタン群８２の「印刷開始」ボタンを押すと、状態制御データ構造体３２２に登録されているイベント処理モジュールのうち処理優先度が最優先のレイヤの状態制御データ構造体に登録されている外部イベント処理モジュールが起動される。具体的には、レイヤ２に登録されているサブ画面表示中の外部イベント処理が起動される。画面表示中の外部イベント処理では、ユーザの「印刷開始」指示が有効と判定されて印刷処理が開始され、状態管理データ構造体３２４の「印刷中」状態要素の発生状況が「非アクティブ」から「アクティブ」に更新される。状態管理データ構造体３２４の状態要素の発生状況が更新されたのを受けて、状態管理データ構造体３２４の発生状況フィールドが処理優先度が最優先のものから順に検索される。このとき、「印刷中」状態要素の発生状況が唯一「アクティブ」であるので、印刷中の外部イベント処理モジュールと印刷中の内部イベント処理モジュールとが、状態制御データ構造体３２２のレイヤ５に登録される。尚、このとき登録される、印刷中の外部イベント処理では、例えば「印刷中止」ボタンは「印刷中」状態における有効なボタンの一つと判定される。
【００４１】
次に、描画情報登録処理と画面管理処理とが実行される。「アクティブ」である「印刷中」状態要素に対応する描画情報に基づいて、このとき描画情報登録処理に与えられるパラメータは、指定レイヤとしてレイヤ５、描画モジュールの参照に「印刷中」画像要素描画モジュールの参照、描画開始座標に（０，０）、幅と高さに（３２０，２４０）である。状態管理データ構造体３２４の位置情報フィールドの「ＦＵＬＬ」は、一画面に対応する画面領域全体を示している。描画情報登録処理が実行されると、レイヤ５の描画情報データ構造体の描画実行のみが「要」と設定される。そのため、続けて画面管理処理が実行されることにより、既に図７（Ａ）の「デフォルト画面」画像要素の画像データに図７（Ｂ）の「サブ画面」画像要素の画像データが上書きされた状態の画面領域７３に、図７（Ｃ）の「印刷中」画像要素の画像データが上書きされ、ＦＰＤ８８に画面２０４が表示される。既に描画情報が描画情報データ構造体に登録され画面領域７３に描画済みである「デフォルト画面」画像要素及び「サブ画面」画像要素を再度描画することなく、「印刷中」画像要素を描画することにより、「デフォルト画面」画像要素、「サブ画面」画像要素、「印刷中」画像要素を順に描画する場合と比較して、一画面分の画像を表示するための描画データを早く生成することができる。
【００４２】
（４）ユーザがディジタルカメラをＭＦＰ１に接続する。
ユーザが図示しないディジタルカメラを通信部９３に接続すると、ディジタルカメラの接続を検知し、「カメラ接続中」の状態であることをユーザに知らせるための画面が所定の時間の間だけ表示される。具体的には、カメラ接続が検出されると、状態管理テーブル３２４の「カメラ接続表示中」状態要素の発生状況が「非アクティブ」から「アクティブ」に更新される。状態管理データ構造体３２４の状態要素の発生状況が更新されたのを受けて、状態管理データ構造体３２４の発生状況フィールドが処理優先度が最優先のものから順に検索される。このとき、「印刷中」状態要素も「アクティブ」であるが、「カメラ接続表示中」状態要素の方が処理優先度が高いため、カメラ接続表示中の外部イベント処理とカメラ接続表示中の内部イベント処理とが、状態制御データ構造体３２２のレイヤ５に登録される（図６（Ｄ）参照）。尚、このとき登録されるカメラ接続中の外部イベント処理では、例えば「印刷中止」ボタンは「カメラ接続表示中」状態における無効なボタンの一つと判定されるので、「印刷中」状態でかつ「カメラ接続表示中」状態の期間に「印刷中止」ボタンが押されたとしても、印刷中止のための処理は実行されない。電子機器の状態によって有効なボタン操作と無効なボタン操作は異なる場合もあるし、同じボタンが押されても状態によって異なる処理が割り当てられる場合もある。本実施形態の構成によると、このように状態によって異なる処理を行うという要求仕様を、単純な制御で実現することができる。また、状態要素の種類とイベントの種類とに応じてイベント処理モジュールを部品化することにより、プログラムロジックの重複を排除しプログラムサイズを削減することができる。また、プログラムの保守性及び再利用性を向上させることができる。
【００４３】
次に、描画情報登録処理と画面管理処理とが実行される。「カメラ接続表示中」状態要素に対応する描画情報に基づいて、このとき描画情報登録処理に与えられるパラメータは、指定レイヤとしてレイヤ５、描画モジュールの参照に「カメラ接続中」描画モジュールの参照、描画開始座標に（０，０）、幅と高さに（３２０，２４０）である。描画情報登録処理が実行されると、レイヤ５の描画情報データ構造体の描画実行のみが「要」と設定される。そのため、続けて画面管理処理が実行されることにより、既に図７（Ｃ）の「印刷中」画像要素の画像データが描画されている状態の画面領域７３に、図７（Ｄ）の「カメラ接続中」画像要素の画像データが上書きされ、ＦＰＤ８８に画面２０６が表示される。既に描画情報が描画情報データ構造体に登録され画面領域７３に描画済みである「デフォルト画面」画像要素、「サブ画面」画像要素及び「印刷中」画像要素を再度描画することなく、「カメラ接続中」画像要素を描画することにより、「デフォルト画面」画像要素、「サブ画面」画像要素、「印刷中」画像要素、「カメラ接続中」画像要素を順に描画する場合と比較して、一画面分の画像を表示するための描画データを早く生成することができる。
【００４４】
（５）ディジタルカメラの接続から一定時間が経過する。
ディジタルカメラの接続をＭＦＰ１が検知してから所定時間が経過すると、「カメラ接続中」画面が解除される。ディジタルカメラの接続検知から所定時間が経過したというイベントが発生すると、状態制御データ構造体３２２に登録されているイベント処理モジュールのうち最優先のレイヤの状態制御データ構造体に登録されている内部イベント処理モジュールが起動される。ここでは、レイヤ５に登録されているカメラ接続表示中の内部イベント処理が起動される。カメラ接続表示中の内部イベント処理では、状態管理データ構造体３２４の「カメラ接続表示中」状態要素の発生状況フィールドが「アクティブ」から「非アクティブ」に更新される。状態管理データ構造体３２４の状態要素の発生状況が更新されたのを受けて、状態管理データ構造体３２４の発生状況フィールドが処理優先度が最優先のものから順に検索される。このとき、「印刷中」状態要素の発生状況が唯一「アクティブ」であるので、印刷中の外部イベント処理モジュールと印刷中の内部イベント処理モジュールとが、状態制御データ構造体３２２のレイヤ５に再び登録される（図６（Ｃ）参照）。
次に、描画情報登録処理と画面管理処理とが実行される。「（３）ユーザが「印刷開始」ボタンを押す。」で既に説明したものと同様の処理が実行され、ＦＰＤ８８には画面２０４が表示される。
【００４５】
（６）印刷が終了する。
印刷制御部６６から印刷が正常終了したというイベントが発生すると、状態制御データ構造体３２２に登録されているイベント処理モジュールのうち処理優先度が最優先のレイヤの状態制御データ構造体に登録されている内部イベント処理モジュールが検索される。このとき、状態制御データ構造体３２２は図６（Ｃ）に示す状態であるので、印刷中の内部イベント処理モジュールが起動される。印刷中の内部イベント処理では、状態管理データ構造体３２４の「印刷中」状態要素の発生状況が「アクティブ」から「非アクティブ」に更新される。それを受けて、状態管理データ構造体３２４の発生状況フィールドが処理優先度が最優先のものから順に検索される。このとき、「アクティブ」な状態要素はなくなっているので、状態制御データ構造体３２２のレイヤ５の、印刷中の外部イベント処理モジュールと印刷中の内部イベント処理モジュールの登録が抹消される（図６（Ｂ）参照）。
次に、描画情報抹消処理と画面管理処理とが実行される。このとき描画情報抹消処理に、消去対象レイヤとしてレイヤ５というパラメータが与えられる。以下、描画情報抹消処理について説明する。
【００４６】
（描画情報抹消処理）
図１０は、描画情報抹消処理の流れを示すフローチャートである。描画情報抹消処理は、画面表示内容の変更を伴うイベントのうち、現在表示されている画像要素を消去するイベントが発生すると、実行される処理である。
はじめに、判定対象レイヤに消去対象レイヤが設定される（ステップＳ３００）。具体的には、パラメータとして与えられた消去対象レイヤを初期値として判定対象レイヤが設定される。
ステップＳ３０２では、判定対象レイヤの次に下位のレイヤが存在するか判定される。具体的には、判定対象レイヤの次に下位のレイヤから表示優先度が低くなる方向に順に、描画情報データ構造体に描画モジュール及び位置情報が登録されているレイヤが検索される。
【００４７】
ステップＳ３０４では、判定対象レイヤの次に下位のレイヤが設定される。具体的には、ステップＳ３０２で判定対象レイヤの次に下位のレイヤが存在すると判定された場合、判定対象レイヤが次に下位のレイヤに更新される。
ステップＳ３０６では、判定対象レイヤの描画実行が「要」と設定される。
ステップＳ３０８では、判定対象レイヤは最下位レイヤであるか判定される。具体的には、判定対象レイヤはレイヤ１であるかが判定される。
【００４８】
ステップＳ３１０では、判定対象領域と消去対象領域との包含関係が判定される。具体的には、ステップＳ３０８で判定対象レイヤがレイヤ１でないと判定された場合、判定対象レイヤの描画情報データ構造体に登録されている描画モジュールによって描画される領域（以下、判定対象領域という）の位置情報と、消去対象レイヤの描画情報データ構造体に登録されている描画モジュールによって描画される領域（以下、消去対象領域という）の位置情報とに基づいて、領域の包含関係が判定される。より具体的には、図１１（Ｃ）に示すように、消去対象領域が判定対象領域に包含されるか又は、図１１（Ｂ）に示すように、消去対象領域が判定対象領域と一致する場合、ステップＳ３１２の処理が実行される。図１１（Ａ）、（Ｄ）に示すように、消去対象領域が判定対象領域に包含されない場合、ステップＳ３０２の処理に戻る。
【００４９】
ステップＳ３１２では、消去対象レイヤの描画情報が描画情報データ構造体から抹消される。具体的には、消去対象レイヤの描画情報データ構造体の描画モジュールの参照フィールドと位置情報の各フィールドと付加情報フィールドとに所定の無効値が設定され、描画実行フィールドに「要」が設定される。
ステップＳ３１４では、画面管理処理が起動される。尚、画面管理処理は、描画情報抹消処理によって起動されてもよいし、前述したように、描画情報データ構造体３２０の値をポーリングし、更新を検出した時点で画面管理処理が起動されてもよい。
尚、以上の処理は、描画情報が描画情報データ構造体に登録されているレイヤのうち優先度が最も高いレイヤの描画情報データ構造体に登録されている要素を消去する場合の処理であるが、消去対象レイヤの上位レイヤの描画情報データ構造体に描画情報が登録されているレイヤが存在する場合は、消去対象レイヤの上位レイヤの描画実行が「要」と設定される。
以上、描画情報抹消処理について説明した。画面管理処理については既に説明した通りである。
【００５０】
図１２は、レイヤの消去を概念的に説明するための模式図である。レイヤ５の描画情報データ構造体に登録されている描画情報が抹消されると（図１２（Ａ）から図１２（Ｂ））、消去対象領域と一致するか又は消去対象領域を包含する領域の位置情報が描画情報データ構造体に登録されているレイヤを、レイヤ５から順にレイヤ１に向かって検索し、レイヤ１とレイヤ２の描画実行を「要」と設定する。制御部７２は、レイヤ１の描画情報データ構造体に登録されている「デフォルト画面」画像要素描画モジュールと、レイヤ２の描画情報データ構造体に登録されている「サブ画面」画像要素描画モジュールを順に起動することによって、「印刷中」画像要素の画像データが既に描画されている画面領域７３に「デフォルト画面」画像要素と「サブ画面」画像要素の画像データを順に描画し、ＦＰＤ８８には画面２０２が表示される。
さらにレイヤ２の描画情報データ構造体に登録されている描画情報が抹消された場合は（図１２（Ｂ）から図１２（Ｃ））、同様に制御部７２は描画情報抹消処理（消去対象レイヤはレイヤ２）と画面管理処理とを実行することによって、「デフォルト画面」画像要素を画面領域７３に描画しＦＰＤ８８に画面２００を表示する。
【００５１】
以上説明したように、表示優先度が予め決められているレイヤ毎に描画情報データ構造体を設け、その描画情報データ構造体を介して、イベントの発生を検知しそのイベントに応じて描画情報を登録又は抹消する処理と、描画処理とを切り離すことにより、プログラムモジュールの独立性を向上させ、プログラムの保守性及び再利用性を向上させることができる。
また、電子機器の状態を定める要素となる個々の状態要素について発生状況を記憶し処理優先度順に管理する状態管理データ構造体と、処理優先度が予め決められているレイヤ毎に状態制御データ構造体とを設け、それらのデータ構造体を介して、イベント発生によって状態要素の発生状況を更新する処理と、最優先の状態要素を判定して対応するイベント処理を起動する処理とを切り離すことにより、イベントが発生するたびに、電子機器の状態に応じた処理を行うための処理優先度の判定を単純な制御で実現することができる。さらに本実施形態の構成によると、プログラムモジュールの独立性を向上させ、プログラムの保守性及び再利用性を向上させることができる。
【００５２】
尚、以上の説明では、描画処理の無駄を無くし、より高速に一画面分の描画データを生成する構成を説明したが、もちろん描画情報データ構造体に描画情報が登録又は抹消される度に、描画情報がデータ構造体に登録されているレイヤを対象に最下位レイヤから順に、描画情報に基づいて画面領域７３に描画してもよい。描画情報データ構造体に描画情報が登録又は末梢されるタイミング以外にも、所定のタイミングで、描画情報がデータ構造体に登録されているレイヤを対象に最下位レイヤから順に、画面領域７３に再描画し、画面表示をリフレッシュしてもよい。
【００５３】
本発明は、上記実施形態に限定されるものではなく、その要旨を逸脱しない範囲で種々の実施形態に適用可能である。例えば、本発明はディジタルカメラ、フォトビューワ、パーソナルコンピュータ、携帯電話など、電子機器全般に適用することができる。
【符号の説明】
【００５４】
１：ＭＦＰ（電子機器）、７２：制御部（状態管理手段、描画手段、表示手段、イベント処理手段、指示入力手段）、７３：画面領域（一画面分の画像データ格納領域）、７４：ＲＡＭ（メモリ）、７６：ＲＯＭ、７８：ＣＰＵ、８２：ボタン群（指示入力手段）、８６：ＤＳＰＤ（表示手段）、８８：ＦＰＤ（表示手段）。
【図１】
2011138529.tif 000003
【図２】
2011138529.tif 000004
【図３】
2011138529.tif 000005
【図４】
2011138529.tif 000006
【図５】
2011138529.tif 000007
【図６】
2011138529.tif 000008
【図７】
2011138529.tif 000009
【図８】
2011138529.tif 000010
【図９】
2011138529.tif 000011
【図１０】
2011138529.tif 000012
【図１１】
2011138529.tif 000013
【図１２】
2011138529.tif 000014
【手続補正書】
【提出日】平成23年1月28日(2011.1.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
発生したイベントに応じた処理を行い、前記イベントに対応する状態要素がアクティブであるか又は非アクティブであるかを前記状態要素毎に設定するイベント処理を実行するイベント処理手段と、
前記イベントが発生すると、処理優先度が予め決められているレイヤ毎にある状態制御データ構造体に登録されているイベント処理情報のうち、最も処理優先度が高いレイヤの状態制御データ構造体に登録されているイベント処理情報に基づいて前記イベント処理手段を起動し、アクティブとなった前記状態要素のうち最も処理優先度の高い状態要素に対応する前記イベント処理情報を対応する前記状態制御データ構造体に登録又は非アクティブとなった前記状態要素に対応する前記イベント処理情報を対応する前記状態制御データ構造体から抹消する状態管理手段と、
を備える電子機器。
【請求項２】
発生したイベントに応じた処理を行い、前記イベントに対応する状態要素がアクティブであるか又は非アクティブであるかを前記状態要素毎に設定するイベント処理を実行し、
前記イベントが発生すると、処理優先度が予め決められているレイヤ毎にある状態制御データ構造体に登録されているイベント処理情報のうち、最も処理優先度が高いレイヤの状態制御データ構造体に登録されているイベント処理情報に基づいて前記イベント処理を起動し、アクティブとなった前記状態要素のうち最も処理優先度の高い状態要素に対応する前記イベント処理情報を対応する前記状態制御データ構造体に登録又は非アクティブとなった前記状態要素に対応する前記イベント処理情報を対応する前記状態制御データ構造体から抹消する、
ことを含む状態制御方法。
【請求項３】
発生したイベントに応じた処理を行い、前記イベントに対応する状態要素がアクティブであるか又は非アクティブであるかを前記状態要素毎に設定するイベント処理を実行するイベント処理手段と、
前記イベントが発生すると、処理優先度が予め決められているレイヤ毎にある状態制御データ構造体に登録されているイベント処理情報のうち、最も処理優先度が高いレイヤの状態制御データ構造体に登録されているイベント処理情報に基づいて前記イベント処理手段を起動し、アクティブとなった前記状態要素のうち最も処理優先度の高い状態要素に対応する前記イベント処理情報を対応する前記状態制御データ構造体に登録又は非アクティブとなった前記状態要素に対応する前記イベント処理情報を対応する前記状態制御データ構造体から抹消する状態管理手段と、
してコンピュータを機能させる状態制御プログラム。