JP2011138529A - 電子機器、状態制御方法及び状態制御プログラム - Google Patents
電子機器、状態制御方法及び状態制御プログラム Download PDFInfo
- Publication number
- JP2011138529A JP2011138529A JP2011013806A JP2011013806A JP2011138529A JP 2011138529 A JP2011138529 A JP 2011138529A JP 2011013806 A JP2011013806 A JP 2011013806A JP 2011013806 A JP2011013806 A JP 2011013806A JP 2011138529 A JP2011138529 A JP 2011138529A
- Authority
- JP
- Japan
- Prior art keywords
- event
- data structure
- drawing information
- registered
- layer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Landscapes
- User Interface Of Digital Computer (AREA)
Abstract
【課題】メモリ資源が潤沢でない場合であっても単純な制御でマルチウィンドウ表示及び状態制御を実現する電子機器、状態制御方法及び状態制御プログラムを提供する。
【解決手段】メモリと、イベントが発生すると、表示優先度が予め決められているレイヤ毎にある描画情報データ構造体のうち発生した前記イベントに対応する前記描画情報データ構造体に、発生した前記イベントに対応する描画情報を登録、又は、発生した前記イベントに対応する前記描画情報データ構造体に登録されている前記描画情報を抹消する状態管理手段と、前記描画情報が登録又は抹消されると、表示優先度の低いレイヤから順に、前記描画情報データ構造体に登録されている前記描画情報に基づいて前記メモリの一画面分の画像データ格納領域に描画する描画手段と、前記画像データ格納領域に描画された画像を一画面に表示する表示手段と、を備える電子機器。
【選択図】図1
【解決手段】メモリと、イベントが発生すると、表示優先度が予め決められているレイヤ毎にある描画情報データ構造体のうち発生した前記イベントに対応する前記描画情報データ構造体に、発生した前記イベントに対応する描画情報を登録、又は、発生した前記イベントに対応する前記描画情報データ構造体に登録されている前記描画情報を抹消する状態管理手段と、前記描画情報が登録又は抹消されると、表示優先度の低いレイヤから順に、前記描画情報データ構造体に登録されている前記描画情報に基づいて前記メモリの一画面分の画像データ格納領域に描画する描画手段と、前記画像データ格納領域に描画された画像を一画面に表示する表示手段と、を備える電子機器。
【選択図】図1
Description
本発明は電子機器、状態制御方法及び状態制御プログラムに関する。
従来、パーソナルコンピュータをはじめとする表示装置を有する電子機器において、ディスプレイに同時に複数のウィンドウを表示する、所謂マルチウィンドウ表示が知られている。このようなマルチウィンドウ表示を行う電子機器では、各ウィンドウの画像データをそれぞれメモリの異なる領域に作成し、ウィンドウの上下関係による表示優先順位に従って参照アドレスを切り換えることによって一画面分の表示を実現している(特許文献1)。しかしこの方法では、各ウィンドウの表示データを格納するために大量のメモリ領域が必要となる。
一方、メモリ資源が潤沢でない電子機器の場合、最小限のメモリ領域を使用してマルチウィンドウ表示を実現するためには、ソフトウェアでの制御が重複し複雑化するという問題があった。例えば、画面表示の変更の要因となるイベントが発生すると、イベント発生を検知し表示を更新するという一連の処理単位毎に、更新内容を判定する必要があった。具体的には例えば、次に表示されるウィンドウよりも表示優先度の高いウィンドウが現在表示されていないかどうか、ウィンドウを消去するとき次に表示されなければならないウィンドウはどれか、また表示が更新されなければならない領域を含むウィンドウはどれであるか、等を判定しなければならなかった。
一方、メモリ資源が潤沢でない電子機器の場合、最小限のメモリ領域を使用してマルチウィンドウ表示を実現するためには、ソフトウェアでの制御が重複し複雑化するという問題があった。例えば、画面表示の変更の要因となるイベントが発生すると、イベント発生を検知し表示を更新するという一連の処理単位毎に、更新内容を判定する必要があった。具体的には例えば、次に表示されるウィンドウよりも表示優先度の高いウィンドウが現在表示されていないかどうか、ウィンドウを消去するとき次に表示されなければならないウィンドウはどれか、また表示が更新されなければならない領域を含むウィンドウはどれであるか、等を判定しなければならなかった。
本発明は、メモリ資源が潤沢でない場合であっても単純な制御でマルチウィンドウ表示及び状態制御を実現する電子機器、状態制御方法及び状態制御プログラムを提供することを目的とする。
(1)上記目的を達成するための電子機器は、メモリと、イベントが発生すると、表示優先度が予め決められているレイヤ毎にある描画情報データ構造体のうち発生した前記イベントに対応する前記描画情報データ構造体に、発生した前記イベントに対応する描画情報を登録、又は、発生した前記イベントに対応する前記描画情報データ構造体に登録されている前記描画情報を抹消する状態管理手段と、前記描画情報が登録又は抹消されると、表示優先度の低いレイヤから順に、前記描画情報データ構造体に登録されている前記描画情報に基づいて前記メモリの一画面分の画像データ格納領域に描画する描画手段と、前記画像データ格納領域に描画された画像を一画面に表示する表示手段と、を備える。
この電子機器によると、表示優先度が予め決められているレイヤ毎にある描画情報データ構造体に登録されている描画情報に基づいて一画面分の画像データ格納領域に画像データを描画する構成であるので、レイヤの個数分の画像データ格納領域を必要としないため、メモリ資源を節約することができる。描画情報を登録又は抹消する処理と描画処理とを切り離し、その間に、表示優先度が予め決められているレイヤ毎に描画情報データ構造体を介在させ、一元的に描画情報を管理することにより、プログラムロジックの重複をなくすことができる。すなわち、次に表示されるウィンドウよりも表示優先度の高いウィンドウは現在表示されていないかどうか、ウィンドウを消去するとき次に表示されるウィンドウはどれか、また表示が更新されなければならない領域を含むウィンドウはどれであるか等を、イベント発生を検知し表示を更新するという一連の処理単位毎に判定する必要がない。つまり、描画情報を登録又は抹消する処理では、イベントの種類によって一義的に定まっている描画情報を、イベントの種類によって一義的に定まっている描画情報データ構造体にイベント発生履歴を判定することなく登録し、また、イベントの種類によって一義的に定まっている描画情報データ構造体に登録されている描画情報をイベント発生履歴を判定することなく抹消すればよくなる。描画処理では、発生したのがどんなイベントであっても、イベント発生履歴とは無関係に、表示優先度の低いレイヤから順に、描画情報データ構造体に登録されている描画情報に基づいて記憶手段の一画面分の画像データ格納領域に描画するという同一の処理を繰り返せばよくなる。その結果、一画面分の画像データを生成することができるため、制御を単純化することができる。
この電子機器によると、表示優先度が予め決められているレイヤ毎にある描画情報データ構造体に登録されている描画情報に基づいて一画面分の画像データ格納領域に画像データを描画する構成であるので、レイヤの個数分の画像データ格納領域を必要としないため、メモリ資源を節約することができる。描画情報を登録又は抹消する処理と描画処理とを切り離し、その間に、表示優先度が予め決められているレイヤ毎に描画情報データ構造体を介在させ、一元的に描画情報を管理することにより、プログラムロジックの重複をなくすことができる。すなわち、次に表示されるウィンドウよりも表示優先度の高いウィンドウは現在表示されていないかどうか、ウィンドウを消去するとき次に表示されるウィンドウはどれか、また表示が更新されなければならない領域を含むウィンドウはどれであるか等を、イベント発生を検知し表示を更新するという一連の処理単位毎に判定する必要がない。つまり、描画情報を登録又は抹消する処理では、イベントの種類によって一義的に定まっている描画情報を、イベントの種類によって一義的に定まっている描画情報データ構造体にイベント発生履歴を判定することなく登録し、また、イベントの種類によって一義的に定まっている描画情報データ構造体に登録されている描画情報をイベント発生履歴を判定することなく抹消すればよくなる。描画処理では、発生したのがどんなイベントであっても、イベント発生履歴とは無関係に、表示優先度の低いレイヤから順に、描画情報データ構造体に登録されている描画情報に基づいて記憶手段の一画面分の画像データ格納領域に描画するという同一の処理を繰り返せばよくなる。その結果、一画面分の画像データを生成することができるため、制御を単純化することができる。
(2)上記目的を達成するための電子機器において、前記描画手段は、第一のレイヤの前記描画情報データ構造体に登録されている描画情報に基づいて描画される領域が前記第一のレイヤより表示優先度の高い第二のレイヤの前記描画情報データ構造体に登録されている描画情報に基づいて描画される領域に包含される場合、前記第一のレイヤの前記描画情報データ構造体に登録されている前記描画情報に基づいて描画することなく前記第二のレイヤの前記描画情報データ構造体に登録されている前記描画情報に基づいて描画し、前記第一のレイヤの前記描画情報データ構造体に登録されている前記描画情報に基づいて描画される領域が前記第二のレイヤの前記描画情報データ構造体に登録されている前記描画情報に基づいて描画される領域に包含されない場合、前記第一のレイヤの前記描画情報データ構造体に登録されている前記描画情報に基づいて描画した後に前記第二のレイヤの前記描画情報データ構造体に登録されている前記描画情報に基づいて描画してもよい。
この電子機器によると、第一のレイヤの描画情報データ構造体に登録されている描画情報に基づいて描画される画像の全体に、それよりも表示優先度の高い第二のレイヤの描画情報データ構造体に登録されている描画情報に基づいて描画される画像が最終的に重なる場合、第一のレイヤの描画情報データ構造体に登録されている描画情報に基づいて描画することなく第二のレイヤの描画情報データ構造体に登録されている描画情報に基づいて描画するため、無駄な処理を省略し、一画面分の画像を表示するための画像データを早く生成することができる。
この電子機器によると、第一のレイヤの描画情報データ構造体に登録されている描画情報に基づいて描画される画像の全体に、それよりも表示優先度の高い第二のレイヤの描画情報データ構造体に登録されている描画情報に基づいて描画される画像が最終的に重なる場合、第一のレイヤの描画情報データ構造体に登録されている描画情報に基づいて描画することなく第二のレイヤの描画情報データ構造体に登録されている描画情報に基づいて描画するため、無駄な処理を省略し、一画面分の画像を表示するための画像データを早く生成することができる。
(3)上記目的を達成するための電子機器において、前記描画手段は、既に前記描画情報が前記描画情報データ構造体に登録され前記画像データ格納領域に描画済みである他のレイヤと比較して最も表示優先度が高い最優先レイヤの前記描画情報データ構造体に前記描画情報が登録されると、前記他のレイヤの前記描画情報データ構造体に登録されている前記描画情報に基づいて描画することなく、前記最優先レイヤの前記描画情報データ構造体に登録されている前記描画情報に基づいて描画処理を実行してもよい。
この電子機器によると、既に描画情報が描画情報データ構造体に登録され画像データ格納領域に描画済みである他のレイヤと比較して最も表示優先度が高い最優先レイヤの描画情報データ構造体に描画情報が登録されると、他のレイヤの描画情報データ構造体に登録されている描画情報に基づいて描画することなく、最優先レイヤの描画情報データ構造体に登録されている描画情報に基づいて描画するため、一画面分の画像を表示するための画像データを早く生成することができる。
この電子機器によると、既に描画情報が描画情報データ構造体に登録され画像データ格納領域に描画済みである他のレイヤと比較して最も表示優先度が高い最優先レイヤの描画情報データ構造体に描画情報が登録されると、他のレイヤの描画情報データ構造体に登録されている描画情報に基づいて描画することなく、最優先レイヤの描画情報データ構造体に登録されている描画情報に基づいて描画するため、一画面分の画像を表示するための画像データを早く生成することができる。
(4)上記目的を達成するための電子機器において、前記描画情報は、前記描画処理の参照と、前記描画処理によって描画される領域の位置情報とを含み、前記描画手段は、前記位置情報に基づいて前記描画情報に基づいて描画される複数の領域の包含関係を判定してもよい。
(5)上記目的を達成するための電子機器は、発生した前記イベントに応じた処理を行い、前記イベントに対応する状態要素がアクティブであるか又は非アクティブであるかを前記状態要素毎に設定するイベント処理を実行するイベント処理手段をさらに備えてもよい。前記状態管理手段は、前記イベントが発生すると、処理優先度が予め決められているレイヤ毎にある状態制御データ構造体に登録されているイベント処理情報のうち、最も処理優先度が高いレイヤの状態制御データ構造体に登録されているイベント処理情報に基づいて前記イベント処理手段を起動し、アクティブとなった前記状態要素のうち最も処理優先度の高い状態要素に対応する前記イベント処理情報を対応する前記状態制御データ構造体に登録又は非アクティブとなった前記状態要素に対応する前記イベント処理情報を対応する前記状態制御データ構造体から抹消してもよい。
この電子機器によると、イベントが発生すると、処理優先度が予め決められているレイヤ毎にある状態制御データ構造体に登録されているイベント処理情報のうち最優先のレイヤに登録されているイベント処理情報に基づいてイベント処理が起動される。イベント処理では、発生したイベントに応じた処理が行われ、イベントに対応する状態要素がアクティブであるか又は非アクティブであるかが設定される。その後、アクティブになった状態要素のうち最優先の状態要素に対応するイベント処理情報が状態制御データ構造体に登録される。又は非アクティブになった状態要素に対応するイベント処理情報が状態制御データ構造体から抹消される。つまり、発生したイベントに応じた処理を行い、対応する状態要素がアクティブであるか非アクティブであるかを設定するイベント処理と、優先させるべき状態要素に対応するイベント処理を判定して起動する処理とを切り離し、その間に、処理優先度が予め決められているレイヤ毎にイベント処理情報データ構造体を介在させ、一元的にイベント処理を管理することにより、プログラムロジックの重複をなくすことができる。ここで状態要素とは、電子機器の状態を定める個々の要素を示すものである。イベント処理手段は、イベントの発生履歴や他の状態要素との優先関係を考慮することなく、発生したイベントに応じた処理を行い、対応する状態要素がアクティブであるか非アクティブであるかを設定すればよい。状態管理手段は、発生したのがどんなイベントであっても、処理優先度の高いレイヤから順に、状態制御データ構造体に登録されているイベント処理情報を検索し、最優先のレイヤの状態制御データ構造体に登録されているイベント処理情報に基づいてイベント処理を起動するという同一の処理を繰り返せばよくなる。また、状態管理手段は、アクティブである状態要素のうち最も処理優先度の高い状態要素に対応するイベント処理情報を対応するレイヤの状態制御データ構造体に登録又は非アクティブとなった状態要素に対応するイベント処理情報を対応する状態制御データ構造体から抹消すればよい。その結果、発生したイベントに応じた処理を実行することができるため、制御を単純化することができる。
この電子機器によると、イベントが発生すると、処理優先度が予め決められているレイヤ毎にある状態制御データ構造体に登録されているイベント処理情報のうち最優先のレイヤに登録されているイベント処理情報に基づいてイベント処理が起動される。イベント処理では、発生したイベントに応じた処理が行われ、イベントに対応する状態要素がアクティブであるか又は非アクティブであるかが設定される。その後、アクティブになった状態要素のうち最優先の状態要素に対応するイベント処理情報が状態制御データ構造体に登録される。又は非アクティブになった状態要素に対応するイベント処理情報が状態制御データ構造体から抹消される。つまり、発生したイベントに応じた処理を行い、対応する状態要素がアクティブであるか非アクティブであるかを設定するイベント処理と、優先させるべき状態要素に対応するイベント処理を判定して起動する処理とを切り離し、その間に、処理優先度が予め決められているレイヤ毎にイベント処理情報データ構造体を介在させ、一元的にイベント処理を管理することにより、プログラムロジックの重複をなくすことができる。ここで状態要素とは、電子機器の状態を定める個々の要素を示すものである。イベント処理手段は、イベントの発生履歴や他の状態要素との優先関係を考慮することなく、発生したイベントに応じた処理を行い、対応する状態要素がアクティブであるか非アクティブであるかを設定すればよい。状態管理手段は、発生したのがどんなイベントであっても、処理優先度の高いレイヤから順に、状態制御データ構造体に登録されているイベント処理情報を検索し、最優先のレイヤの状態制御データ構造体に登録されているイベント処理情報に基づいてイベント処理を起動するという同一の処理を繰り返せばよくなる。また、状態管理手段は、アクティブである状態要素のうち最も処理優先度の高い状態要素に対応するイベント処理情報を対応するレイヤの状態制御データ構造体に登録又は非アクティブとなった状態要素に対応するイベント処理情報を対応する状態制御データ構造体から抹消すればよい。その結果、発生したイベントに応じた処理を実行することができるため、制御を単純化することができる。
(6)上記目的を達成するための電子機器は、ユーザの指示を入力する操作手段をさらに備えてもよい。前記イベント処理情報は、前記指示の有効無効判定処理及び前記指示に応じた処理を行う外部イベント処理の参照と、内部イベントに応じた処理を行う内部イベント処理の参照とを含んでもよい。前記状態管理手段は、前記指示が入力されると、前記状態制御データ構造体に登録されている前記外部イベント処理の参照のうち最も処理優先度の高いレイヤの前記状態制御データ構造体に登録されている前記外部イベント処理の参照に基づいて前記外部イベント処理を実行し、前記内部イベントが発生すると、前記状態制御データ構造体に登録されている前記内部イベント処理の参照のうち最も処理優先度の高いレイヤの前記状態制御データ構造体に登録されている前記内部イベント処理の参照に基づいて前記内部イベント処理を実行してもよい。
この電子機器によると、状態要素に対応付けられるイベント処理を外部イベント処理と内部イベント処理とに区別する構成であるので、状態要素に対応付けられるイベント処理を区別しない構成と比較して、プログラムロジックの重複を排除しプログラムサイズを削減することができる。すなわち例えば、異なる複数の状態要素に関して、外部イベントに対する処理は共通するが内部イベントに対する処理は異なるという場合に、外部イベントに対する処理と内部イベントに対する処理とを区別して参照できるため、プログラムロジックの重複を排除することができる。
この電子機器によると、状態要素に対応付けられるイベント処理を外部イベント処理と内部イベント処理とに区別する構成であるので、状態要素に対応付けられるイベント処理を区別しない構成と比較して、プログラムロジックの重複を排除しプログラムサイズを削減することができる。すなわち例えば、異なる複数の状態要素に関して、外部イベントに対する処理は共通するが内部イベントに対する処理は異なるという場合に、外部イベントに対する処理と内部イベントに対する処理とを区別して参照できるため、プログラムロジックの重複を排除することができる。
(7)上記目的を達成するための電子機器は、発生したイベントに応じた処理を行い、前記イベントに対応する状態要素がアクティブであるか又は非アクティブであるかを前記状態要素毎に設定するイベント処理を実行するイベント処理手段と、前記イベントが発生すると、処理優先度が予め決められているレイヤ毎にある状態制御データ構造体に登録されているイベント処理情報のうち、最も処理優先度が高いレイヤの状態制御データ構造体に登録されているイベント処理情報に基づいて前記イベント処理手段を起動し、アクティブとなった前記状態要素のうち最も処理優先度の高い状態要素に対応する前記イベント処理情報を対応する前記状態制御データ構造体に登録又は非アクティブとなった前記状態要素に対応する前記イベント処理情報を対応する前記状態制御データ構造体から抹消する、状態管理手段と、を備える。
この電子機器によると、発生したイベントに応じた処理を行い、対応する状態要素がアクティブであるか非アクティブであるかを設定するイベント処理と、優先させるべき状態要素に対応するイベント処理を判定して起動する処理とを切り離し、その間に、処理優先度が予め決められているレイヤ毎にイベント処理情報データ構造体を介在させ、一元的にイベント処理を管理することにより、プログラムロジックの重複をなくすことができる。イベント処理手段は、イベントの発生履歴や他の状態要素との優先関係を考慮することなく、発生したイベントに応じた処理を行い、対応する状態要素がアクティブであるか非アクティブであるかを設定すればよい。状態管理手段は、発生したのがどんなイベントであっても、処理優先度の高いレイヤから順に、状態制御データ構造体に登録されているイベント処理情報を検索し、最優先のレイヤの状態制御データ構造体に登録されているイベント処理情報に基づいてイベント処理を起動するという同一の処理を繰り返せばよくなる。また、状態管理手段は、アクティブである状態要素のうち最も処理優先度の高い状態要素に対応するイベント処理情報を対応するレイヤの状態制御データ構造体に登録又は非アクティブとなった状態要素に対応するイベント処理情報を対応する状態制御データ構造体から抹消すればよい。その結果、発生したイベントに応じた処理を実行することができるため、制御を単純化することができる。
この電子機器によると、発生したイベントに応じた処理を行い、対応する状態要素がアクティブであるか非アクティブであるかを設定するイベント処理と、優先させるべき状態要素に対応するイベント処理を判定して起動する処理とを切り離し、その間に、処理優先度が予め決められているレイヤ毎にイベント処理情報データ構造体を介在させ、一元的にイベント処理を管理することにより、プログラムロジックの重複をなくすことができる。イベント処理手段は、イベントの発生履歴や他の状態要素との優先関係を考慮することなく、発生したイベントに応じた処理を行い、対応する状態要素がアクティブであるか非アクティブであるかを設定すればよい。状態管理手段は、発生したのがどんなイベントであっても、処理優先度の高いレイヤから順に、状態制御データ構造体に登録されているイベント処理情報を検索し、最優先のレイヤの状態制御データ構造体に登録されているイベント処理情報に基づいてイベント処理を起動するという同一の処理を繰り返せばよくなる。また、状態管理手段は、アクティブである状態要素のうち最も処理優先度の高い状態要素に対応するイベント処理情報を対応するレイヤの状態制御データ構造体に登録又は非アクティブとなった状態要素に対応するイベント処理情報を対応する状態制御データ構造体から抹消すればよい。その結果、発生したイベントに応じた処理を実行することができるため、制御を単純化することができる。
(8)上記目的を達成するための状態制御方法は、イベントが発生すると、表示優先度が予め決められているレイヤ毎にある描画情報データ構造体のうち発生した前記イベントに対応する前記描画情報データ構造体に、発生した前記イベントに対応する描画情報を登録、又は、発生した前記イベントに対応する前記描画情報データ構造体に登録されている前記描画情報を抹消し、前記描画情報が登録又は抹消されると、表示優先度の低いレイヤから順に、前記描画情報データ構造体に登録されている前記描画情報に基づいてメモリの一画面分の画像データ格納領域に描画し、前記画像データ格納領域に描画された画像を一画面に表示する、ことを含む。
この状態制御方法によると、表示優先度が予め決められているレイヤ毎にある描画情報データ構造体に登録されている描画情報に基づいて一画面分の画像データ格納領域に画像データを描画する構成であるので、レイヤの個数分の画像データ格納領域を必要としないため、メモリ資源を節約することができる。描画情報を登録又は抹消する処理と描画処理とを切り離し、その間に、表示優先度が予め決められているレイヤ毎に描画情報データ構造体を介在させ、一元的に描画情報を管理することにより、プログラムロジックの重複をなくすことができる。すなわち、次に表示されるウィンドウよりも表示優先度の高いウィンドウは現在表示されていないかどうか、ウィンドウを消去するとき次に表示されるウィンドウはどれか、また表示が更新されなければならない領域を含むウィンドウはどれであるか等を、イベント発生を検知し表示を更新するという一連の処理単位毎に判定する必要がない。つまり、描画情報を登録又は抹消する処理では、イベントの種類によって一義的に定まっている描画情報を、イベントの種類によって一義的に定まっている描画情報データ構造体にイベント発生履歴を判定することなく登録し、また、イベントの種類によって一義的に定まっている描画情報データ構造体に登録されている描画情報をイベント発生履歴を判定することなく抹消すればよくなる。描画処理では、発生したのがどんなイベントであっても、イベント発生履歴とは無関係に、表示優先度の低いレイヤから順に、描画情報データ構造体に登録されている描画情報に基づいて記憶手段の一画面分の画像データ格納領域に描画するという同一の処理を繰り返せばよくなる。その結果、一画面分の画像データを生成することができるため、制御を単純化することができる。
この状態制御方法によると、表示優先度が予め決められているレイヤ毎にある描画情報データ構造体に登録されている描画情報に基づいて一画面分の画像データ格納領域に画像データを描画する構成であるので、レイヤの個数分の画像データ格納領域を必要としないため、メモリ資源を節約することができる。描画情報を登録又は抹消する処理と描画処理とを切り離し、その間に、表示優先度が予め決められているレイヤ毎に描画情報データ構造体を介在させ、一元的に描画情報を管理することにより、プログラムロジックの重複をなくすことができる。すなわち、次に表示されるウィンドウよりも表示優先度の高いウィンドウは現在表示されていないかどうか、ウィンドウを消去するとき次に表示されるウィンドウはどれか、また表示が更新されなければならない領域を含むウィンドウはどれであるか等を、イベント発生を検知し表示を更新するという一連の処理単位毎に判定する必要がない。つまり、描画情報を登録又は抹消する処理では、イベントの種類によって一義的に定まっている描画情報を、イベントの種類によって一義的に定まっている描画情報データ構造体にイベント発生履歴を判定することなく登録し、また、イベントの種類によって一義的に定まっている描画情報データ構造体に登録されている描画情報をイベント発生履歴を判定することなく抹消すればよくなる。描画処理では、発生したのがどんなイベントであっても、イベント発生履歴とは無関係に、表示優先度の低いレイヤから順に、描画情報データ構造体に登録されている描画情報に基づいて記憶手段の一画面分の画像データ格納領域に描画するという同一の処理を繰り返せばよくなる。その結果、一画面分の画像データを生成することができるため、制御を単純化することができる。
(9)上記目的を達成するための状態制御方法は、発生したイベントに応じた処理を行い、前記イベントに対応する状態要素がアクティブであるか又は非アクティブであるかを前記状態要素毎に設定するイベント処理を実行し、前記イベントが発生すると、処理優先度が予め決められているレイヤ毎にある状態制御データ構造体に登録されているイベント処理情報のうち、最も処理優先度が高いレイヤの状態制御データ構造体に登録されているイベント処理情報に基づいて前記イベント処理を起動し、アクティブとなった前記状態要素のうち最も処理優先度の高い状態要素に対応する前記イベント処理情報を対応する前記状態制御データ構造体に登録又は非アクティブとなった前記状態要素に対応する前記イベント処理情報を対応する前記状態制御データ構造体から抹消する、ことを含む。
この状態制御方法によると、発生したイベントに応じた処理を行い、対応する状態要素がアクティブであるか非アクティブであるかを設定するイベント処理と、優先させるべき状態要素に対応するイベント処理を判定して起動する処理とを切り離し、その間に、処理優先度が予め決められているレイヤ毎にイベント処理情報データ構造体を介在させ、一元的にイベント処理を管理することにより、プログラムロジックの重複をなくすことができる。イベント処理では、イベントの発生履歴や他の状態要素との優先関係を考慮することなく、発生したイベントに応じた処理を行い、対応する状態要素がアクティブであるか非アクティブであるかを設定すればよい。状態管理処理では、発生したのがどんなイベントであっても、処理優先度の高いレイヤから順に、状態制御データ構造体に登録されているイベント処理情報を検索し、最優先のレイヤの状態制御データ構造体に登録されているイベント処理情報に基づいてイベント処理を起動するという同一の処理を繰り返せばよくなる。また、状態管理処理は、アクティブである状態要素のうち最も処理優先度の高い状態要素に対応するイベント処理情報を対応するレイヤの状態制御データ構造体に登録又は非アクティブとなった状態要素に対応するイベント処理情報を対応する状態制御データ構造体から抹消すればよい。その結果、発生したイベントに応じた処理を実行することができるため、制御を単純化することができる。
この状態制御方法によると、発生したイベントに応じた処理を行い、対応する状態要素がアクティブであるか非アクティブであるかを設定するイベント処理と、優先させるべき状態要素に対応するイベント処理を判定して起動する処理とを切り離し、その間に、処理優先度が予め決められているレイヤ毎にイベント処理情報データ構造体を介在させ、一元的にイベント処理を管理することにより、プログラムロジックの重複をなくすことができる。イベント処理では、イベントの発生履歴や他の状態要素との優先関係を考慮することなく、発生したイベントに応じた処理を行い、対応する状態要素がアクティブであるか非アクティブであるかを設定すればよい。状態管理処理では、発生したのがどんなイベントであっても、処理優先度の高いレイヤから順に、状態制御データ構造体に登録されているイベント処理情報を検索し、最優先のレイヤの状態制御データ構造体に登録されているイベント処理情報に基づいてイベント処理を起動するという同一の処理を繰り返せばよくなる。また、状態管理処理は、アクティブである状態要素のうち最も処理優先度の高い状態要素に対応するイベント処理情報を対応するレイヤの状態制御データ構造体に登録又は非アクティブとなった状態要素に対応するイベント処理情報を対応する状態制御データ構造体から抹消すればよい。その結果、発生したイベントに応じた処理を実行することができるため、制御を単純化することができる。
(10)上記目的を達成するための状態制御プログラムは、イベントが発生すると、表示優先度が予め決められているレイヤ毎にある描画情報データ構造体のうち発生した前記イベントに対応する前記描画情報データ構造体に、発生した前記イベントに対応する描画情報を登録、又は、発生した前記イベントに対応する前記描画情報データ構造体に登録されている前記描画情報を抹消する状態管理手段と、前記描画情報が登録又は抹消されると、表示優先度の低いレイヤから順に、前記描画情報データ構造体に登録されている前記描画情報に基づいてメモリの一画面分の画像データ格納領域に描画する描画手段と、前記画像データ格納領域に描画された画像を一画面に表示する表示手段と、してコンピュータを機能させる。
この状態制御プログラムによると、表示優先度が予め決められているレイヤ毎にある描画情報データ構造体に登録されている描画情報に基づいて一画面分の画像データ格納領域に画像データを描画する構成であるので、レイヤの個数分の画像データ格納領域を必要としないため、メモリ資源を節約することができる。描画情報を登録又は抹消する処理と描画処理とを切り離し、その間に、表示優先度が予め決められているレイヤ毎に描画情報データ構造体を介在させ、一元的に描画情報を管理することにより、プログラムロジックの重複をなくすことができる。すなわち、次に表示されるウィンドウよりも表示優先度の高いウィンドウは現在表示されていないかどうか、ウィンドウを消去するとき次に表示されるウィンドウはどれか、また表示が更新されなければならない領域を含むウィンドウはどれであるか等を、イベント発生を検知し表示を更新するという一連の処理単位毎に判定する必要がない。つまり、描画情報を登録又は抹消する処理では、イベントの種類によって一義的に定まっている描画情報を、イベントの種類によって一義的に定まっている描画情報データ構造体にイベント発生履歴を判定することなく登録し、また、イベントの種類によって一義的に定まっている描画情報データ構造体に登録されている描画情報をイベント発生履歴を判定することなく抹消すればよくなる。描画処理では、発生したのがどんなイベントであっても、イベント発生履歴とは無関係に、表示優先度の低いレイヤから順に、描画情報データ構造体に登録されている描画情報に基づいて記憶手段の一画面分の画像データ格納領域に描画するという同一の処理を繰り返せばよくなる。その結果、一画面分の画像データを生成することができるため、制御を単純化することができる。
この状態制御プログラムによると、表示優先度が予め決められているレイヤ毎にある描画情報データ構造体に登録されている描画情報に基づいて一画面分の画像データ格納領域に画像データを描画する構成であるので、レイヤの個数分の画像データ格納領域を必要としないため、メモリ資源を節約することができる。描画情報を登録又は抹消する処理と描画処理とを切り離し、その間に、表示優先度が予め決められているレイヤ毎に描画情報データ構造体を介在させ、一元的に描画情報を管理することにより、プログラムロジックの重複をなくすことができる。すなわち、次に表示されるウィンドウよりも表示優先度の高いウィンドウは現在表示されていないかどうか、ウィンドウを消去するとき次に表示されるウィンドウはどれか、また表示が更新されなければならない領域を含むウィンドウはどれであるか等を、イベント発生を検知し表示を更新するという一連の処理単位毎に判定する必要がない。つまり、描画情報を登録又は抹消する処理では、イベントの種類によって一義的に定まっている描画情報を、イベントの種類によって一義的に定まっている描画情報データ構造体にイベント発生履歴を判定することなく登録し、また、イベントの種類によって一義的に定まっている描画情報データ構造体に登録されている描画情報をイベント発生履歴を判定することなく抹消すればよくなる。描画処理では、発生したのがどんなイベントであっても、イベント発生履歴とは無関係に、表示優先度の低いレイヤから順に、描画情報データ構造体に登録されている描画情報に基づいて記憶手段の一画面分の画像データ格納領域に描画するという同一の処理を繰り返せばよくなる。その結果、一画面分の画像データを生成することができるため、制御を単純化することができる。
(11)上記目的を達成するための状態制御プログラムは、発生したイベントに応じた処理を行い、前記イベントに対応する状態要素がアクティブであるか又は非アクティブであるかを前記状態要素毎に設定するイベント処理を実行するイベント処理手段と、前記イベントが発生すると、処理優先度が予め決められているレイヤ毎にある状態制御データ構造体に登録されているイベント処理情報のうち、最も処理優先度が高いレイヤの状態制御データ構造体に登録されているイベント処理情報に基づいて前記イベント処理手段を起動し、アクティブとなった前記状態要素のうち最も処理優先度の高い状態要素に対応する前記イベント処理情報を対応する前記状態制御データ構造体に登録又は非アクティブとなった前記状態要素に対応する前記イベント処理情報を対応する前記状態制御データ構造体から抹消する、状態管理手段と、してコンピュータを機能させる。
この状態制御プログラムによると、発生したイベントに応じた処理を行い、対応する状態要素がアクティブであるか非アクティブであるかを設定するイベント処理と、優先させるべき状態要素に対応するイベント処理を判定して起動する処理とを切り離し、その間に、処理優先度が予め決められているレイヤ毎にイベント処理情報データ構造体を介在させ、一元的にイベント処理を管理することにより、プログラムロジックの重複をなくすことができる。イベント処理手段は、イベントの発生履歴や他の状態要素との優先関係を考慮することなく、発生したイベントに応じた処理を行い、対応する状態要素がアクティブであるか非アクティブであるかを設定すればよい。状態管理手段は、発生したのがどんなイベントであっても、処理優先度の高いレイヤから順に、状態制御データ構造体に登録されているイベント処理情報を検索し、最優先のレイヤの状態制御データ構造体に登録されているイベント処理情報に基づいてイベント処理を起動するという同一の処理を繰り返せばよくなる。また、状態管理手段は、アクティブである状態要素のうち最も処理優先度の高い状態要素に対応するイベント処理情報を対応するレイヤの状態制御データ構造体に登録又は非アクティブとなった状態要素に対応するイベント処理情報を対応する状態制御データ構造体から抹消すればよい。その結果、発生したイベントに応じた処理を実行することができるため、制御を単純化することができる。
この状態制御プログラムによると、発生したイベントに応じた処理を行い、対応する状態要素がアクティブであるか非アクティブであるかを設定するイベント処理と、優先させるべき状態要素に対応するイベント処理を判定して起動する処理とを切り離し、その間に、処理優先度が予め決められているレイヤ毎にイベント処理情報データ構造体を介在させ、一元的にイベント処理を管理することにより、プログラムロジックの重複をなくすことができる。イベント処理手段は、イベントの発生履歴や他の状態要素との優先関係を考慮することなく、発生したイベントに応じた処理を行い、対応する状態要素がアクティブであるか非アクティブであるかを設定すればよい。状態管理手段は、発生したのがどんなイベントであっても、処理優先度の高いレイヤから順に、状態制御データ構造体に登録されているイベント処理情報を検索し、最優先のレイヤの状態制御データ構造体に登録されているイベント処理情報に基づいてイベント処理を起動するという同一の処理を繰り返せばよくなる。また、状態管理手段は、アクティブである状態要素のうち最も処理優先度の高い状態要素に対応するイベント処理情報を対応するレイヤの状態制御データ構造体に登録又は非アクティブとなった状態要素に対応するイベント処理情報を対応する状態制御データ構造体から抹消すればよい。その結果、発生したイベントに応じた処理を実行することができるため、制御を単純化することができる。
尚、本発明に備わる複数の手段の各機能は、構成自体で機能が特定されるハードウェア資源、プログラムにより機能が特定されるハードウェア資源、又はそれらの組み合わせにより実現される。また、これら複数の手段の各機能は、各々が物理的に互いに独立したハードウェア資源で実現されるものに限定されない。また、請求項に記載された方法の各動作の順序は、技術上の阻害要因がない限り、記載順に限定されるものではなく、どのような順序で実行されてもよく、また同時に実行されてもよい。
以下、実施例に基づいて本発明の実施の形態を説明する。
図2は、本発明による電子機器の一実施例としてのマルチファンクションプリンタ(MFP)1のハードウェア構成を示すブロック図である。MFP1は、リムーバブルメモリ96から画像を入力して印刷する機能、画像を読み取って印刷する機能などを備えている。
図2は、本発明による電子機器の一実施例としてのマルチファンクションプリンタ(MFP)1のハードウェア構成を示すブロック図である。MFP1は、リムーバブルメモリ96から画像を入力して印刷する機能、画像を読み取って印刷する機能などを備えている。
スキャンユニット50は、リニアイメージセンサ、リニアイメージセンサの駆動回路、照明装置、結像光学系、AD変換器等で構成されている。尚、スキャンユニット50は、フラットベッド型でもよいし、シートフィード型でもよいし、ハンディ型でもよい。
プリントユニット70は、インクジェット方式で用紙に画像を形成するための記録ヘッド、記録ヘッドを往復運動させる駆動機構、給排紙機構等を備える。プリントユニット70の印刷方式は、レーザ方式、サーマル方式、ドットインパクト方式等でも良い。
プリントユニット70は、インクジェット方式で用紙に画像を形成するための記録ヘッド、記録ヘッドを往復運動させる駆動機構、給排紙機構等を備える。プリントユニット70の印刷方式は、レーザ方式、サーマル方式、ドットインパクト方式等でも良い。
外部メモリコントローラ95は、図示しないカードスロットから挿入されたリムーバブルメモリ96に接続される。リムーバブルメモリ96に格納されたデータは外部メモリコントローラ95によって読み出され、RAM74に転送される。
通信部93は、制御部72がPC等の外部のシステムと通信するための通信インタフェースである。通信部93は、LAN、インターネット、USB等を通じて外部のシステムと通信し、ハードディスク、コンパクトディスク等に格納されているデータを取得する。
通信部93は、制御部72がPC等の外部のシステムと通信するための通信インタフェースである。通信部93は、LAN、インターネット、USB等を通じて外部のシステムと通信し、ハードディスク、コンパクトディスク等に格納されているデータを取得する。
ディジタル画像処理部80は、ガンマ補正、シェーディング補正、カラーバランス補正、JPEG画像のデコード、解像度変換、アンシャープ処理、階調補正、ハーフトーニング、分版処理等の画像処理をCPU78と協働して実行するDSPである。ディジタル画像処理部80は、スキャンユニット50から出力される画像や外部メモリコントローラ95によって読み出された画像のフォーマットを印刷に適したフォーマットに変換する。
制御部72は、ROM76、CPU78及びメモリとしてのRAM74、を備える。CPU78はROM76に格納されている制御プログラムを実行してMFP1の各部を制御する。ROM76は、制御プログラムを格納している不揮発性メモリである。RAM74は、制御プログラムやスキャンユニット50に読み取られた画像等の各種のデータが一時的に格納される揮発性メモリである。制御プログラムは遠隔地のサーバからネットワークを経由してROM76に格納してもよいし、リムーバブルメモリ96等のコンピュータ読み取り可能な記録媒体を経由してROM76に格納してもよい。
操作パネル68は、モードに応じたメニューやステータスを表示するためのFPD(Flat Panel Display)88、FPD88を駆動するディスプレイ駆動部(DSPD)86、モードを変更したりメニューを操作したり各種要求を入力するためのボタン群82等で構成されている。ボタン群82は、請求項に記載の「指示入力手段」に相当する。FPD88は、例えばQVGAサイズの解像度を有する。FPD88の画面は、制御部72によって生成されRAM74の画面領域73に格納される画像に基づいてDSPD86がFPD88を駆動することによって表示される。画面領域73は、請求項記載の「一画面分の画像データ格納領域」に相当する。DSPD86及びFPD88は、表示手段として機能する。
以上、MFP1のハードウェア構成について説明した。
以上、MFP1のハードウェア構成について説明した。
図1は、MFP1の論理的構成を示すブロック図である。図3は、本実施形態に係る状態管理データ構造体、図4は状態制御データ構造体、図5は描画情報データ構造体を説明する図である。
状態管理データ構造体324は、「電源オフ中」や「カメラ接続表示中」などのような、MFP1の全体としての状態を定めるための個々の要素(以降、状態要素という)毎に、イベント処理情報と描画情報と発生状況とを関連付けて記憶する。イベント処理情報フィールド及び描画情報フィールドは、各状態要素に対応付するイベント処理情報及び描画情報が予め設定されている。各状態要素の発生状況フィールドは、イベントの発生に応じて動的に「アクティブ」又は「非アクティブ」が設定される。イベント処理情報には、状態要素に対応する外部イベント処理モジュールの参照と内部イベント処理モジュールの参照が記憶される。外部イベント処理モジュールは、ボタン群82を介して入力されたユーザの指示の有効無効判定及びその指示内容に応じた処理を行うプログラム部品である。内部イベント処理モジュールは、上記の外部イベント以外の内部的に発生するイベント(タイムアウト発生、プリントユニット70でのエラー発生等)に応じた処理を行うプログラム部品である。外部イベント処理モジュール及び内部イベント処理モジュールでは、後述するように、発生したイベントの種類によっては、対応する状態要素の発生状況の更新も行われる。描画情報には、状態要素に対応する描画モジュールの参照と位置情報等が記憶される。各状態要素は処理優先度が予め設計されており、その処理優先度順に状態管理データ構造体324に格納されている。状態管理データ構造体324はRAM74に記憶される。
状態管理データ構造体324は、「電源オフ中」や「カメラ接続表示中」などのような、MFP1の全体としての状態を定めるための個々の要素(以降、状態要素という)毎に、イベント処理情報と描画情報と発生状況とを関連付けて記憶する。イベント処理情報フィールド及び描画情報フィールドは、各状態要素に対応付するイベント処理情報及び描画情報が予め設定されている。各状態要素の発生状況フィールドは、イベントの発生に応じて動的に「アクティブ」又は「非アクティブ」が設定される。イベント処理情報には、状態要素に対応する外部イベント処理モジュールの参照と内部イベント処理モジュールの参照が記憶される。外部イベント処理モジュールは、ボタン群82を介して入力されたユーザの指示の有効無効判定及びその指示内容に応じた処理を行うプログラム部品である。内部イベント処理モジュールは、上記の外部イベント以外の内部的に発生するイベント(タイムアウト発生、プリントユニット70でのエラー発生等)に応じた処理を行うプログラム部品である。外部イベント処理モジュール及び内部イベント処理モジュールでは、後述するように、発生したイベントの種類によっては、対応する状態要素の発生状況の更新も行われる。描画情報には、状態要素に対応する描画モジュールの参照と位置情報等が記憶される。各状態要素は処理優先度が予め設計されており、その処理優先度順に状態管理データ構造体324に格納されている。状態管理データ構造体324はRAM74に記憶される。
状態管理モジュール300は、制御部72を状態管理手段として機能させるプログラム部品である。状態管理モジュール300は、ユーザによるボタン群82の操作や、外部機器との接続、インク切れ等の各種エラー等のイベントが発生すると、後述する状態制御データ構造体322に登録されているイベント処理情報のうち最優先のレイヤに登録されているイベント処理情報に基づいてイベント処理モジュールを起動する。
複数のイベント処理モジュール350、351、352、353、354、355、356、357は、対応する状態要素がアクティブである期間にイベントが発生した際に起動され、制御部72をイベント処理手段として機能させるプログラム部品である。これらのイベント処理モジュールは、発生したイベントによって、状態管理データ構造体324で管理されている状態要素の発生状況が変化する場合、その状態要素の発生状況フィールドに「アクティブ」又は「非アクティブ」を設定する。イベント発生に応じてハンドリングされるイベント処理モジュール358において状態管理データ構造体324の対応する状態要素の発生状況を設定し、状態管理モジュール300にイベントが発生したことを通知する構成であってもよい。この場合、イベント処理モジュール358は、制御部72をイベント処理手段として機能させる。
また、状態管理モジュール300は、状態管理データ構造体324を参照し、発生状況が「アクティブ」な状態要素のうち最優先の状態要素に対応するイベント処理情報を状態制御データ構造体322の対応するレイヤに、最優先の状態要素に対応する描画情報を描画情報データ構造体300の対応するレイヤに登録する。あるイベントの発生によって、状態管理データ構造体324で管理している状態要素が全て「非アクティブ」になった場合は、状態管理モジュール300は、状態制御データ構造体322及び描画情報データ構造体300の対応するレイヤに登録されているイベント処理情報と描画情報とを抹消する。
複数のイベント処理モジュール350、351、352、353、354、355、356、357は、対応する状態要素がアクティブである期間にイベントが発生した際に起動され、制御部72をイベント処理手段として機能させるプログラム部品である。これらのイベント処理モジュールは、発生したイベントによって、状態管理データ構造体324で管理されている状態要素の発生状況が変化する場合、その状態要素の発生状況フィールドに「アクティブ」又は「非アクティブ」を設定する。イベント発生に応じてハンドリングされるイベント処理モジュール358において状態管理データ構造体324の対応する状態要素の発生状況を設定し、状態管理モジュール300にイベントが発生したことを通知する構成であってもよい。この場合、イベント処理モジュール358は、制御部72をイベント処理手段として機能させる。
また、状態管理モジュール300は、状態管理データ構造体324を参照し、発生状況が「アクティブ」な状態要素のうち最優先の状態要素に対応するイベント処理情報を状態制御データ構造体322の対応するレイヤに、最優先の状態要素に対応する描画情報を描画情報データ構造体300の対応するレイヤに登録する。あるイベントの発生によって、状態管理データ構造体324で管理している状態要素が全て「非アクティブ」になった場合は、状態管理モジュール300は、状態制御データ構造体322及び描画情報データ構造体300の対応するレイヤに登録されているイベント処理情報と描画情報とを抹消する。
状態制御データ構造体322は、レイヤの個数分RAM74に確保され、レイヤ毎に動的に登録されるイベント処理情報(外部イベント処理モジュールの参照、内部イベント処理モジュールの参照)を記憶する。モジュールの参照として設定されるのは、例えば各モジュールがROM76に格納されている領域の先頭アドレスである。例えばタスク間で送受信される、各イベント処理モジュールと対応したメッセージコードであってもよい。ここでレイヤとは、イベント処理を優先度順に概念的に区分するものである。レイヤには予め処理優先度が対応付けられており、レイヤ1を処理優先度を最も低く、レイヤ1からレイヤ5の順に処理優先度を高く設定している。レイヤの個数は5個に限定されない。処理優先度が最も高いレイヤ5には状態管理データ構造体324で管理されている状態要素のうち「アクティブ」でかつ処理優先度が最も高い状態要素に対応するイベント情報が対応付けられる。レイヤ1には、セットアップモード以外のモードでのデフォルト画面が表示されている状態におけるイベント処理情報が、レイヤ2には、セットアップモード以外のモードでのサブ画面が表示されている状態におけるイベント処理情報が、対応付けられる。レイヤ3には、セットアップモードでのデフォルト画面が表示されている状態におけるイベント処理情報が、レイヤ4には、セットアップモードでのサブ画面が表示されている状態におけるイベント処理情報が、対応付けられる。以上のような対応付けがレイヤ毎に予め設計されている。
画面管理モジュール310は、後述する画面管理処理を制御部72に実行させることによって制御部72を描画手段、表示手段として機能させるプログラム部品である。
複数の描画モジュール306、307、308、309は、FPD88に表示される画像の画像データを画面領域73に描画させることによって制御部72を描画手段として機能させるプログラム部品である。尚、複数の描画モジュールは、高速に描画可能な専用回路で構成され、図示しないASICに搭載されていてもよい。
複数の描画モジュール306、307、308、309は、FPD88に表示される画像の画像データを画面領域73に描画させることによって制御部72を描画手段として機能させるプログラム部品である。尚、複数の描画モジュールは、高速に描画可能な専用回路で構成され、図示しないASICに搭載されていてもよい。
描画情報データ構造体300は、レイヤの個数分RAM74に確保され、レイヤ毎に登録される描画情報(描画モジュールの参照、描画モジュールによって描画される領域の位置情報、及び付加情報)と、レイヤ毎に設定される、描画実行の「要/不要」を記憶する。描画モジュールと対応するID番号をさらに記憶してもよい。ここでレイヤとは、FPD88に表示される画像要素を表示優先度順に概念的に区分するものである。レイヤには予め表示優先度が対応付けられており、レイヤ1を表示優先度を最も低く、レイヤ1からレイヤ5の順に表示優先度を高く設定している。もちろんレイヤの個数は5個以上でも以下でもよい。表示優先度が高いレイヤのデータ構造体に登録された描画情報に基づいて描画される画像要素は、表示優先度が低いレイヤのデータ構造体に登録された描画情報に基づいて描画される画像要素より優先的に表示される。表示優先度が最も高いレイヤ5には状態管理データ構造体324で管理されている状態要素のうち「アクティブ」でかつ処理優先度が最も高い状態要素に対応する画像要素が対応付けられる。レイヤ1には、セットアップモード以外のモードでのデフォルト画面を表す画像要素が、レイヤ2には、セットアップモード以外のモードでのサブ画面を表す画像要素が、対応付けられる。レイヤ3には、セットアップモードでのデフォルト画面を表す画像要素が、レイヤ4には、セットアップモードでのサブ画面を表す画像要素が対応付けられる。以上のような対応付けがレイヤ毎に予め設計されている。
描画モジュールの参照フィールドには、例えばある画像要素を描画するための描画命令群からなる描画モジュールがROM76に格納されている領域の先頭アドレスが設定される。参照フィールドに設定されるのは、例えばタスク間で送受信される、各描画モジュールと対応したメッセージコードであってもよい。また、参照フィールドには描画モジュールと対応するID番号が設定され、図示しない描画専用ASICにそのID番号を通知することによって描画させる構成であってもよい。位置情報フィールドには、描画モジュールによって描画される領域の位置を表す情報として、領域の描画開始座標(X,Y)と幅及び高さが設定される。画像要素とは、例えばウィンドウのような矩形の画像を指す。尚、画像要素は矩形でなくてもよく、例えば文字やアイコンそのものであってもよい。付加情報フィールドは、描画情報毎に異なる個別の情報を記憶するためのフィールドで、例えば画面の領域全部を描画するか又は画面の一部の領域(例えば、「印刷中」の状態を示す画面における印刷残り枚数の数字の部分)だけ更新するか、等を指定するために使用される。描画命令群によって生成される画像データは、例えば1画素毎に色値を持つビットマップデータである。
以上、MFP1の論理的構成について説明した。
以上、MFP1の論理的構成について説明した。
図6は、イベント発生に応じて変化する状態制御データ構造体322を示す模式図である。図7は、図6のイベント発生に伴うFPD88の画面遷移と描画情報データ構造体320の状態を示す模式図である。本実施形態による状態制御方法を説明するために、以下のイベントを例にして、具体的に説明する。
(1)ユーザが印刷したい画像を選択する。
(2)印刷する画像をユーザが確認する。
(3)ユーザが「印刷開始」ボタンを押す。
(4)ユーザがディジタルカメラをMFP1に接続する。
(5)ディジタルカメラの接続から一定時間が経過する。
(6)印刷が終了する。
(1)ユーザが印刷したい画像を選択する。
(2)印刷する画像をユーザが確認する。
(3)ユーザが「印刷開始」ボタンを押す。
(4)ユーザがディジタルカメラをMFP1に接続する。
(5)ディジタルカメラの接続から一定時間が経過する。
(6)印刷が終了する。
(1)ユーザが印刷したい画像を選択する。
ユーザが、図示しないカードスロットにリムーバブルメモリ96を装着し、リムーバブルメモリ96内に格納されている画像から印刷したい画像を選択するためにボタン群82を操作すると、状態制御データ構造体322に登録されているイベント処理モジュールのうち処理優先度が最優先のレイヤの状態制御データ構造体に登録されている外部イベント処理モジュールが起動される。具体的には、レイヤ1に登録されているデフォルト画面表示中の外部イベント処理モジュールが起動され、ユーザのボタン操作に応じた画像をリムーバブルメモリ96からRAM74に読み出す処理等が実行される。次に、描画情報登録処理及び画面管理処理が実行される。このとき描画情報登録処理に与えられるパラメータは例えば、指定レイヤとしてレイヤ1、描画モジュールの参照に「デフォルト画面」画像要素描画モジュールの参照、描画開始座標に(0,0)、幅と高さに(320,240)である。以下、描画情報登録処理及び画面管理処理について説明する。
ユーザが、図示しないカードスロットにリムーバブルメモリ96を装着し、リムーバブルメモリ96内に格納されている画像から印刷したい画像を選択するためにボタン群82を操作すると、状態制御データ構造体322に登録されているイベント処理モジュールのうち処理優先度が最優先のレイヤの状態制御データ構造体に登録されている外部イベント処理モジュールが起動される。具体的には、レイヤ1に登録されているデフォルト画面表示中の外部イベント処理モジュールが起動され、ユーザのボタン操作に応じた画像をリムーバブルメモリ96からRAM74に読み出す処理等が実行される。次に、描画情報登録処理及び画面管理処理が実行される。このとき描画情報登録処理に与えられるパラメータは例えば、指定レイヤとしてレイヤ1、描画モジュールの参照に「デフォルト画面」画像要素描画モジュールの参照、描画開始座標に(0,0)、幅と高さに(320,240)である。以下、描画情報登録処理及び画面管理処理について説明する。
(描画情報登録処理)
図8は、描画情報登録処理の流れを示すフローチャートである。描画情報登録処理は、画面表示内容の変更を伴うイベントが発生すると、実行される処理である。
はじめに、描画情報が指定レイヤの描画情報データ構造体に登録される(ステップS100)。具体的には、パラメータとして与えられた指定レイヤの描画情報データ構造体に、同じくパラメータとして与えられた描画モジュールの参照と、その描画モジュールによって描画される領域の位置情報(描画開始座標、幅、高さ)とを登録する。
図8は、描画情報登録処理の流れを示すフローチャートである。描画情報登録処理は、画面表示内容の変更を伴うイベントが発生すると、実行される処理である。
はじめに、描画情報が指定レイヤの描画情報データ構造体に登録される(ステップS100)。具体的には、パラメータとして与えられた指定レイヤの描画情報データ構造体に、同じくパラメータとして与えられた描画モジュールの参照と、その描画モジュールによって描画される領域の位置情報(描画開始座標、幅、高さ)とを登録する。
ステップS102では、指定レイヤより上位レイヤの描画情報データ構造体に描画情報が登録されているレイヤが存在するか判定される。指定レイヤより上位レイヤの描画情報データ構造体に描画情報が登録されているレイヤが存在する場合、描画情報登録処理が終了される。すなわち、新しく発生したイベントに対応する画像要素がその時点で表示されている画像要素よりも表示優先度が低い場合は、描画情報を登録するだけで実際に描画及び画面更新は行わない。描画及び画面更新は行わないが描画情報を描画情報データ構造体に登録しておくことにより、現時点で表示されている画像要素が消去されるとき、後述する画面管理処理によって、登録されている描画情報に基づいて対応する画像要素を表示させることができる。
ステップS104では、ステップS102で指定レイヤより上位レイヤの描画情報データ構造体に描画情報が登録されているレイヤが存在しない場合、指定レイヤの描画実行フィールドに「要」が設定される。
ステップS106では、画面管理処理が起動される。尚、画面管理処理は、描画情報登録処理によって起動されてもよいし、例えば画面管理モジュール310が描画情報データ構造体320の値をポーリングして、更新を検出した時点で画面管理処理が起動されてもよい。
尚、新しく発生したイベントに対応する画像要素が、その時点で表示されている画像要素よりも表示優先度が低い場合であっても、新しく発生したイベントに対応するレイヤとそれより表示優先度が高くかつ描画情報が登録されているレイヤの描画実行を「要」としてもよい。
ステップS106では、画面管理処理が起動される。尚、画面管理処理は、描画情報登録処理によって起動されてもよいし、例えば画面管理モジュール310が描画情報データ構造体320の値をポーリングして、更新を検出した時点で画面管理処理が起動されてもよい。
尚、新しく発生したイベントに対応する画像要素が、その時点で表示されている画像要素よりも表示優先度が低い場合であっても、新しく発生したイベントに対応するレイヤとそれより表示優先度が高くかつ描画情報が登録されているレイヤの描画実行を「要」としてもよい。
(画面管理処理)
図9は、画面管理処理の流れを示すフローチャートである。画面管理処理は、画面表示を更新する際に実行される処理である。
はじめに、注目レイヤに最下位レイヤが設定される(ステップS200)。具体的にはレイヤ1が設定される。
ステップS202では、注目レイヤの描画実行が「要」とされているか判定される。注目レイヤの描画情報データ構造体の描画実行フィールドに「要」が設定されていなければ、ステップS204の処理が行われる。
図9は、画面管理処理の流れを示すフローチャートである。画面管理処理は、画面表示を更新する際に実行される処理である。
はじめに、注目レイヤに最下位レイヤが設定される(ステップS200)。具体的にはレイヤ1が設定される。
ステップS202では、注目レイヤの描画実行が「要」とされているか判定される。注目レイヤの描画情報データ構造体の描画実行フィールドに「要」が設定されていなければ、ステップS204の処理が行われる。
ステップS204では、登録されている描画情報に基づいて描画が実行される。具体的には、ステップS202で注目レイヤの描画情報データ構造体の描画実行フィールドが「要」と設定されている場合、注目レイヤの描画情報データ構造体の参照フィールドに登録されている描画モジュールを呼び出して、画面領域73に画像データを描画する。
ステップS206では、注目レイヤの描画実行フィールドに「不要」が設定される。
ステップS208では、注目レイヤが最上位レイヤであるか判定される。注目レイヤが最上位レイヤでなければ、注目レイヤに一つ上のレイヤが設定される(ステップS210)。
ステップS206では、注目レイヤの描画実行フィールドに「不要」が設定される。
ステップS208では、注目レイヤが最上位レイヤであるか判定される。注目レイヤが最上位レイヤでなければ、注目レイヤに一つ上のレイヤが設定される(ステップS210)。
以上の処理が最下位レイヤから1レイヤずつ最上位レイヤまで繰り返され、表示が更新される(ステップS212)。具体的には、制御部72は、DSPD86を制御して画面領域73に描画されている画像データを用いてFPD88の画面表示を更新させる。
このように、表示優先度が予め決められているレイヤ毎にある描画情報データ構造体に登録されている描画情報に基づいて最下位レイヤから順に画面領域73に画像データを描画する構成では、レイヤの個数分の画像データ格納領域を必要としないため、メモリ資源を節約することができる。
以上説明した描画情報登録処理と画面管理処理とが実行することにより、制御部72は図7(A)に示す「デフォルト画面」画像要素の画像データを画面領域73に生成し、DSPD86を制御してFPD88に画面200の画像を表示させる。
このように、表示優先度が予め決められているレイヤ毎にある描画情報データ構造体に登録されている描画情報に基づいて最下位レイヤから順に画面領域73に画像データを描画する構成では、レイヤの個数分の画像データ格納領域を必要としないため、メモリ資源を節約することができる。
以上説明した描画情報登録処理と画面管理処理とが実行することにより、制御部72は図7(A)に示す「デフォルト画面」画像要素の画像データを画面領域73に生成し、DSPD86を制御してFPD88に画面200の画像を表示させる。
(2)印刷する画像をユーザが確認する。
印刷したい画像がFPD88に表示されている状態で、ユーザがボタン群82の所定のボタン(例えば「OK」ボタン)を押すと、そのときFPD88に表示されている画像の印刷設定情報が表示される状態に遷移する。具体的には、状態管理モジュール300によって状態制御データ構造体322に登録されているイベント処理モジュールのうち処理優先度が最優先のレイヤの状態制御データ構造体に登録されている外部イベント処理モジュールが検索される。このとき、状態制御データ構造体322は図6(A)に示す状態であるので、デフォルト画面表示中の外部イベント処理モジュールが起動される。デフォルト画面表示中の外部イベント処理では、ユーザの指示(ここでは「OK」ボタン押下)を有効と判定し、その時点で選択されている画像の印刷設定情報を取得する処理等が実行される。また、レイヤ2の状態制御データ構造体にサブ画面表示中の外部イベント処理モジュールとサブ画面表示中の内部イベント処理モジュールとが登録される(図6(B)参照)。
印刷したい画像がFPD88に表示されている状態で、ユーザがボタン群82の所定のボタン(例えば「OK」ボタン)を押すと、そのときFPD88に表示されている画像の印刷設定情報が表示される状態に遷移する。具体的には、状態管理モジュール300によって状態制御データ構造体322に登録されているイベント処理モジュールのうち処理優先度が最優先のレイヤの状態制御データ構造体に登録されている外部イベント処理モジュールが検索される。このとき、状態制御データ構造体322は図6(A)に示す状態であるので、デフォルト画面表示中の外部イベント処理モジュールが起動される。デフォルト画面表示中の外部イベント処理では、ユーザの指示(ここでは「OK」ボタン押下)を有効と判定し、その時点で選択されている画像の印刷設定情報を取得する処理等が実行される。また、レイヤ2の状態制御データ構造体にサブ画面表示中の外部イベント処理モジュールとサブ画面表示中の内部イベント処理モジュールとが登録される(図6(B)参照)。
次に、描画情報登録処理と画面管理処理とが実行される。このとき描画情報登録処理に与えられるパラメータは例えば、指定レイヤとしてレイヤ2、描画モジュールの参照に「サブ画面」画像要素描画モジュールの参照、描画開始座標に(20,15)、幅と高さに(280,210)である。描画情報登録処理が実行されると、レイヤ2の描画情報データ構造体の描画実行のみが「要」と設定される。そのため、続けて画面管理処理が実行されることにより、既に図7(A)の「デフォルト画面」画像要素の画像データが描画されている画面領域73に、図7(B)に示す「サブ画面」画像要素の画像データが、パラメータとして与えられた位置情報の領域に上書きされ、FPD88に画面202が表示される。既に描画情報が描画情報データ構造体に登録され画面領域73に描画済みである「デフォルト画面」画像要素を再度描画することなく、「サブ画面」画像要素を描画することにより、「デフォルト画面」画像要素、「サブ画面」画像要素を順に描画する場合と比較して、一画面分の画像を表示するための画像データを早く生成することができる。
(3)ユーザが「印刷開始」ボタンを押す。
図7(B)の画面202がFPD88に表示されている状態で、ユーザがボタン群82の「印刷開始」ボタンを押すと、状態制御データ構造体322に登録されているイベント処理モジュールのうち処理優先度が最優先のレイヤの状態制御データ構造体に登録されている外部イベント処理モジュールが起動される。具体的には、レイヤ2に登録されているサブ画面表示中の外部イベント処理が起動される。画面表示中の外部イベント処理では、ユーザの「印刷開始」指示が有効と判定されて印刷処理が開始され、状態管理データ構造体324の「印刷中」状態要素の発生状況が「非アクティブ」から「アクティブ」に更新される。状態管理データ構造体324の状態要素の発生状況が更新されたのを受けて、状態管理データ構造体324の発生状況フィールドが処理優先度が最優先のものから順に検索される。このとき、「印刷中」状態要素の発生状況が唯一「アクティブ」であるので、印刷中の外部イベント処理モジュールと印刷中の内部イベント処理モジュールとが、状態制御データ構造体322のレイヤ5に登録される。尚、このとき登録される、印刷中の外部イベント処理では、例えば「印刷中止」ボタンは「印刷中」状態における有効なボタンの一つと判定される。
図7(B)の画面202がFPD88に表示されている状態で、ユーザがボタン群82の「印刷開始」ボタンを押すと、状態制御データ構造体322に登録されているイベント処理モジュールのうち処理優先度が最優先のレイヤの状態制御データ構造体に登録されている外部イベント処理モジュールが起動される。具体的には、レイヤ2に登録されているサブ画面表示中の外部イベント処理が起動される。画面表示中の外部イベント処理では、ユーザの「印刷開始」指示が有効と判定されて印刷処理が開始され、状態管理データ構造体324の「印刷中」状態要素の発生状況が「非アクティブ」から「アクティブ」に更新される。状態管理データ構造体324の状態要素の発生状況が更新されたのを受けて、状態管理データ構造体324の発生状況フィールドが処理優先度が最優先のものから順に検索される。このとき、「印刷中」状態要素の発生状況が唯一「アクティブ」であるので、印刷中の外部イベント処理モジュールと印刷中の内部イベント処理モジュールとが、状態制御データ構造体322のレイヤ5に登録される。尚、このとき登録される、印刷中の外部イベント処理では、例えば「印刷中止」ボタンは「印刷中」状態における有効なボタンの一つと判定される。
次に、描画情報登録処理と画面管理処理とが実行される。「アクティブ」である「印刷中」状態要素に対応する描画情報に基づいて、このとき描画情報登録処理に与えられるパラメータは、指定レイヤとしてレイヤ5、描画モジュールの参照に「印刷中」画像要素描画モジュールの参照、描画開始座標に(0,0)、幅と高さに(320,240)である。状態管理データ構造体324の位置情報フィールドの「FULL」は、一画面に対応する画面領域全体を示している。描画情報登録処理が実行されると、レイヤ5の描画情報データ構造体の描画実行のみが「要」と設定される。そのため、続けて画面管理処理が実行されることにより、既に図7(A)の「デフォルト画面」画像要素の画像データに図7(B)の「サブ画面」画像要素の画像データが上書きされた状態の画面領域73に、図7(C)の「印刷中」画像要素の画像データが上書きされ、FPD88に画面204が表示される。既に描画情報が描画情報データ構造体に登録され画面領域73に描画済みである「デフォルト画面」画像要素及び「サブ画面」画像要素を再度描画することなく、「印刷中」画像要素を描画することにより、「デフォルト画面」画像要素、「サブ画面」画像要素、「印刷中」画像要素を順に描画する場合と比較して、一画面分の画像を表示するための描画データを早く生成することができる。
(4)ユーザがディジタルカメラをMFP1に接続する。
ユーザが図示しないディジタルカメラを通信部93に接続すると、ディジタルカメラの接続を検知し、「カメラ接続中」の状態であることをユーザに知らせるための画面が所定の時間の間だけ表示される。具体的には、カメラ接続が検出されると、状態管理テーブル324の「カメラ接続表示中」状態要素の発生状況が「非アクティブ」から「アクティブ」に更新される。状態管理データ構造体324の状態要素の発生状況が更新されたのを受けて、状態管理データ構造体324の発生状況フィールドが処理優先度が最優先のものから順に検索される。このとき、「印刷中」状態要素も「アクティブ」であるが、「カメラ接続表示中」状態要素の方が処理優先度が高いため、カメラ接続表示中の外部イベント処理とカメラ接続表示中の内部イベント処理とが、状態制御データ構造体322のレイヤ5に登録される(図6(D)参照)。尚、このとき登録されるカメラ接続中の外部イベント処理では、例えば「印刷中止」ボタンは「カメラ接続表示中」状態における無効なボタンの一つと判定されるので、「印刷中」状態でかつ「カメラ接続表示中」状態の期間に「印刷中止」ボタンが押されたとしても、印刷中止のための処理は実行されない。電子機器の状態によって有効なボタン操作と無効なボタン操作は異なる場合もあるし、同じボタンが押されても状態によって異なる処理が割り当てられる場合もある。本実施形態の構成によると、このように状態によって異なる処理を行うという要求仕様を、単純な制御で実現することができる。また、状態要素の種類とイベントの種類とに応じてイベント処理モジュールを部品化することにより、プログラムロジックの重複を排除しプログラムサイズを削減することができる。また、プログラムの保守性及び再利用性を向上させることができる。
ユーザが図示しないディジタルカメラを通信部93に接続すると、ディジタルカメラの接続を検知し、「カメラ接続中」の状態であることをユーザに知らせるための画面が所定の時間の間だけ表示される。具体的には、カメラ接続が検出されると、状態管理テーブル324の「カメラ接続表示中」状態要素の発生状況が「非アクティブ」から「アクティブ」に更新される。状態管理データ構造体324の状態要素の発生状況が更新されたのを受けて、状態管理データ構造体324の発生状況フィールドが処理優先度が最優先のものから順に検索される。このとき、「印刷中」状態要素も「アクティブ」であるが、「カメラ接続表示中」状態要素の方が処理優先度が高いため、カメラ接続表示中の外部イベント処理とカメラ接続表示中の内部イベント処理とが、状態制御データ構造体322のレイヤ5に登録される(図6(D)参照)。尚、このとき登録されるカメラ接続中の外部イベント処理では、例えば「印刷中止」ボタンは「カメラ接続表示中」状態における無効なボタンの一つと判定されるので、「印刷中」状態でかつ「カメラ接続表示中」状態の期間に「印刷中止」ボタンが押されたとしても、印刷中止のための処理は実行されない。電子機器の状態によって有効なボタン操作と無効なボタン操作は異なる場合もあるし、同じボタンが押されても状態によって異なる処理が割り当てられる場合もある。本実施形態の構成によると、このように状態によって異なる処理を行うという要求仕様を、単純な制御で実現することができる。また、状態要素の種類とイベントの種類とに応じてイベント処理モジュールを部品化することにより、プログラムロジックの重複を排除しプログラムサイズを削減することができる。また、プログラムの保守性及び再利用性を向上させることができる。
次に、描画情報登録処理と画面管理処理とが実行される。「カメラ接続表示中」状態要素に対応する描画情報に基づいて、このとき描画情報登録処理に与えられるパラメータは、指定レイヤとしてレイヤ5、描画モジュールの参照に「カメラ接続中」描画モジュールの参照、描画開始座標に(0,0)、幅と高さに(320,240)である。描画情報登録処理が実行されると、レイヤ5の描画情報データ構造体の描画実行のみが「要」と設定される。そのため、続けて画面管理処理が実行されることにより、既に図7(C)の「印刷中」画像要素の画像データが描画されている状態の画面領域73に、図7(D)の「カメラ接続中」画像要素の画像データが上書きされ、FPD88に画面206が表示される。既に描画情報が描画情報データ構造体に登録され画面領域73に描画済みである「デフォルト画面」画像要素、「サブ画面」画像要素及び「印刷中」画像要素を再度描画することなく、「カメラ接続中」画像要素を描画することにより、「デフォルト画面」画像要素、「サブ画面」画像要素、「印刷中」画像要素、「カメラ接続中」画像要素を順に描画する場合と比較して、一画面分の画像を表示するための描画データを早く生成することができる。
(5)ディジタルカメラの接続から一定時間が経過する。
ディジタルカメラの接続をMFP1が検知してから所定時間が経過すると、「カメラ接続中」画面が解除される。ディジタルカメラの接続検知から所定時間が経過したというイベントが発生すると、状態制御データ構造体322に登録されているイベント処理モジュールのうち最優先のレイヤの状態制御データ構造体に登録されている内部イベント処理モジュールが起動される。ここでは、レイヤ5に登録されているカメラ接続表示中の内部イベント処理が起動される。カメラ接続表示中の内部イベント処理では、状態管理データ構造体324の「カメラ接続表示中」状態要素の発生状況フィールドが「アクティブ」から「非アクティブ」に更新される。状態管理データ構造体324の状態要素の発生状況が更新されたのを受けて、状態管理データ構造体324の発生状況フィールドが処理優先度が最優先のものから順に検索される。このとき、「印刷中」状態要素の発生状況が唯一「アクティブ」であるので、印刷中の外部イベント処理モジュールと印刷中の内部イベント処理モジュールとが、状態制御データ構造体322のレイヤ5に再び登録される(図6(C)参照)。
次に、描画情報登録処理と画面管理処理とが実行される。「(3)ユーザが「印刷開始」ボタンを押す。」で既に説明したものと同様の処理が実行され、FPD88には画面204が表示される。
ディジタルカメラの接続をMFP1が検知してから所定時間が経過すると、「カメラ接続中」画面が解除される。ディジタルカメラの接続検知から所定時間が経過したというイベントが発生すると、状態制御データ構造体322に登録されているイベント処理モジュールのうち最優先のレイヤの状態制御データ構造体に登録されている内部イベント処理モジュールが起動される。ここでは、レイヤ5に登録されているカメラ接続表示中の内部イベント処理が起動される。カメラ接続表示中の内部イベント処理では、状態管理データ構造体324の「カメラ接続表示中」状態要素の発生状況フィールドが「アクティブ」から「非アクティブ」に更新される。状態管理データ構造体324の状態要素の発生状況が更新されたのを受けて、状態管理データ構造体324の発生状況フィールドが処理優先度が最優先のものから順に検索される。このとき、「印刷中」状態要素の発生状況が唯一「アクティブ」であるので、印刷中の外部イベント処理モジュールと印刷中の内部イベント処理モジュールとが、状態制御データ構造体322のレイヤ5に再び登録される(図6(C)参照)。
次に、描画情報登録処理と画面管理処理とが実行される。「(3)ユーザが「印刷開始」ボタンを押す。」で既に説明したものと同様の処理が実行され、FPD88には画面204が表示される。
(6)印刷が終了する。
印刷制御部66から印刷が正常終了したというイベントが発生すると、状態制御データ構造体322に登録されているイベント処理モジュールのうち処理優先度が最優先のレイヤの状態制御データ構造体に登録されている内部イベント処理モジュールが検索される。このとき、状態制御データ構造体322は図6(C)に示す状態であるので、印刷中の内部イベント処理モジュールが起動される。印刷中の内部イベント処理では、状態管理データ構造体324の「印刷中」状態要素の発生状況が「アクティブ」から「非アクティブ」に更新される。それを受けて、状態管理データ構造体324の発生状況フィールドが処理優先度が最優先のものから順に検索される。このとき、「アクティブ」な状態要素はなくなっているので、状態制御データ構造体322のレイヤ5の、印刷中の外部イベント処理モジュールと印刷中の内部イベント処理モジュールの登録が抹消される(図6(B)参照)。
次に、描画情報抹消処理と画面管理処理とが実行される。このとき描画情報抹消処理に、消去対象レイヤとしてレイヤ5というパラメータが与えられる。以下、描画情報抹消処理について説明する。
印刷制御部66から印刷が正常終了したというイベントが発生すると、状態制御データ構造体322に登録されているイベント処理モジュールのうち処理優先度が最優先のレイヤの状態制御データ構造体に登録されている内部イベント処理モジュールが検索される。このとき、状態制御データ構造体322は図6(C)に示す状態であるので、印刷中の内部イベント処理モジュールが起動される。印刷中の内部イベント処理では、状態管理データ構造体324の「印刷中」状態要素の発生状況が「アクティブ」から「非アクティブ」に更新される。それを受けて、状態管理データ構造体324の発生状況フィールドが処理優先度が最優先のものから順に検索される。このとき、「アクティブ」な状態要素はなくなっているので、状態制御データ構造体322のレイヤ5の、印刷中の外部イベント処理モジュールと印刷中の内部イベント処理モジュールの登録が抹消される(図6(B)参照)。
次に、描画情報抹消処理と画面管理処理とが実行される。このとき描画情報抹消処理に、消去対象レイヤとしてレイヤ5というパラメータが与えられる。以下、描画情報抹消処理について説明する。
(描画情報抹消処理)
図10は、描画情報抹消処理の流れを示すフローチャートである。描画情報抹消処理は、画面表示内容の変更を伴うイベントのうち、現在表示されている画像要素を消去するイベントが発生すると、実行される処理である。
はじめに、判定対象レイヤに消去対象レイヤが設定される(ステップS300)。具体的には、パラメータとして与えられた消去対象レイヤを初期値として判定対象レイヤが設定される。
ステップS302では、判定対象レイヤの次に下位のレイヤが存在するか判定される。具体的には、判定対象レイヤの次に下位のレイヤから表示優先度が低くなる方向に順に、描画情報データ構造体に描画モジュール及び位置情報が登録されているレイヤが検索される。
図10は、描画情報抹消処理の流れを示すフローチャートである。描画情報抹消処理は、画面表示内容の変更を伴うイベントのうち、現在表示されている画像要素を消去するイベントが発生すると、実行される処理である。
はじめに、判定対象レイヤに消去対象レイヤが設定される(ステップS300)。具体的には、パラメータとして与えられた消去対象レイヤを初期値として判定対象レイヤが設定される。
ステップS302では、判定対象レイヤの次に下位のレイヤが存在するか判定される。具体的には、判定対象レイヤの次に下位のレイヤから表示優先度が低くなる方向に順に、描画情報データ構造体に描画モジュール及び位置情報が登録されているレイヤが検索される。
ステップS304では、判定対象レイヤの次に下位のレイヤが設定される。具体的には、ステップS302で判定対象レイヤの次に下位のレイヤが存在すると判定された場合、判定対象レイヤが次に下位のレイヤに更新される。
ステップS306では、判定対象レイヤの描画実行が「要」と設定される。
ステップS308では、判定対象レイヤは最下位レイヤであるか判定される。具体的には、判定対象レイヤはレイヤ1であるかが判定される。
ステップS306では、判定対象レイヤの描画実行が「要」と設定される。
ステップS308では、判定対象レイヤは最下位レイヤであるか判定される。具体的には、判定対象レイヤはレイヤ1であるかが判定される。
ステップS310では、判定対象領域と消去対象領域との包含関係が判定される。具体的には、ステップS308で判定対象レイヤがレイヤ1でないと判定された場合、判定対象レイヤの描画情報データ構造体に登録されている描画モジュールによって描画される領域(以下、判定対象領域という)の位置情報と、消去対象レイヤの描画情報データ構造体に登録されている描画モジュールによって描画される領域(以下、消去対象領域という)の位置情報とに基づいて、領域の包含関係が判定される。より具体的には、図11(C)に示すように、消去対象領域が判定対象領域に包含されるか又は、図11(B)に示すように、消去対象領域が判定対象領域と一致する場合、ステップS312の処理が実行される。図11(A)、(D)に示すように、消去対象領域が判定対象領域に包含されない場合、ステップS302の処理に戻る。
ステップS312では、消去対象レイヤの描画情報が描画情報データ構造体から抹消される。具体的には、消去対象レイヤの描画情報データ構造体の描画モジュールの参照フィールドと位置情報の各フィールドと付加情報フィールドとに所定の無効値が設定され、描画実行フィールドに「要」が設定される。
ステップS314では、画面管理処理が起動される。尚、画面管理処理は、描画情報抹消処理によって起動されてもよいし、前述したように、描画情報データ構造体320の値をポーリングし、更新を検出した時点で画面管理処理が起動されてもよい。
尚、以上の処理は、描画情報が描画情報データ構造体に登録されているレイヤのうち優先度が最も高いレイヤの描画情報データ構造体に登録されている要素を消去する場合の処理であるが、消去対象レイヤの上位レイヤの描画情報データ構造体に描画情報が登録されているレイヤが存在する場合は、消去対象レイヤの上位レイヤの描画実行が「要」と設定される。
以上、描画情報抹消処理について説明した。画面管理処理については既に説明した通りである。
ステップS314では、画面管理処理が起動される。尚、画面管理処理は、描画情報抹消処理によって起動されてもよいし、前述したように、描画情報データ構造体320の値をポーリングし、更新を検出した時点で画面管理処理が起動されてもよい。
尚、以上の処理は、描画情報が描画情報データ構造体に登録されているレイヤのうち優先度が最も高いレイヤの描画情報データ構造体に登録されている要素を消去する場合の処理であるが、消去対象レイヤの上位レイヤの描画情報データ構造体に描画情報が登録されているレイヤが存在する場合は、消去対象レイヤの上位レイヤの描画実行が「要」と設定される。
以上、描画情報抹消処理について説明した。画面管理処理については既に説明した通りである。
図12は、レイヤの消去を概念的に説明するための模式図である。レイヤ5の描画情報データ構造体に登録されている描画情報が抹消されると(図12(A)から図12(B))、消去対象領域と一致するか又は消去対象領域を包含する領域の位置情報が描画情報データ構造体に登録されているレイヤを、レイヤ5から順にレイヤ1に向かって検索し、レイヤ1とレイヤ2の描画実行を「要」と設定する。制御部72は、レイヤ1の描画情報データ構造体に登録されている「デフォルト画面」画像要素描画モジュールと、レイヤ2の描画情報データ構造体に登録されている「サブ画面」画像要素描画モジュールを順に起動することによって、「印刷中」画像要素の画像データが既に描画されている画面領域73に「デフォルト画面」画像要素と「サブ画面」画像要素の画像データを順に描画し、FPD88には画面202が表示される。
さらにレイヤ2の描画情報データ構造体に登録されている描画情報が抹消された場合は(図12(B)から図12(C))、同様に制御部72は描画情報抹消処理(消去対象レイヤはレイヤ2)と画面管理処理とを実行することによって、「デフォルト画面」画像要素を画面領域73に描画しFPD88に画面200を表示する。
さらにレイヤ2の描画情報データ構造体に登録されている描画情報が抹消された場合は(図12(B)から図12(C))、同様に制御部72は描画情報抹消処理(消去対象レイヤはレイヤ2)と画面管理処理とを実行することによって、「デフォルト画面」画像要素を画面領域73に描画しFPD88に画面200を表示する。
以上説明したように、表示優先度が予め決められているレイヤ毎に描画情報データ構造体を設け、その描画情報データ構造体を介して、イベントの発生を検知しそのイベントに応じて描画情報を登録又は抹消する処理と、描画処理とを切り離すことにより、プログラムモジュールの独立性を向上させ、プログラムの保守性及び再利用性を向上させることができる。
また、電子機器の状態を定める要素となる個々の状態要素について発生状況を記憶し処理優先度順に管理する状態管理データ構造体と、処理優先度が予め決められているレイヤ毎に状態制御データ構造体とを設け、それらのデータ構造体を介して、イベント発生によって状態要素の発生状況を更新する処理と、最優先の状態要素を判定して対応するイベント処理を起動する処理とを切り離すことにより、イベントが発生するたびに、電子機器の状態に応じた処理を行うための処理優先度の判定を単純な制御で実現することができる。さらに本実施形態の構成によると、プログラムモジュールの独立性を向上させ、プログラムの保守性及び再利用性を向上させることができる。
また、電子機器の状態を定める要素となる個々の状態要素について発生状況を記憶し処理優先度順に管理する状態管理データ構造体と、処理優先度が予め決められているレイヤ毎に状態制御データ構造体とを設け、それらのデータ構造体を介して、イベント発生によって状態要素の発生状況を更新する処理と、最優先の状態要素を判定して対応するイベント処理を起動する処理とを切り離すことにより、イベントが発生するたびに、電子機器の状態に応じた処理を行うための処理優先度の判定を単純な制御で実現することができる。さらに本実施形態の構成によると、プログラムモジュールの独立性を向上させ、プログラムの保守性及び再利用性を向上させることができる。
尚、以上の説明では、描画処理の無駄を無くし、より高速に一画面分の描画データを生成する構成を説明したが、もちろん描画情報データ構造体に描画情報が登録又は抹消される度に、描画情報がデータ構造体に登録されているレイヤを対象に最下位レイヤから順に、描画情報に基づいて画面領域73に描画してもよい。描画情報データ構造体に描画情報が登録又は末梢されるタイミング以外にも、所定のタイミングで、描画情報がデータ構造体に登録されているレイヤを対象に最下位レイヤから順に、画面領域73に再描画し、画面表示をリフレッシュしてもよい。
本発明は、上記実施形態に限定されるものではなく、その要旨を逸脱しない範囲で種々の実施形態に適用可能である。例えば、本発明はディジタルカメラ、フォトビューワ、パーソナルコンピュータ、携帯電話など、電子機器全般に適用することができる。
1:MFP(電子機器)、72:制御部(状態管理手段、描画手段、表示手段、イベント処理手段、指示入力手段)、73:画面領域(一画面分の画像データ格納領域)、74:RAM(メモリ)、76:ROM、78:CPU、82:ボタン群(指示入力手段)、86:DSPD(表示手段)、88:FPD(表示手段)。
Claims (11)
- メモリと、 イベントが発生すると、表示優先度が予め決められているレイヤ毎にある描画情報データ構造体のうち発生した前記イベントに対応する前記描画情報データ構造体に、発生した前記イベントに対応する描画情報を登録、又は、発生した前記イベントに対応する前記描画情報データ構造体に登録されている前記描画情報を抹消する状態管理手段と、 前記描画情報が登録又は抹消されると、表示優先度の低いレイヤから順に、前記描画情報データ構造体に登録されている前記描画情報に基づいて前記メモリの一画面分の画像データ格納領域に描画する描画手段と、 前記画像データ格納領域に描画された画像を一画面に表示する表示手段と、を備える電子機器。
- 前記描画手段は、第一のレイヤの前記描画情報データ構造体に登録されている描画情報に基づいて描画される領域が前記第一のレイヤより表示優先度の高い第二のレイヤの前記描画情報データ構造体に登録されている描画情報に基づいて描画される領域に包含される場合、前記第一のレイヤの前記描画情報データ構造体に登録されている前記描画情報に基づいて描画することなく前記第二のレイヤの前記描画情報データ構造体に登録されている前記描画情報に基づいて描画し、前記第一のレイヤの前記描画情報データ構造体に登録されている前記描画情報に基づいて描画される領域が前記第二のレイヤの前記描画情報データ構造体に登録されている前記描画情報に基づいて描画される領域に包含されない場合、前記第一のレイヤの前記描画情報データ構造体に登録されている前記描画情報に基づいて描画した後に前記第二のレイヤの前記描画情報データ構造体に登録されている前記描画情報に基づいて描画する、請求項1に記載の電子機器。
- 前記描画手段は、既に前記描画情報が前記描画情報データ構造体に登録され前記画像データ格納領域に描画済みである他のレイヤと比較して最も表示優先度が高い最優先レイヤの前記描画情報データ構造体に前記描画情報が登録されると、前記他のレイヤの前記描画情報データ構造体に登録されている前記描画情報に基づいて描画することなく、前記最優先レイヤの前記描画情報データ構造体に登録されている前記描画情報に基づいて描画処理を実行する、請求項2に記載の電子機器。
- 前記描画情報は、前記描画処理の参照と、前記描画処理によって描画される領域の位置情報とを含み、 前記描画手段は、前記位置情報に基づいて前記描画情報に基づいて描画される複数の領域の包含関係を判定する、請求項3に記載の電子機器。
- 発生した前記イベントに応じた処理を行い、前記イベントに対応する状態要素がアクティブであるか又は非アクティブであるかを前記状態要素毎に設定するイベント処理を実行するイベント処理手段をさらに備え、 前記状態管理手段は、前記イベントが発生すると、処理優先度が予め決められているレイヤ毎にある状態制御データ構造体に登録されているイベント処理情報のうち、最も処理優先度が高いレイヤの状態制御データ構造体に登録されているイベント処理情報に基づいて前記イベント処理手段を起動し、アクティブとなった前記状態要素のうち最も処理優先度の高い状態要素に対応する前記イベント処理情報を対応する前記状態制御データ構造体に登録又は非アクティブとなった前記状態要素に対応する前記イベント処理情報を対応する前記状態制御データ構造体から抹消する、請求項1〜4のいずれか一項に記載の電子機器。
- ユーザの指示を入力する指示入力手段をさらに備え、 前記イベント処理情報は、前記指示の有効無効判定処理及び前記指示に応じた処理を行う外部イベント処理の参照と、内部イベントに応じた処理を行う内部イベント処理の参照とを含み、 前記状態管理手段は、前記指示が入力されると、前記状態制御データ構造体に登録されている前記外部イベント処理の参照のうち最も処理優先度の高いレイヤの前記状態制御データ構造体に登録されている前記外部イベント処理の参照に基づいて前記外部イベント処理を起動し、前記内部イベントが発生すると、前記状態制御データ構造体に登録されている前記内部イベント処理の参照のうち最も処理優先度の高いレイヤの前記状態制御データ構造体に登録されている前記内部イベント処理の参照に基づいて前記内部イベント処理を起動する、請求項5に記載の電子機器。
- 発生したイベントに応じた処理を行い、前記イベントに対応する状態要素がアクティブであるか又は非アクティブであるかを前記状態要素毎に設定するイベント処理を実行するイベント処理手段と、 前記イベントが発生すると、処理優先度が予め決められているレイヤ毎にある状態制御データ構造体に登録されているイベント処理情報のうち、最も処理優先度が高いレイヤの状態制御データ構造体に登録されているイベント処理情報に基づいて前記イベント処理手段を起動し、アクティブとなった前記状態要素のうち最も処理優先度の高い状態要素に対応する前記イベント処理情報を対応する前記状態制御データ構造体に登録又は非アクティブとなった前記状態要素に対応する前記イベント処理情報を対応する前記状態制御データ構造体から抹消する、状態管理手段と、を備える電子機器。
- イベントが発生すると、表示優先度が予め決められているレイヤ毎にある描画情報データ構造体のうち発生した前記イベントに対応する前記描画情報データ構造体に、発生した前記イベントに対応する描画情報を登録、又は、発生した前記イベントに対応する前記描画情報データ構造体に登録されている前記描画情報を抹消し、 前記描画情報が登録又は抹消されると、表示優先度の低いレイヤから順に、前記描画情報データ構造体に登録されている前記描画情報に基づいてメモリの一画面分の画像データ格納領域に描画し、 前記画像データ格納領域に描画された画像を一画面に表示する、ことを含む状態制御方法。
- 発生したイベントに応じた処理を行い、前記イベントに対応する状態要素がアクティブであるか又は非アクティブであるかを前記状態要素毎に設定するイベント処理を実行し、 前記イベントが発生すると、処理優先度が予め決められているレイヤ毎にある状態制御データ構造体に登録されているイベント処理情報のうち、最も処理優先度が高いレイヤの状態制御データ構造体に登録されているイベント処理情報に基づいて前記イベント処理を起動し、アクティブとなった前記状態要素のうち最も処理優先度の高い状態要素に対応する前記イベント処理情報を対応する前記状態制御データ構造体に登録又は非アクティブとなった前記状態要素に対応する前記イベント処理情報を対応する前記状態制御データ構造体から抹消する、ことを含む状態制御方法。
- イベントが発生すると、表示優先度が予め決められているレイヤ毎にある描画情報データ構造体のうち発生した前記イベントに対応する前記描画情報データ構造体に、発生した前記イベントに対応する描画情報を登録、又は、発生した前記イベントに対応する前記描画情報データ構造体に登録されている前記描画情報を抹消する状態管理手段と、 前記描画情報が登録又は抹消されると、表示優先度の低いレイヤから順に、前記描画情報データ構造体に登録されている前記描画情報に基づいてメモリの一画面分の画像データ格納領域に描画する描画手段と、 前記画像データ格納領域に描画された画像を一画面に表示する表示手段と、してコンピュータを機能させる状態制御プログラム。
- 発生したイベントに応じた処理を行い、前記イベントに対応する状態要素がアクティブであるか又は非アクティブであるかを前記状態要素毎に設定するイベント処理を実行するイベント処理手段と、 前記イベントが発生すると、処理優先度が予め決められているレイヤ毎にある状態制御データ構造体に登録されているイベント処理情報のうち、最も処理優先度が高いレイヤの状態制御データ構造体に登録されているイベント処理情報に基づいて前記イベント処理手段を起動し、アクティブとなった前記状態要素のうち最も処理優先度の高い状態要素に対応する前記イベント処理情報を対応する前記状態制御データ構造体に登録又は非アクティブとなった前記状態要素に対応する前記イベント処理情報を対応する前記状態制御データ構造体から抹消する、状態管理手段と、してコンピュータを機能させる状態制御プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011013806A JP2011138529A (ja) | 2005-09-06 | 2011-01-26 | 電子機器、状態制御方法及び状態制御プログラム |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005257362 | 2005-09-06 | ||
JP2005257362 | 2005-09-06 | ||
JP2011013806A JP2011138529A (ja) | 2005-09-06 | 2011-01-26 | 電子機器、状態制御方法及び状態制御プログラム |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006090289A Division JP4736894B2 (ja) | 2005-09-06 | 2006-03-29 | 電子機器、状態制御方法及び状態制御プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011138529A true JP2011138529A (ja) | 2011-07-14 |
Family
ID=44349813
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011013806A Withdrawn JP2011138529A (ja) | 2005-09-06 | 2011-01-26 | 電子機器、状態制御方法及び状態制御プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2011138529A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104951264A (zh) * | 2014-03-27 | 2015-09-30 | 株式会社理光 | 信息处理设备和信息处理方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63132078A (ja) * | 1986-11-25 | 1988-06-04 | Canon Inc | インクジェット記録装置 |
JPH08235080A (ja) * | 1995-02-28 | 1996-09-13 | Ricoh Co Ltd | 複合機 |
JPH1011662A (ja) * | 1996-06-25 | 1998-01-16 | Glory Ltd | 売上金精算システム |
JP2003186704A (ja) * | 2001-12-18 | 2003-07-04 | Nec Corp | エラーウィンドウ表示制御装置、エラーメッセージ表示方法及びプログラム |
-
2011
- 2011-01-26 JP JP2011013806A patent/JP2011138529A/ja not_active Withdrawn
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63132078A (ja) * | 1986-11-25 | 1988-06-04 | Canon Inc | インクジェット記録装置 |
JPH08235080A (ja) * | 1995-02-28 | 1996-09-13 | Ricoh Co Ltd | 複合機 |
JPH1011662A (ja) * | 1996-06-25 | 1998-01-16 | Glory Ltd | 売上金精算システム |
JP2003186704A (ja) * | 2001-12-18 | 2003-07-04 | Nec Corp | エラーウィンドウ表示制御装置、エラーメッセージ表示方法及びプログラム |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104951264A (zh) * | 2014-03-27 | 2015-09-30 | 株式会社理光 | 信息处理设备和信息处理方法 |
US20150278982A1 (en) * | 2014-03-27 | 2015-10-01 | Ricoh Company, Ltd. | Information processing device and information processing method |
US9734547B2 (en) | 2014-03-27 | 2017-08-15 | Ricoh Company, Ltd. | Information processing device for controlling an order of displaying images in a single layer and information processing method implementing the same |
CN104951264B (zh) * | 2014-03-27 | 2019-05-21 | 株式会社理光 | 信息处理设备和信息处理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10310793B2 (en) | Image processing system having portable terminal that preregisters a job in an image processing apparatus, image processing apparatus, and portable information terminal | |
US10165145B2 (en) | Image processing apparatus, method for controlling image processing apparatus, and storage medium | |
EP3579534B1 (en) | Image processing apparatus that executes job, control method therefor, and storage medium | |
KR100648665B1 (ko) | 화상형성장치 및 화상형성장치 제어방법 | |
JP2008225320A (ja) | 画像形成装置 | |
US20190324700A1 (en) | Setting control device, setting control method, and program | |
US20060075362A1 (en) | Image processing apparatus, method, and recording medium on which program is recorded for displaying thumbnail/preview image | |
JP5326944B2 (ja) | 画像形成装置、画面表示方法、プログラム | |
JP4736894B2 (ja) | 電子機器、状態制御方法及び状態制御プログラム | |
JP2006238106A (ja) | 画像形成装置 | |
US7703904B2 (en) | Printing apparatus and control method of printing apparatus | |
JP2011138529A (ja) | 電子機器、状態制御方法及び状態制御プログラム | |
US20070140722A1 (en) | Image forming apparatus and image forming method | |
US20180084122A1 (en) | Processing device, image forming apparatus, and non-transitory computer readable medium | |
JP4826241B2 (ja) | 複写機,複写機システム,およびコンピュータプログラム | |
US20040085560A1 (en) | Selectively printing document pages | |
US8274689B2 (en) | Image processing apparatus, computer-readable recording medium, and method for acquiring and outputting an image | |
CN102150146B (zh) | 驱动器控制设备 | |
JP5686063B2 (ja) | ネットワークシステム、画像形成装置およびプログラム | |
JP2007074267A (ja) | 画像処理装置 | |
JP2020011466A (ja) | 画像処理装置及びプログラム | |
JP2009295044A (ja) | プリンタドライバプログラムのインストール処理装置及びインストールプログラム | |
JP6059488B2 (ja) | 印刷制御装置 | |
JP2006192863A (ja) | 印刷装置 | |
JP2011051163A (ja) | 画像形成装置及び画像送信方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20120906 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20121218 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20130212 |