(57)【特許請求の範囲】
【請求項１】
表示部と、複数のグラフィックコントローラとを備える情報処理装置であって、
前記複数のグラフィックコントローラのうちのアプリケーションに対応するグラフィックコントローラを用いて、前記アプリケーションの画面を前記表示部に表示させる表示手段と、
前記表示部に表示されている前記画面に対するユーザ操作により発生したイベントを検知する検知手段と、
前記検知手段にてイベントを検知した際に、前記表示部に画面を表示しているアプリケーションに対応するグラフィックコントローラを判定する判定手段と、
前記表示部の解像度と、前記判定手段にて判定されたグラフィックコントローラの情報とに基づき、前記イベントが示す前記ユーザ操作の前記表示部での座標情報を、前記判定手段にて判定された前記グラフィックコントローラに対応した座標系の値に変換して当該アプリケーションに送信する送信手段と
を有し、
前記複数のグラフィックコントローラのうちの第１のグラフィックコントローラは、前記イベントが検知されたウィンドウにおける座標を示す第１の座標情報と、アプリケーションの表示領域における座標を示す第２の座標情報とを用いて制御を行い、
前記グラフィックコントローラが前記第１のグラフィックコントローラであると前記判定手段により判定された場合、前記表示部の解像度に基づいて得られた前記変換の結果は、前記第１の座標情報と前記第２の座標情報とを含むことを特徴とする情報処理装置。
【請求項２】
前記検知手段は、前記イベントとして、前記ユーザ操作が行われた前記表示部における座標系での値を検知し、
前記送信手段は、前記表示部の解像度と、前記判定手段にて判定されたグラフィックコントローラの情報とに基づき、前記イベントが示す前記ユーザ操作の前記表示部での座標情報を、前記表示部に表示されている画面における座標系の値に変換することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記送信手段は更に、アプリケーションが前記表示部に表示している画面のサイズに基づいて、前記イベントが示す前記ユーザ操作の前記表示部での座標情報を、前記判定手段にて判定されたグラフィックコントローラに対応した座標系の値に変換することを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記複数のグラフィックコントローラは、
Ｃ言語にて実装されたＣアプリケーションにより用いられる第一のグラフィックコントローラと、
Ｊａｖａ言語にて実装されたＪａｖａアプリケーションにより用いられる第二のグラフィックコントローラと
を含むことを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記送信手段は、
前記画面を表示しているアプリケーションがＣアプリケーションであり、かつ、前記表示部の解像度がアプリケーションの画面を全面に表示する第一の解像度である場合、前記イベントが示す前記ユーザ操作の前記表示部での座標情報を変換せず、
前記画面を表示しているアプリケーションがＣアプリケーションであり、かつ、前記表示部の解像度がアプリケーションの画面を表示する表示領域および別の表示コンテンツを表示する表示領域を含む第二の解像度である場合、前記イベントが示す前記ユーザ操作の前記表示部での座標情報を、前記第一の解像度と前記第二の解像度との差分に基づいて変換し、
前記画面を表示しているアプリケーションがＪａｖａアプリケーションであり、かつ、前記表示部の解像度が前記第一の解像度である場合、前記イベントが示す前記ユーザ操作の前記表示部での座標情報を、前記第二のグラフィックコントローラに対応した座標系の値に変換し、
前記画面を表示しているアプリケーションがＪａｖａアプリケーションであり、かつ、前記表示部の解像度が前記第二の解像度である場合、前記イベントが示す前記ユーザ操作の前記表示部での座標情報を、前記第一の解像度と前記第二の解像度との差分に基づいて変換し、更に、前記第二のグラフィックコントローラに対応した座標系の値に変換することを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記グラフィックコントローラが前記第１のグラフィックコントローラであると前記判定手段により判定され、かつ、前記表示部の解像度が、アプリケーションの画面を全面に表示する第１の解像度である場合、前記イベントが示す前記ユーザ操作の座標情報を、前記第１のグラフィックコントローラに対応した座標系の値に変換し、
前記グラフィックコントローラが前記第１のグラフィックコントローラであると前記判定手段により判定され、かつ、前記表示部の解像度が、アプリケーションの画面を表示する表示領域および別の表示コンテンツを表示する表示領域を含む第２の解像度である場合、前記イベントが示す前記ユーザ操作の座標情報を、前記第１の解像度と前記第２の解像度との差分に基づいて変換して、前記第１のグラフィックコントローラに対応した座標系の値に変換することを特徴とする請求項１に記載の情報処理装置。
【請求項７】
前記第１のグラフィックコントローラは、Ｊａｖａ言語にて実装されたＪａｖａアプリケーションにより用いられるグラフィックコントローラであることを特徴とする請求項１または６に記載の情報処理装置。
【請求項８】
前記グラフィックコントローラが前記第１のグラフィックコントローラであると前記判定手段により判定された場合、前記イベントが検出されたウィンドウの原点座標を示す情報が取得され、
前記変換は、前記取得した情報と、前記表示部の解像度とに基づくことを特徴とする請求項１、６及び７のいずれか一項に記載の情報処理装置。
【請求項９】
前記第１の座標情報は、前記イベントが検出されたウィンドウの左上を原点とした前記イベントの座標を示す情報であり、
前記第２の座標情報は、前記アプリケーションの表示領域の左上を原点とした前記イベントの座標を示す情報であることを特徴とする請求項１及び６乃至８のいずれか一項に記載の情報処理装置。
【請求項１０】
前記アプリケーションへの送信では、前記変換の結果と、前記イベントの種類を示す情報が送信されることを特徴とする請求項１乃至９のいずれか一項に記載の情報処理装置。
【請求項１１】
表示部と、複数のグラフィックコントローラとを備える情報処理装置の制御方法であって、
前記複数のグラフィックコントローラのうちのアプリケーションに対応するグラフィックコントローラを用いて、前記アプリケーションの画面を前記表示部に表示させる表示工程と、
前記表示部に表示されている前記画面に対するユーザ操作により発生したイベントを検知する検知工程と、
前記検知工程にてイベントを検知した際に、前記表示部に画面を表示しているアプリケーションに対応するグラフィックコントローラを判定する判定工程と、
前記表示部の解像度と、前記判定工程にて判定されたグラフィックコントローラの情報とに基づき、前記イベントが示す前記ユーザ操作の前記表示部での座標情報を、前記判定工程にて判定されたグラフィックコントローラに対応した座標系の値に変換して当該アプリケーションに送信する送信工程と
を有し、
前記複数のグラフィックコントローラのうちの第１のグラフィックコントローラは、前記イベントが検知されたウィンドウにおける座標を示す第１の座標情報と、アプリケーションの表示領域における座標を示す第２の座標情報とを用いて制御を行い、
前記グラフィックコントローラが前記第１のグラフィックコントローラであると前記判定工程において判定された場合、前記表示部の解像度に基づいて得られた前記変換の結果は、前記第１の座標情報と前記第２の座標情報とを含むことを特徴とする情報処理装置の制御方法。
【請求項１２】
表示部と、複数のグラフィックコントローラとを備えるコンピューターを、
前記複数のグラフィックコントローラのうちのアプリケーションに対応するグラフィックコントローラを用いて、前記アプリケーションの画面を前記表示部に表示させる表示手段、
前記表示部に表示されている前記画面に対するユーザ操作により発生したイベントを検知する検知手段、
前記検知手段にてイベントを検知した際に、前記表示部に画面を表示しているアプリケーションに対応するグラフィックコントローラを判定する判定手段、
前記表示部の解像度と、前記判定手段にて判定されたグラフィックコントローラの情報とに基づき、前記イベントが示す前記ユーザ操作の前記表示部での座標情報を、前記判定手段にて判定されたグラフィックコントローラに対応した座標系の値に変換して当該アプリケーションに送信する送信手段
として機能させるためのプログラムであって、
前記複数のグラフィックコントローラのうちの第１のグラフィックコントローラは、前記イベントが検知されたウィンドウにおける座標を示す第１の座標情報と、アプリケーションの表示領域における座標を示す第２の座標情報とを用いて制御を行い、
前記グラフィックコントローラが前記第１のグラフィックコントローラであると前記判定手段により判定された場合、前記表示部の解像度に基づいて得られた前記変換の結果は、前記第１の座標情報と前記第２の座標情報とを含むことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置およびその制御方法、並びにプログラムに関する。
【背景技術】
【０００２】
情報処理装置の操作部に表示されている対象物を選択する場合、対象物を指でタッチすることで選択可能なタッチパネルが普及している。このようなタッチパネルは、それぞれ決められた解像度を備えており、状況に応じて１つのデバイスに異なる解像度のタッチパネルを接続して利用することも可能である。
【０００３】
タッチパネルの解像度により、同じ対象物を表示する場合も見え方が異なる。例えば、解像度の低いタッチパネルでタッチパネル全面に表示されていた対象物も、解像度の高いタッチパネルではタッチパネルの一部の領域のみに表示される。そのため、解像度の高いタッチパネルを接続すると、何も表示されていない領域ができるという問題もある。このような問題を解決するために、タッチパネルの解像度や検知領域に応じて、表示や検知する座標を一律に拡大・縮小する方法が知られている（例えば、特許文献１）。別の方法として、解像度の高いタッチパネルに、解像度の低いタッチパネルに表示されている対象物をそのまま表示し、空いている領域に別の対象物を表示する方法もある。
【０００４】
タッチパネルでユーザが対象物をタッチすると、情報処理装置の内部処理としては、タッチしたことを表すイベント情報を生成し、このイベント情報を元にグラフィックコントローラが処理を行うことで、対象物を選択する。グラフィックコントローラには様々な種類があり、その種類に応じて対象物を選択するために必要なイベント情報は異なる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許５７１３１８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
タッチパネルを備える情報処理装置において、複数のアプリケーション（以下、アプリ）が動作しており、アプリの実装言語毎に異なるグラフィックコントローラが存在する。このとき、グラフィックコントローラによって、必要とするイベント情報の内容に差が生じる場合がある。例えば、イベント情報に含まれる、タッチパネル上にてユーザが操作した位置情報が挙げられる。グラフィックコントローラには、タッチパネルが検知したユーザ操作の位置情報をそのまま用いるものの他、その他の表示されているオブジェクトとの関係に応じて異なる位置情報（座標系）に変換する必要があるものが存在する。グラフィックコントローラが必要とするイベント情報が適切に渡されない場合、アプリが正常に動作しなくなるという課題がある。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本願発明は以下の構成を有する。すなわち、表示部と、複数のグラフィックコントローラとを備える情報処理装置であって、前記複数のグラフィックコントローラのうちのアプリケーションに対応するグラフィックコントローラを用いて、前記アプリケーションの画面を前記表示部に表示させる表示手段と、前記表示部に表示されている前記画面に対するユーザ操作により発生したイベントを検知する検知手段と、前記検知手段にてイベントを検知した際に、前記表示部に画面を表示しているアプリケーションに対応するグラフィックコントローラを判定する判定手段と、前記表示部の解像度と、前記判定手段にて判定されたグラフィックコントローラの情報とに基づき、前記イベントが示す前記ユーザ操作の前記表示部での座標情報を、前記判定手段にて判定された前記グラフィックコントローラに対応した座標系の値に変換して当該アプリケーションに送信する送信手段とを有し、前記複数のグラフィックコントローラのうちの第１のグラフィックコントローラは、前記イベントが検知されたウィンドウにおける座標を示す第１の座標情報と、アプリケーションの表示領域における座標を示す第２の座標情報とを用いて制御を行い、前記グラフィックコントローラが前記第１のグラフィックコントローラであると前記判定手段により判定された場合、前記表示部の解像度に基づいて得られた前記変換の結果は、前記第１の座標情報と前記第２の座標情報とを含む。
【発明の効果】
【０００８】
本発明により、異なるイベント情報で動作する複数のグラフィックコントローラが動作している場合において、アプリがいずれのグラフィックコントローラを用いる場合であっても、そのアプリに正しい動作を行わせることが可能となる。
【図面の簡単な説明】
【０００９】
【図１】本願発明に係る画像形成装置のコントローラユニットを表す図。
【図２】本願発明に係る画像形成装置の操作部および周辺の構成例を示す図。
【図３】本願発明に係るソフトウェアのモジュール構成の例を示す図。
【図４】画像形成装置の操作部に表示される一画面例を示す図。
【図５】描画コントローラ管理テーブルの構成例を示す図。
【図６】画像形成装置の操作部に表示される一画面例を示す図。
【図７】本願発明に係るユーザ操作に応じたイベント制御の処理を表すフローチャート。
【図８】画像形成装置の操作部に表示される一画面例を示す図。
【図９】画像形成装置の操作部に表示される一画面例を示す図。
【発明を実施するための形態】
【００１０】
以下、本発明を実施するための形態について、図面を用いて説明する。
【００１１】
＜第１の実施形態＞
情報処理装置の一実施形態である画像形成装置を用いて、本実施形態の説明を行う。
【００１２】
［ハードウェア構成］
（画像形成装置のコントローラユニット）
図１は、本実施形態に係る画像形成装置１００のコントローラユニットの内部構造の例を示す。コントローラユニット１２０は、各種制御プログラムを実行するＣＰＵ１０１を有する。ＣＰＵ１０１は、ＲＯＭ１０３に格納されているブートプログラムに基づきシステムを起動させる。そして、ＣＰＵ１０１は、ＨＤＤ（ハードディスク装置）１０４に格納されている制御プログラムを読み出し、ＲＡＭ１０２をワークエリアとして所定の処理を実行する。この制御プログラムにより、ＣＰＵ１０１は、Ｊａｖａプログラムなどの所定の制御を実行することが可能である。ＨＤＤ１０４は、不揮発性の記憶領域であり、各種制御プログラムが格納されるとともに、画像データやネットワーク部１０７が有するすべての通信手段に関する情報を格納する。
【００１３】
ＣＰＵ１０１には、ＲＡＭ１０２、ＲＯＭ１０３、およびＨＤＤ１０４がシステムバス１１１を介して接続される。さらに、ＣＰＵ１０１には、操作部Ｉ／Ｆ１０５、ネットワーク部１０７、イメージバスＩ／Ｆ１０９、および電源管理部１１０がシステムバス１１１を介して接続される。
【００１４】
操作部Ｉ／Ｆ１０５は、操作部（ディスプレイ）１０６との間のインターフェイス部であり、操作部１０６に表示する画像データをＲＡＭ１０２から取得して転送する処理や、操作部１０６で発生した信号をＣＰＵ１０１へ転送する処理などを行う。
【００１５】
操作部１０６は、ユーザが操作可能なボタンなどの対象物を表示するための表示処理と、表示処理に表示された情報をユーザが操作した信号（入力信号）を検知する入力処理を行う。つまり、操作部１０６は、ユーザインタフェースとして機能し、表示部としての出力機能も備える。
【００１６】
電源管理部１１０は、画像形成装置１００の電源のＯＦＦ／ＯＮの管理を行う。なお電源ＯＮを検知した場合、ＣＰＵ１０１は、ＲＯＭ１０３のブートプログラムに基づきシステムを起動し、ＨＤＤ１０４に格納されている制御プログラムを実行する。
【００１７】
ネットワーク部１０７は、ＬＡＮ１０８に接続され、ＬＡＮ１０８を介した情報の入出力を行う。ＬＡＮ１０８にＷｅｂサーバ（不図示）や外部装置４００が接続されている場合、画像形成装置１００は、その外部装置からＬＡＮ１０８を介して情報を取得することが可能である。また、画像形成装置１００は、ＬＡＮ１０８内のプロキシサーバ（不図示）などを介して、インターネット（不図示）に接続し、インターネット上のＷｅｂサーバからＷｅｂコンテンツを取得することも可能である。
【００１８】
イメージバスＩ／Ｆ１０９は、システムバス１１１と画像バス１１２とを接続し、データ構造を変換するバスブリッジである。画像バス１１２は、画像データを高速で転送可能なＰＣＩバスまたはＩＥＥＥ１３９４規定に従うバスから構成される。画像バス１１２には、ＲＩＰ（Ｒａｓｔｅｒ  Ｉｍａｇｅ  Ｐｒｏｃｅｓｓｏｒ）１１３、デバイスＩ／Ｆ１１４、および画像処理部１１９が接続される。
【００１９】
ＲＩＰ１１３は、ＰＤＬコードをビットマップイメージに展開する。デバイスＩ／Ｆ１１４は、画像入出力デバイスであるスキャナ１１６やプリンタ１１８と、コントローラユニット１２０とを接続し、画像データの同期系／非同期系の変換を行う。ここでは、デバイスＩ／Ｆ１１４とスキャナ１１６とがケーブル１１５を介して接続され、また、デバイスＩ／Ｆ１１４とプリンタ１１８とがケーブル１１７を介して接続される。
【００２０】
画像処理部１１９は、多値画像データに対してＪＰＥＧ、二値画像データに対して、ＪＢＥＧ、ＭＭＲ、ＭＨなどの圧縮伸張処理を行う。また、入力画像データや出力画面に対して、プリンタの補正や解像度変換などの補正、加工、編集を行う。
【００２１】
このように、コントローラユニット１２０のＣＰＵ１０１は、各制御プログラムに基づき、システムバス１１１に接続される各種デバイスとのアクセスを総括的に制御すると共に、デバイスＩ／Ｆ１１４を介してスキャナ１１６から画像情報を読み込む。また、ＣＰＵ１０１は、読み込んだ画像情報に対して所定の処理を施した後、その画像情報をデバイスＩ／Ｆ１１４を介してプリンタ１１８に出力するなどの制御を行う。さらに、ＣＰＵ１０１は、ネットワーク部１０７を介して取得した文字データや画像データの解析・変換処理を行い、ＨＤＤ１０４へ保存あるいは操作部１０６での表示制御を行う。
【００２２】
（ＣＰＵによる操作部の制御）
図２は、図１の操作部１０６およびその周辺の構成の例を示す。操作部１０６のタッチパネル２０３および各ハードキーのキー群２０２は、操作部Ｉ／Ｆ１０５の入力ポート２０１を介してＣＰＵ１０１に接続される。また、タッチパネル２０３の押下位置を示す位置情報、およびキー群２０２の押下に対応するキー情報は、入力ポート２０１を介してＣＰＵ１０１に入力される。
【００２３】
操作部１０６のＬＥＤ２０５およびＬＣＤ２０６は、操作部Ｉ／Ｆ１０５の出力ポート２０４を介してＣＰＵ１０１に接続される。ＬＥＤ２０５の点灯およびＬＣＤ２０６の表示は、ＣＰＵ１０１により制御される。タッチパネル２０３には微量な電気が流れており、ユーザがタッチすることで発生する電気量の変化からタッチ位置を検出する静電方式の装置であり、ＬＣＤ２０６の上に重なるように配置される。ユーザがＬＣＤ２０６上に表示された仮想的なボタン（以下、ボタン）などの操作対象物を直接触れることで、タッチパネル２０３がその位置情報（座標）を検知する。
【００２４】
ＣＰＵ１０１は、位置情報を検知すると、ＬＣＤ２０６上に現在表示している対象物とその位置情報に基づいて、ユーザが選択した操作対象を特定する。そして、ＣＰＵ１０１は、ＲＯＭ１０３もしくはＨＤＤ１０４に予め記憶されている命令の中から、特定した操作対象物が選択された場合に実行すべき命令を検出し、この命令を実行する。これにより、ＬＣＤ２０６に表示する画面データが作成される。作成された画面データは、ＣＰＵ１０１が出力ポート２０４を経由してＬＣＤ２０６に送信することで、操作部１０６の表示を変更できる。なお、上述したＬＣＤ２０６でのユーザ操作時の内部処理は、これ以降の全ての説明で共通であり、以降では記載を省略する。
【００２５】
また、操作部１０６（タッチパネル２０３）は、様々な解像度を有し、利用可能な解像度の例としては、ＳＶＧＡやＷＳＶＧＡなどが挙げられる。また、必要に応じて、ユーザは、画像形成装置１００の機器構成を物理的に取り換えることにより、利用する操作部１０６の解像度を変更することも可能である。
【００２６】
［ソフトウェア構成］
次に、画像形成装置１００のＣＰＵ１０１やＨＤＤ１０４などの各ハードウェア上で動作するソフトウェアのモジュール構成を、図３を用いて説明する。なお、各モジュールにおける処理は、ＣＰＵ１０１の命令により、ＲＯＭ１０３やＨＤＤ１０４に格納されているプログラムを読み出し、ＲＡＭ１０２をワークエリアとして所定の処理を実行することで実現される。また、所定の処理を実行することで生成される各種情報は、ＲＡＭ１０２もしくはＨＤＤ１０４に格納される。このような各モジュールにおける処理は、特に明記しない限り同様であるため、以降ではこのようなハードウェアの記載は省略する。また、図３に示す各モジュールの詳細な処理は、図７を用いて後述する。また、画像形成装置１００はＣグラフィックコントロールとＪａｖａグラフィックコントロールの両方を備えるが、これらのコントローラの処理の詳細は後述する。
【００２７】
ドライバ部３０１は、タッチパネルドライバであり、ユーザが操作部１０６（正確には操作部１０６のＬＣＤ２０６）でタッチなどの操作を行ったときに発生するタッチイベントや座標などのイベント情報を検知するモジュールである。このイベント情報は、イベントの種類（プレスやリリースなどの操作の種類）と、イベントの座標を含む。ドライバ部３０１は、検知したイベント情報をイベント管理部３０２へ送信する。
【００２８】
イベント管理部３０２は、ドライバ部３０１から送信されるイベント情報を受信し、そのイベント情報に対して各モジュールを用いて所定の処理を施した後、イベント情報をウインドウ管理部３０５に送信するモジュールである。具体的には、イベント管理部３０２は、表示しているアプリの判定を行う場合はウインドウ管理部３０５を用い、イベント情報の変更を行う場合はイベント情報変更部３０４を用いる。操作部管理部３０３は、画像形成装置１００の操作部１０６に表示する情報を取得するためのモジュールである。操作部管理部３０３は、操作部１０６の解像度の情報を取得することが可能である。イベント情報変更部３０４は、イベント管理部３０２からのイベント情報変更要求を受信し、イベント情報の変更を行い、変更したイベント情報をイベント管理部３０２に送信するモジュールである。
【００２９】
ウインドウ管理部３０５は、イベント管理部３０２から送信されたイベント情報を受信し、操作部１０６に表示しているアプリに対応したグラフィックコントローラ部に、イベント情報の送信を行うモジュールである。本実施形態において、グラフィックコントローラ部として、Ｃグラフィックコントローラ部３０６とＪａｖａグラフィックコントローラ部３０８の２つを備えるものとする。また、ウインドウ管理部３０５は、操作部１０６に表示するウインドウの管理も行い、操作部１０６にどのアプリのどのウインドウを表示しているかの判定や、任意のウインドウを操作部１０６に表示することが可能である。
【００３０】
Ｃグラフィックコントローラ部３０６は、Ｃアプリ部３０７のＣ言語で実装されたＣアプリケーション（以降、Ｃアプリと呼ぶ）が利用するボタンやリスト、ウインドウなどの描画コントローラからなるモジュールである。なお、これらのＣグラフィックコントローラ部３０６の描画コントローラは、全てウインドウ上に配置されており、１つのウインドウには複数の描画コントローラを配置することが可能である。そのため、ウインドウを切り替えることで、操作部１０６の画面を切り替えることとする。なお、描画コントローラの配置座標や描画コントローラに対応する実行処理などの情報は、アプリのプログラムに含まれていることとする。また、Ｃグラフィックコントローラ部３０６は、ウインドウ管理部３０５からイベント情報を受信すると、操作部１０６に表示しているウインドウのアプリに対して実行処理要求を送信する。
【００３１】
Ｃアプリ部３０７は、Ｃアプリの集まりである。Ｃアプリ部３０７のＣアプリは、Ｃグラフィックコントローラ部３０６からの実行処理要求を受信すると、この実行処理要求に応じた処理を実行する。例えば、Ｃアプリの処理Ａを実行したい場合、処理Ａを実行するためのボタンＡを特定のウインドウ上に配置し、操作部１０６にこのウインドウを表示する。そして、ユーザがこのボタンＡを押下すると、Ｃグラフィックコントローラ部３０６は、ボタンＡの選択を検知し、ボタンＡに関連付けられた処理Ａの実行要求イベントをＣアプリに送信する。
【００３２】
Ｊａｖａグラフィックコントローラ部３０８は、Ｊａｖａアプリ部３０９のＪａｖａ言語で実装されたＪａｖａアプリケーション（以降、Ｊａｖａアプリと呼ぶ）が利用するボタンやリストなどの描画コントローラからなるモジュールである。Ｊａｖａグラフィックコントローラ部３０８は、Ｃグラフィックコントローラ部３０６と同じく、ウインドウ管理部３０５からイベント情報を受信すると、操作部１０６に表示しているウインドウのアプリに対して実行処理要求を送信する。
【００３３】
Ｊａｖａアプリ部３０９は、Ｊａｖａアプリの集まりである。Ｊａｖａアプリ部３０９のＪａｖａアプリは、Ｊａｖａグラフィックコントローラ部３０８からのイベントを受信すると、このイベントに応じた処理を実行する。
【００３４】
［操作部の解像度とアプリ表示］
ここで、操作部１０６の解像度が異なる場合の処理について、説明を行う。
【００３５】
画像形成装置１００で利用可能な操作部１０６として、解像度がＳＶＧＡ（８００＊６００）の操作部１０６と、解像度がＷＳＶＧＡ（１０２４＊６００）の操作部１０６があることとする。画像形成装置１００にどちらの操作部１０６が接続されているかは、画像形成装置１００の起動時に、ＣＰＵ１０１が操作部１０６に問い合わせを行うことで判定可能である。また、このとき操作部１０６から取得した情報は、ＲＡＭ１０２もしくはＨＤＤ１０４に記憶される。なお、このような処理は一般的な情報処理装置のデバイス検知処理と同じであるため、詳細は省略する。
【００３６】
まず、解像度の異なる二種類の操作部を利用した場合に、同じアプリがどのように表示されるかについて説明する。なお、操作部１０６で、アプリ（ＣアプリもしくはＪａｖａアプリ）が対象物を表示する領域を、「アプリ表示領域」と呼ぶこととする。
【００３７】
図４（ａ）は、解像度がＳＶＧＡの操作部１０６を利用した場合に表示する画面であり、Ｊａｖａアプリの１つであるコピーアプリの表示の一例である。図４（ａ）は、点線で囲んでいる全領域がアプリ表示領域４０１であり、操作部１０６にはこのアプリの表示しか行われない。つまり、コピーアプリの画面のみが、操作部１０６の全面に表示される。
【００３８】
一方、解像度がＷＳＶＧＡの操作部１０６を利用した場合、このコピーアプリの表示は、図４（ｂ）のようになる。図４（ｂ）のアプリ表示領域４０１は、解像度がＳＶＧＡの操作部１０６と同じであるが、ＷＳＶＧＡの操作部１０６の場合はアプリ表示領域４０１の左側に左メニュー領域４０２を表示する。つまり、ＷＳＶＧＡの操作部１０６の場合は、アプリの画面が表示される表示領域に加え、その他の表示領域（別の表示コンテンツが表示される領域）が含まれる。アプリの表示内容の変更（画面の切り替え）はアプリ表示領域４０１のみで実施され、左メニュー領域４０２にアプリの表示内容の変更が実施されることはない。
【００３９】
また、左メニュー領域４０２は、アプリ表示領域４０１の表示内容に関わらず、常に同じものが表示される。つまり、図４（ｂ）の例の場合、常にＴＯＰボタン４０４とＳＨＯＲＴボタン４０５が表示される。ＴＯＰボタン４０４は、アプリ表示領域４０１に画像形成装置１００の電源を入れた後で最初に操作部１０６に表示する画面（以降、初期画面）を表示するためのボタンである。ＳＨＯＲＴボタン４０５は、アプリ表示領域４０１にユーザが設定した任意の画面を表示するためのボタン（ショートカットボタン）である。なお、ここではＴＯＰボタン４０４とＳＨＯＲＴボタン４０５を表示しているが、アプリ共通の他のボタンを表示してもよい。
【００４０】
このように、解像度がＷＳＶＧＡの操作部１０６を利用する場合にのみ左メニュー領域４０２を表示することで、どちらの解像度の操作部１０６を利用する場合も、アプリは同じプログラムで、同じ表示内容と操作性をユーザに提供することができる。なお、解像度がＷＳＶＧＡの場合は、左メニュー領域４０２を表示するため、アプリ表示領域４０１をユーザがタッチしたときにドライバ部３０１で検知するイベント情報に含まれる座標に違いが生じる。この座標の違いによるイベント管理部３０２の処理は図７を用いて後述する。なお、ここでは、ＳＶＧＡとＷＳＶＧＡの例を用いて説明するが、他の解像度を有する操作部１０６の構成であっても同様である。
【００４１】
［グラフィックコントローラ部］
次に、Ｃグラフィックコントローラ部３０６とＪａｖａグラフィックコントローラ部３０８の処理についての説明を行う。これらのグラフィックコントローラは、構成が異なり、各グラフィックコントローラで必要とするイベント情報も異なる。なお、本実施形態では、ＳＶＧＡの解像度を標準の解像度（以下、標準解像度）とし、グラフィックコントローラ上で動作するアプリは、全てこの標準解像度をベースに作成しているものとして説明する。なお、標準解像度とする解像度は、ＳＶＧＡに限定されるものではなく、解像度間の関係に応じていずれの解像度を標準とするかを定義することができるものとする。
【００４２】
（Ｃグラフィックコントローラ部）
まず、Ｃグラフィックコントローラ部３０６について説明する。Ｃアプリ部３０７のアプリが利用する描画コントローラの情報は、予めＨＤＤ１０４にアプリ毎にテーブル形式で記憶されている。以降では、描画コントローラの情報を表したものを、「描画コントローラ管理テーブル」と呼ぶことにする。ここで描画コントローラ管理テーブルについて、具体例を用いて説明する。
【００４３】
図５に示すように、描画コントロール管理テーブルでは、コントローラ種別、ＩＤ、領域、親ＩＤ、および対応動作を対応付けて管理する。コントローラ種別は、描画コントローラの種類を表し、ウインドウやボタン、リストなどがある。ＩＤは、各コントローラを一意に識別するための識別情報としての番号である。領域は、各コントローラの配置位置（表示位置）であり、左上の座標と右下の座標を記載している。なお、ここでは、座標（Ｘ，Ｙ）として、Ｘは横方向を示し、Ｙは縦方向を示す。親ＩＤは、各コントローラを配置するベースとなるウインドウ（ベースウインドウ）のＩＤである。本実施形態に係るＣグラフィックコントローラ部３０６は、ベースウインドウが１つのみであり、ベースウインドウのサイズは常にアプリ表示領域４０１と同じサイズであるものとして説明する。対応動作は、各コントローラが選択されたときに行われる動作である。
【００４４】
対応動作についての具体例を説明する。あるアプリ（アプリＸ）が利用する描画コントローラの情報が、図５（ａ）であるとする。図５（ａ）に示す描画コントロール管理テーブルは、アプリＸにはＩＤ“１”のウインドウ（ベースウインドウ）上に、ＩＤ“１０００”のウインドウと、ＩＤ“２０００”ウインドウを表示することを表している。また、図５（ａ）は、ＩＤ“１０００”のウインドウ上にはＩＤ“１００１”のボタンとＩＤ“１００２”のボタンが配置されている。ユーザがＩＤ“１００１”のボタンを選択すると、ＩＤ“２０００”のウインドウの画面が表示される。また、ユーザがＩＤ“１００２”のボタンを選択すると、ＩＤ“３０００”のウインドウの画面が表示される。なお、図５（ａ）のＩＤ“１０００”のウインドウと、ＩＤ“１００１”のボタンとＩＤ“１００２”のボタンを操作部１０６に表示した結果、図６（ａ）の表示となる。なお、図６（ａ）に示す参照番号は、図５（ａ）のＩＤに対応しているものとする。
【００４５】
次に、Ｃグラフィックコントローラ部３０６が必要であるイベント情報の座標についての説明を行う。Ｃアプリ部３０７のアプリが表示したボタンを選択するには、Ｃグラフィックコントローラ部３０６に送信するイベント情報に含まれる座標が、選択するボタンの領域内の座標である必要がある。Ｃグラフィックコントローラ部３０６の全てのアプリは、ボタンの領域内の座標であるか否かの判定を、相対座標を用いて行う。そして、Ｃグラフィックコントローラ部３０６は、ボタンの領域内の座標であれば、ボタンが選択されたと認識して、このボタンに対応する動作の実行要求をＣアプリ部３０７に送信する。なお、ボタン以外のコントロールの場合も、同様に相対座標を用いる。
【００４６】
ここで、各グラフィックコントローラ部が用いる座標系として、相対座標と絶対座標の説明を行う。相対座標とは、例えば、アプリ表示領域４０１の左上を原点とし、この原点からユーザがタッチした位置を表す座標である。一方、絶対座標とは、例えば、操作部１０６の左上を原点とし、この原点からユーザがタッチした位置を表す座標である。そのため、本実施形態では、操作部１０６の解像度がＳＶＧＡの場合は相対座標と絶対座標の値が同じになる。一方、解像度がＷＳＶＧＡの場合は絶対座標と相対座標は異なる座標の値になる。このとき、操作部１０６の同じ位置を示す場合、少なくとも縦方向もしくは横方向のいずれかの座標において、相対座標の方が小さくなる。この相対座標の値は、イベント管理部３０２が操作部管理部３０３から操作部１０６の解像度の情報を取得して算出する。この取得処理についての詳細は後述する。
【００４７】
（Ｊａｖａグラフィックコントローラ部）
次に、Ｊａｖａグラフィックコントローラ部３０８の説明を行う。Ｊａｖａグラフィックコントローラ部３０８は、Ｊａｖａアプリ部３０９のアプリが利用可能な描画コントローラの集まりである。描画コントローラとしてはボタンやウインドウがある。ただし、Ｊａｖａグラフィックコントローラ部３０８は、ウインドウベースのコントローラであり、１つのウインドウ上に１つしか描画コントローラを配置することができない。そのため、図６（ｂ）のようにボタンを２つ表示する画面を操作部１０６に表示する場合、描画コントロール管理テーブルは図５（ｂ）のような構成となる。なお、図６（ｂ）に示す参照番号は、図５（ｂ）のＩＤに対応しているものとする。
【００４８】
図５（ｂ）は、ＩＤ“１”のウインドウ（ベースウインドウ）上にＩＤ“５０００”のウインドウが配置されている。更に、ＩＤ“５０００”のウインドウ上に、ＩＤ“５１００”のウインドウと、ＩＤ“５２００”のウインドウが配置されている。更に、ＩＤ“５１００”のウインドウ上にＩＤ“５１０１”のボタンが配置され、ＩＤ“５２００”のウインドウ上にＩＤ“５２０１”のボタンが配置されている。図５（ｂ）の描画コントロール管理テーブルを操作部１０６に表示した結果、図６（ｂ）となる。なお、以降では、ボタンなどのコントロールを配置するためのウインドウを「子ウインドウ」と呼ぶ。
【００４９】
ここで、Ｊａｖａグラフィックコントローラ部３０８が必要であるイベント情報の座標についての説明を行う。Ｊａｖａグラフィックコントローラ部３０８は、ウインドウベースのコントローラであり、どのウインドウにイベント情報を送信するかは相対座標と絶対座標の両方の座標を用いて判断する。ただし、Ｊａｖａグラフィックコントローラ部３０８で必要な絶対座標は、アプリ表示領域の左上を原点とした座標であり、操作部１０６の左上を原点とする座標ではない。そのため、Ｃグラフィックコントローラ部３０６とは異なり、ベースウインドウの左上を原点にした座標を作成する必要がある。なお、相対座標は、イベントを送信する子ウインドウの左上を原点とする座標であり、相対座標の考え方はＣグラフィックコントローラ部３０６とＪａｖａグラフィックコントローラ部３０８で同じである。この絶対座標と相対座標の値は、イベント管理部３０２が操作部管理部３０３やイベント情報変更部３０４を用いて設定する。ここでの設定処理についての詳細は後述する。
【００５０】
［処理フロー］
続いて、ドライバ部３０１でイベント情報を検知してからＣグラフィックコントローラ部３０６もしくはＪａｖａグラフィックコントローラ部３０８にイベント情報を送信するまでの処理を、図７を用いて説明する。なお、処理の中で行われる各種座標の算出については、具体的な座標値を用いて後で詳述する。
【００５１】
ユーザが操作部１０６で対象物の押下などの操作を行うと、Ｓ７０１にて、ドライバ部３０１は、イベント情報を検知する。このイベント情報には、イベントの種類（プレスやリリースなどの操作の種類）と座標情報を含み、ここでの座標情報は操作部１０６の左上を原点とする絶対座標である。なお、イベント情報の検出方法は、例えば、一般的な抵抗膜方式（感圧方式）もしくは静電方式の操作部の検出方法を用いるものとし、詳細は省略する。ドライバ部３０１は、検知したイベント情報をイベント管理部３０２へ送信する。イベント管理部３０２は、このイベント情報を受信すると、操作部１０６に表示しているウインドウ情報取得要求をウインドウ管理部３０５に送信する。ここでのウインドウ情報とは、表示しているウインドウが、ＣアプリのウインドウかＪａｖａアプリのウインドウかを示す情報である。ウインドウ管理部３０５は、ウインドウ情報取得要求を受信すると、操作部１０６に表示しているウインドウのウインドウ情報を取得し、イベント管理部３０２に送信する。
【００５２】
Ｓ７０２にて、イベント管理部３０２は、ウインドウ情報を受信すると、Ｃアプリのウインドウを表示しているか否かを判定する。Ｃアプリのウインドウを表示していると判定した場合（Ｓ７０２にてＹＥＳ）、Ｓ７０３へ進む。一方、Ｃアプリのウインドウを表示していないと判定した場合（Ｓ７０２にてＮＯ）、すなわち、Ｊａｖａアプリのウインドウを表示している場合、Ｓ７０５へ進む。
【００５３】
Ｓ７０３にて、イベント管理部３０２は、相対座標を決定する処理を行う。この相対座標は、ウインドウ管理部３０５やＣグラフィックコントローラ部３０６へ送信するイベント情報に含める。まず、イベント管理部３０２は、操作部管理部３０３に操作部１０６の解像度を取得するための要求を送信する。操作部管理部３０３は、解像度取得要求を受信すると、操作部１０６の解像度を取得し、イベント管理部３０２に送信する。イベント管理部３０２は、解像度情報を受信すると、相対座標の決定を行う。具体的には、イベント管理部３０２は、受信した解像度情報が標準解像度（ＳＶＧＡ）を示す場合は、絶対座標と同じ座標を相対座標として決定する。一方、標準解像度でない場合は、イベント管理部３０２は、取得した解像度情報が示す解像度と標準解像度との差分を考慮した座標を相対座標として決定する。ここでの取得した解像度情報が示す解像度と標準解像度との差分を考慮した座標とは、絶対座標から左メニュー領域４０２のサイズを減らした座標に相当する。その後、Ｓ７０４へ進む。
【００５４】
Ｓ７０４にて、イベント管理部３０２は、ドライバ部３０１から受信したイベント情報に、決定した相対座標を含めたイベント情報を作成し、ウインドウ管理部３０５に送信する。このイベント情報を受信したウインドウ管理部３０５は、操作部１０６に表示されているアプリのウインドウを特定し、このウインドウを含むグラフィックコントローラを特定する。ここでは操作部１０６にはＣアプリのウインドウを表示しているため、ウインドウ管理部３０５はＣグラフィックコントローラ部３０６に対してイベント管理部３０２から送信されたイベント情報を送信する。そして、本処理フローを終了する。
【００５５】
Ｓ７０５にて、イベント管理部３０２は、操作部１０６の表示領域が特定の表示領域であるかの判定を行う。本実施形態では、イベント管理部３０２が、操作部管理部３０３に解像度取得要求を送信して解像度情報を取得し、受信した解像度情報が示す解像度が標準解像度の場合は特定の表示領域であると判定する。操作部１０６の解像度が標準解像度であると判定した場合（Ｓ７０５にてＹＥＳ）Ｓ７０７へ進み、標準解像度でないと判定した場合（Ｓ７０５にてＮＯ）Ｓ７０６へ進む。
【００５６】
Ｓ７０７にて、イベント管理部３０２は、ドライバ部３０１から受信したイベント情報の座標（絶対座標）を元にして相対座標を決定する。この相対座標の決定方法について説明する。イベント管理部３０２は、ドライバ部３０１から受信した絶対座標をウインドウ管理部３０５に送信する。そして、ウインドウ管理部３０５は、この座標をＪａｖａグラフィックコントローラ部３０８に送信する。Ｊａｖａグラフィックコントローラ部３０８は、操作部１０６に表示されているウインドウの中から、受信した絶対座標を含むウインドウを検索し、このウインドウの原点座標（左上の座標）をウインドウ管理部３０５に送信する。ウインドウ管理部３０５は、ウインドウの原点座標を受信すると、これをイベント管理部３０２に送信する。イベント管理部３０２は、ウインドウの原点座標を受信すると、この受信した原点座標とドライバ部３０１から受信した絶対座標から相対座標を算出する。具体的には、イベント管理部３０２は、絶対座標から、ウインドウの原点座標を減算した値を相対座標に決定する。このようにしてイベント管理部３０２は相対座標を決定する。
【００５７】
一方、操作部１０６の解像度が標準解像度でないと判定した場合（Ｓ７０５にてＮＯ）、Ｓ７０６にて、イベント管理部３０２は、操作部管理部３０３とイベント情報変更部３０４を用いて、ドライバ部３０１から受信したイベント情報の絶対座標を変更する。この絶対座標を変更する処理について説明する。まず、イベント管理部３０２は、操作部管理部３０３に操作部１０６の解像度取得要求を送信する。操作部管理部３０３は、解像度取得要求を受信すると、操作部１０６の解像度を取得し、イベント管理部３０２に取得した解像度情報を送信する。イベント管理部３０２は、解像度情報を受信すると、その受信した解像度情報とドライバ部３０１から受信した絶対座標をイベント情報変更部３０４に送信する。イベント情報変更部３０４は、受信した解像度情報が示す解像度と標準解像度の差分を算出し、この算出した差分から求められる座標をイベント管理部３０２に送信する。これを受信したイベント管理部３０２は、受信した座標を絶対座標として決定する。その後、イベント管理部３０２は、Ｓ７０７へ進み、Ｓ７０６にて決定した絶対座標を元に相対座標を決定する。すなわち、イベント管理部３０２は、Ｓ７０６にて決定した絶対座標から、ウインドウの原点座標を減算した値を相対座標として決定する。
【００５８】
Ｓ７０７における相対座標の決定後、Ｓ７０４にて、イベント管理部３０２は、絶対座標と相対座標を含めたイベント情報を作成し、ウインドウ管理部３０５に送信する。ウインドウ管理部３０５は、このイベント情報を受信すると、Ｊａｖａグラフィックコントローラ部３０８に対してイベント管理部３０２から送信されたイベント情報を送信する。Ｊａｖａグラフィックコントローラ部３０８は、受信したイベント情報を元に、表示しているアプリの対応する動作の実行要求をＪａｖａアプリ部３０９に送信する。この処理は、一般的なウインドウベースのグラフィックシステム（例えば、Ｘ１１ベースのウインドウシステム）と同じであるため、詳細は省略する。そして、本処理フローを終了する。
【００５９】
［処理例］
図７に示した処理の具体例を説明する。まず、標準解像度（ＳＶＧＡ）を有する操作部１０６が画像形成装置１００に接続されている場合のＣアプリとＪａｖａアプリの具体例を説明する。その後、標準解像度ではない解像度（ＷＳＶＧＡ）を有する操作部１０６が画像形成装置１００に接続されている場合のＣアプリとＪａｖａアプリの具体例を説明する。
【００６０】
（標準解像度、及び、Ｃアプリ）
まず、標準解像度の操作部１０６にブラウザアプリ（Ｃアプリ）が表示されている場合の具体例を説明する。図８（ａ）は、操作部１０６に表示されるブラウザアプリの表示例である。図８（ａ）の画面上段にはＵＲＬが表示され、画面中段には検索キーワードを入力するためのキーワード入力ボタンが表示され、画面下段にはページ移動や各種設定を行うボタンが表示されている。この画面において、各種設定ボタンの１つであるＭＥＮＵボタン８０２を押下した場合の具体例を説明する。なお、ＭＥＮＵボタン８０２の領域は、図５（ａ）のＩＤ“１００１”のボタンと同じく、（２２０，４７０）〜（３７０，５５０）であるとする。
【００６１】
ユーザが操作部１０６でＭＥＮＵボタン８０２の押下を行うと、ドライバ部３０１は、イベント情報を検知する（Ｓ７０１）。このイベント情報は、イベント種類がタッチであり、座標は絶対座標（２５０，５００）であるとする。ドライバ部３０１は、このイベント情報をイベント管理部３０２へ送信する。
【００６２】
このイベント情報を受信したイベント管理部３０２は、ウインドウ管理部３０５にウインドウ情報の取得要求を送信し、ウインドウ管理部３０５から送信された結果を元に、操作部１０６にＣアプリのウインドウが表示されているかを判定する（Ｓ７０２）。ここではＣアプリのウインドウであるため（Ｓ７０２にてＹＥＳ）、イベント管理部３０２は、相対座標を決定するための処理を行う（Ｓ７０３）。まず、イベント管理部３０２は、操作部管理部３０３に解像度取得要求を送信し、解像度の情報を取得する。ここでは標準解像度であるため、相対座標は絶対座標と同じ座標である座標（２５０，５００）にする。
【００６３】
そして、イベント管理部３０２は、ドライバ部３０１から受信したイベント情報にこの相対座標を追加し、ウインドウ管理部３０５に送信する（Ｓ７０４）。このイベント情報を受信したウインドウ管理部３０５は、ここではＣグラフィックコントローラ部３０６にイベント情報を送信し、さらにＣグラフィックコントローラ部３０６からブラウザアプリにイベント情報を送信する。そして、ブラウザアプリは、相対座標（２５０，５００）のタッチイベントに対応する処理として、ＭＥＮＵボタン８０２の押下処理を行う。
【００６４】
（標準解像度、及び、Ｊａｖａアプリ）
次に、標準解像度の操作部１０６にコピーアプリ（Ｊａｖａアプリ）が表示されている場合の具体例を説明する。図４（ａ）は、操作部１０６に表示されるコピーアプリの表示例である。図４（ａ）の画面上段には画面タイトルが表示され、画面中段には設定内容が表示され、画面下段には各種設定を行うボタンが表示されている。この画面において、各種設定ボタンの１つである用紙ボタン４０３を押下した場合の具体例を説明する。なお、用紙ボタン４０３の領域は、図５（ｂ）のＩＤ“５１０１”のボタンと同じく、（２２０，４７０）〜（３７０，５５０）であるとする。
【００６５】
ユーザが操作部１０６で用紙ボタン４０３の押下を行うと、ドライバ部３０１は、イベント情報を検知する（Ｓ７０１）。このイベント情報は、イベント種類がタッチであり、座標は絶対座標（２５０，５００）であるとする。ドライバ部３０１は、このイベント情報をイベント管理部３０２へ送信する。
【００６６】
このイベント情報を受信したイベント管理部３０２は、ウインドウ管理部３０５にウインドウ情報の取得要求を送信し、ウインドウ管理部３０５から送信された結果を元に、操作部１０６にＣアプリのウインドウが表示されているかを判定する（Ｓ７０２）。ここではＪａｖａアプリのウインドウであるため（Ｓ７０２にてＮＯ）、イベント管理部３０２は、操作部管理部３０３に解像度取得要求を送信し、解像度の情報を取得する。そして、イベント管理部３０２は、取得した解像度が標準解像度であるか否かの判定を行う（Ｓ７０５）。ここでは標準解像度であるため（Ｓ７０５にてＹＥＳ）、イベント管理部３０２は、相対座標の決定を行う（Ｓ７０７）。
【００６７】
具体的には、イベント管理部３０２は絶対座標（２５０，５００）をウインドウ管理部３０５に送信し、ウインドウ管理部３０５はこの情報をＪａｖａグラフィックコントローラ部３０８に送信する。そして、Ｊａｖａグラフィックコントローラ部３０８は、操作部１０６に表示している１または複数のウインドウの中から、受信した座標を含むウインドウの原点座標を検出し、ウインドウ管理部３０５に送信する。ここでは、図５（ｂ）のＩＤ“５１００”のウインドウを検索し、原点座標として座標（２２０，４７０）をウインドウ管理部３０５に送信する。これを受信したウインドウ管理部３０５は、この情報をイベント管理部３０２に送信する。イベント管理部３０２は、絶対座標（２５０，５００）から原点座標（２２０，４７０）を減算して、相対座標を座標（３０，３０）に決定する。その後、イベント管理部３０２は、絶対座標と相対座標を含むイベント情報をウインドウ管理部３０５に送信する（Ｓ７０４）。このイベント情報は、さらに、Ｊａｖａグラフィックコントローラ部３０８とコピーアプリに送信され、コピーアプリは絶対座標（２５０，５００）かつ相対座標（２０，３０）のタッチイベントに対応する処理として、用紙ボタン４０３の押下処理を行う。
【００６８】
（標準ではない解像度、及び、Ｃアプリ）
次に、標準解像度ではない操作部１０６にブラウザアプリ（Ｃアプリ）が表示されている場合の具体例を説明する。図８（ｂ）は、操作部１０６に表示されるブラウザアプリの表示例である。この画面のアプリ表示領域４０１の表示内容は、図８（ａ）のアプリ表示領域４０１の表示内容と同じである。この画面において、各種設定ボタンの１つであるＭＥＮＵボタン８０２を押下した場合の具体例を説明する。なお、ＭＥＮＵボタン８０２の領域は、図５（ａ）のＩＤ“１００１”のボタンと同じく、（２２０，４７０）〜（３７０，５５０）であるとする。
【００６９】
ユーザが操作部１０６でＭＥＮＵボタン８０２の押下を行うと、ドライバ部３０１は、イベント情報を検知する（Ｓ７０１）。このイベント情報は、イベント種類がタッチであり、座標は絶対座標（４７４，５００）であるとする。ドライバ部３０１は、このイベント情報をイベント管理部３０２へ送信する。
【００７０】
このイベント情報を受信したイベント管理部３０２は、操作部１０６にＣアプリのウインドウが表示されているかを判定する（Ｓ７０２）。この処理の詳細は前述の標準解像度の場合と同じであるため、記載を省略する。ここではＣアプリのウインドウであるため（Ｓ７０２にてＹＥＳ）、イベント管理部３０２は、相対座標を決定するための処理を行う（Ｓ７０３）。まず、イベント管理部３０２は、操作部管理部３０３に解像度取得要求を送信し、解像度の情報を取得する。ここでは標準解像度ではないため、取得した解像度と標準解像度の差分を考慮した値を相対座標とする。
【００７１】
具体的には、取得した解像度がＷＳＶＧＡ（１０２４＊６００）であり、標準解像度がＳＶＧＡ（８００＊６００）である場合、取得した解像度の方が、ｘ座標が２２４大きい。そのため、絶対座標（４７４，５００）のｘ座標から２２４を減算し、相対座標を座標（２５０，５００）に決定する。相対座標決定後、イベント管理部３０２は、この相対座標をドライバ部３０１から受信したイベント情報に追加し、ウインドウ管理部３０５に送信する（Ｓ７０４）。これ以降のＭＥＮＵボタン８０２押下までの処理は、前述の標準解像度の場合と同じであるため、記載を省略する。
【００７２】
（標準ではない解像度、及び、Ｊａｖａアプリ）
最後に、標準解像度ではない操作部１０６にコピーアプリ（Ｊａｖａアプリ）が表示されている場合の具体例を説明する。図４（ｂ）は、操作部１０６に表示されるコピーアプリの表示例である。この画面のアプリ表示領域４０１の表示内容は、図４（ａ）のアプリ表示領域４０１の表示内容と同じである。この画面において、各種設定ボタンの１つである用紙ボタン４０３を押下した場合の具体例を説明する。なお用紙ボタン４０３の領域は、図５（ｂ）のＩＤ“５１０１”のボタンと同じく、（２２０，４７０）〜（３７０，５５０）であるとする。
【００７３】
ユーザが操作部１０６で用紙ボタン４０３の押下を行うと、ドライバ部３０１は、イベント情報を検知する（Ｓ７０１）。このイベント情報は、イベント種類がタッチであり、座標は絶対座標（４７４，５００）であるとする。ドライバ部３０１は、このイベント情報をイベント管理部３０２へ送信する。
【００７４】
このイベント情報を受信したイベント管理部３０２は、操作部１０６にＣアプリのウインドウが表示されているかを判定する（Ｓ７０２）。この処理は前述の標準解像度の場合と同じであるため、記載を省略する。ここではＪａｖａアプリのウインドウであるため（Ｓ７０２にてＮＯ）、イベント管理部３０２は、解像度の情報を取得し、標準解像度であるか否かの判定を行う（Ｓ７０５）。この処理は前述の標準解像度の場合と同じであるため、記載を省略する。ここでは標準解像度ではないため（Ｓ７０５にてＮＯ）、イベント管理部３０２はイベント情報の絶対座標の変更を行う（Ｓ７０６）。
【００７５】
具体的には、イベント管理部３０２は、操作部管理部３０３から解像度の情報である解像度（１０２４＊６００）と、ドライバ部３０１から受信した絶対座標（４７４，５００）をイベント情報変更部３０４に送信する。これを受信したイベント情報変更部３０４は、受信した解像度（１０２４＊６００）と標準解像度（８００＊６００）の差分として、ｘ座標が２２４大きいことを算出する。そして、イベント情報変更部３０４は、絶対座標のｘ座標から、算出した２２４を減算することで、座標（２５０，５００）を絶対座標に変更する。さらに、イベント情報変更部３０４は、この変更した絶対座標をイベント管理部３０２に送信する。イベント管理部３０２は、この絶対座標をイベント情報の絶対座標とする。この後、イベント管理部３０２は、イベント情報をウインドウ管理部３０５に送信する（Ｓ７０４）。これによりコピーアプリの用紙ボタン４０３の押下処理が行われるが、これらの処理は前述の標準解像度の場合と同じであるため、記載を省略する。
【００７６】
上記のように、操作部の解像度と表示されているアプリのウインドウに応じて、検知したイベントの座標を変更する。これにより、異なるイベント情報で動作する複数のグラフィックコントローラ部を備える画像形成装置においても、既存のアプリを変更することなく、アプリを正常に動作させることが可能となる。
【００７７】
本実施形態では、表示領域の判定の具体例として、解像度がＳＶＧＡとＷＳＶＧＡの操作部での例を説明した。しかし、これ以外の解像度の操作部でも本実施形態を適用可能である。また、解像度間の関係によっては、イベント情報に含まれる絶対座標の変更（Ｓ７０６）において、ｘ座標だけではなく、ｙ座標も変更してもよい。これにより、操作部の解像度がどのような場合でも、既存のアプリを作り直すことなく、アプリは正しい動作を行うことが可能となる。
【００７８】
本実施形態では、ＣグラフィックコントローラとＪａｖａグラフィックコントローラの２つの例を用いて説明を行ったがこれに限定するものではない。イベント情報（絶対座標／相対座標）の変換が必要な複数のグラフィックコントローラであれば、上記以外のグラフィックコントローラを対象としてもよい。更には、情報処理装置が３以上のグラフィックコントローラを備える場合は、各グラフィックコントローラの特性に応じて、座標を変更するようにしてもよい。
【００７９】
本実施形態では、ウインドウの左上を原点としていたが、原点は左上ではなく、別の基準点を作成し、この基準点からの座標を用いてもよい。これにより、システムの位置情報の原点が左上ではなく、右下のようなシステムにおいても、既存のアプリを作り直すことなく、アプリは正しい動作を行うことが可能となる。
【００８０】
＜第２の実施形態＞
第１の実施形態では、表示領域の判定（図７のＳ７０５）において操作部１０６の解像度を用いて判定を行った。しかし、解像度以外の操作部１０６の情報を用いて判定を行ってもよい。本実施形態では、表示領域の判定として、表示しているアプリのウインドウサイズを用いる形態について説明する。なお、基本的な処理や制御は第１の実施形態と同じであるため、第１の実施形態と異なる点のみを説明する。
【００８１】
表示領域の判定（Ｓ７０５）でアプリのウインドウサイズ（アプリ領域）を用いる例を、図９を用いて説明する。図９（ａ）は、図４（ａ）と同じくＳＶＧＡの解像度の操作部１０６にアプリを表示した画面である。一方、図９（ｂ）は、図４（ｂ）と同じく、左メニュー領域４０２を表示し、アプリの表示領域はＳＶＧＡの解像度に合わせてアプリ表示領域９０１である画面であるとする。
【００８２】
表示領域の判定（Ｓ７０５）において、イベント管理部３０２は、ウインドウ管理部３０５に操作部１０６に表示しているアプリのウインドウサイズの取得要求を行う。図９（ａ）に示す操作部１０６の表示の場合、アプリ表示領域４０１のウインドウサイズは操作部１０６の表示領域と同じである。この場合は、表示領域は特定の表示領域であるとみなす（Ｓ７０５にてＹＥＳ）。そのため、イベント管理部３０２は、イベント情報に含まれる絶対座標を変更せずに、相対座標を決定する処理を行う（Ｓ７０７）。一方、図９（ｂ）に示す操作部１０６の表示の場合、アプリ表示領域４０１のウインドウサイズは操作部１０６の表示領域とは異なる。つまり、アプリ表示領域４０１は、画面全体よりも小さい表示領域になっている。この場合は、表示領域は特定の表示領域ではないとみなす（Ｓ７０５にてＮＯ）。そのため、イベント管理部３０２は、イベント情報に含まれる絶対座標を変更する処理を行い（Ｓ７０６）、その後に相対座標を決定する処理を行う（Ｓ７０７）。この後の処理は、第１の実施形態と同じであるため、記載を省略する。
【００８３】
上記のように、表示領域の判定としてアプリのウインドウサイズを用いることで、操作部１０６の解像度が同じであるがアプリのウインドウサイズが異なる場合も、既存のアプリを作り直すことなく、アプリは正しい動作を行うことが可能となる。
【００８４】
＜その他の実施形態＞
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピューターにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００８５】
３０１…ドライバ部、３０２…イベント管理部、３０３…操作部管理部、３０４…イベント情報変更部、３０５…ウインドウ管理部、３０６…Ｃグラフィックコントローラ部、３０７…Ｃアプリ部、３０８…Ｊａｖａグラフィックコントローラ部、３０９…Ｊａｖａアプリ部
【図１】
0006745604.tif 000002
【図２】
0006745604.tif 000003
【図３】
0006745604.tif 000004
【図４】
0006745604.tif 000005
【図５】
0006745604.tif 000006
【図６】
0006745604.tif 000007
【図７】
0006745604.tif 000008
【図８】
0006745604.tif 000009
【図９】
0006745604.tif 000010