(57)【要約】【課題】  アプリケーションプログラムの開発を容易にすること。【解決手段】  ＭＦＰは、タッチパネルにより検出される１以上の位置それぞれを示す位置情報を含むタッチイベントを出力するタッチイベント生成部７５と、複数のタッチイベントの組に基づいてジェスチャーイベントを決定するジェスチャーイベント決定部７７と、アプリケーションプログラムにより定められる複数種類の処理を実行するアプリケーション部５１と、アプリケーションプログラムがインストールされる段階で、複数種類の処理それぞれを複数のジェスチャーイベントのいずれかと関連付ける関連付部７１と、ジェスチャーイベント決定部７７により決定されたジェスチャーイベントと関連付けられた処理を特定する処理特定部７９と、特定された処理の処理識別情報をアプリケーション部５１に出力する操作通知部８１と、を備える。【選択図】        図５
2014059817.tif 000002
【特許請求の範囲】
【請求項１】
画像を表示する表示手段と、
前記表示手段の表示面中で、ユーザーにより指示される１以上の位置を検出可能なタッチパネルと、
前記表示手段および前記タッチパネルを制御する制御手段と、を備えた画像処理装置であって、
前記制御手段は、
前記タッチパネルにより１以上の位置が検出されることに応じて、前記１以上の位置それぞれを示す位置情報を含むタッチイベントを出力するタッチイベント生成手段と、
前記タッチイベント生成手段が連続して出力する複数のタッチイベントの組に基づいて、複数のジェスチャーイベントのいずれか１つを決定するジェスチャーイベント決定手段と、
アプリケーションプログラムにより定められる複数種類の処理をそれぞれ識別するための複数の処理識別情報のいずれか１つが入力されることに応じて、前記複数種類の処理のうち前記入力された処理識別情報に対応する種類の処理を実行するアプリケーション手段と、
前記アプリケーションプログラムがインストールされる段階で、前記アプリケーションプログラムに対応して、前記アプリケーションプログラムが定める前記複数種類の処理それぞれを前記複数のジェスチャーイベントのいずれかと関連付ける関連付手段と、
前記ジェスチャーイベント決定手段により決定されたジェスチャーイベントと、前記関連付手段によって前記複数種類の処理のうちから前記アプリケーションプログラムに対応して関連付けられた処理を特定する処理特定手段と、
前記特定された処理の処理識別情報を前記アプリケーション手段に出力する操作通知手段と、を備えた画像処理装置。
【請求項２】
前記操作通知手段は、前記処理特定手段によって前記ジェスチャーイベント決定手段により決定されたジェスチャーイベントに対応する処理が特定されない場合、前記ジェスチャーイベントの元になる１以上の位置情報を、前記アプリケーション手段に出力する、請求項１に記載の画像処理装置。
【請求項３】
前記タッチイベント生成手段は、前記タッチパネルにより検出される１以上の位置それぞれの時間的な変換に基づいて、前記タッチイベントの状態を示す検出状態を決定する状態決定手段を含み、前記タッチイベントは、前記検出された位置と前記検出状態とを含む、請求項１または２に記載の画像処理装置。
【請求項４】
前記ジェスチャーイベント決定手段は、前記タッチイベント生成手段により同時に出力されるタッチイベントの数、および前記タッチイベント生成手段により連続して出力される複数のタッチイベントそれぞれに含まれる検出状態の変化に基づいて、前記ジェスチャーイベントを決定する、請求項１〜３のいずれかに記載の画像処理装置。
【請求項５】
画像処理装置を制御するコンピューターで実行される操作標準化方法であって、
前記画像処理装置は、
画像を表示する表示手段と、
前記表示手段の表示面中で、ユーザーにより指示される１以上の位置を検出可能なタッチパネルと、
アプリケーションプログラムを実行することによって、前記アプリケーションプログラムにより定められる複数種類の処理をそれぞれ識別するための複数の処理識別情報のいずれか１つが入力されることに応じて、前記複数種類の処理のうち前記入力された処理識別情報に対応する種類の処理を実行するアプリケーション手段と、を備え、
前記タッチパネルにより１以上の位置が検出されることに応じて、前記１以上の位置それぞれを示す位置情報を含むタッチイベントを出力するタッチイベント生成ステップと、
前記タッチイベント生成ステップにおいて複数のタッチイベントが連続して出力される場合、前記連続して出力される複数のタッチイベントの組に基づいて、複数のジェスチャーイベントのいずれか１つを決定するジェスチャーイベント決定ステップと、
前記アプリケーションプログラムがインストールされる段階で、前記アプリケーションプログラムに対応して、前記アプリケーションプログラムが定める前記複数種類の処理それぞれを前記複数のジェスチャーイベントのいずれかと関連付ける関連付ステップと、
前記ジェスチャーイベント決定ステップにおいて決定されたジェスチャーイベントと、前記関連付ステップにおいて前記複数種類の処理のうちから前記アプリケーションプログラムに対応して関連付けられた処理を特定する処理特定ステップと、
前記特定された処理の処理識別情報を前記アプリケーション手段に出力する操作通知ステップと、を含む操作標準化方法。
【請求項６】
前記操作通知ステップは、前記処理特定ステップにおいて前記ジェスチャーイベント決定ステップにおいて決定されたジェスチャーイベントに対応する処理が特定されない場合、前記ジェスチャーイベントの元になる１以上の位置情報を、前記アプリケーション手段に出力するステップを含む、請求項５に記載の操作標準化方法。
【請求項７】
前記タッチイベント生成ステップは、前記タッチパネルにより検出される１以上の位置それぞれの時間的な変換に基づいて、前記タッチイベントの状態を示す検出状態を決定する状態決定ステップを含み、前記タッチイベントは、前記検出された位置と前記検出状態とを含む、請求項５または６に記載の操作標準化方法。
【請求項８】
前記ジェスチャーイベント決定ステップは、前記タッチイベント生成ステップにおいて同時に出力されるタッチイベントの数、および前記タッチイベント生成ステップにより連続して出力される複数のタッチイベントそれぞれに含まれる検出状態の変化に基づいて、前記ジェスチャーイベントを決定するステップを含む、請求項５〜７のいずれかに記載の操作標準化方法。
【請求項９】
画像処理装置を制御するコンピューターで実行される操作標準化プログラムであって、
前記画像処理装置は、
画像を表示する表示手段と、
前記表示手段の表示面中で、ユーザーにより指示される１以上の位置を検出可能なタッチパネルと、
アプリケーションプログラムを実行することによって、前記アプリケーションプログラムにより定められる複数種類の処理をそれぞれ識別するための複数の処理識別情報のいずれか１つが入力されることに応じて、前記複数種類の処理のうち前記入力された処理識別情報に対応する種類の処理を実行するアプリケーション手段と、を備え、
前記タッチパネルにより１以上の位置が検出されることに応じて、前記１以上の位置それぞれを示す位置情報を含むタッチイベントを出力するタッチイベント生成ステップと、
前記タッチイベント生成ステップにおいて複数のタッチイベントが連続して出力される場合、前記連続して出力される複数のタッチイベントの組に基づいて、複数のジェスチャーイベントのいずれか１つを決定するジェスチャーイベント決定ステップと、
前記アプリケーションプログラムがインストールされる段階で、前記アプリケーションプログラムに対応して、前記アプリケーションプログラムが定める前記複数種類の処理それぞれを前記複数のジェスチャーイベントのいずれかと関連付ける関連付ステップと、
前記ジェスチャーイベント決定ステップにおいて決定されたジェスチャーイベントと、前記関連付ステップにおいて前記複数種類の処理のうちから前記アプリケーションプログラムに対応して関連付けられた処理を特定する処理特定ステップと、
前記特定された処理の処理識別情報を前記アプリケーション手段に出力する操作通知ステップと、を前記コンピューターに実行させる操作標準化プログラム。
【請求項１０】
前記操作通知ステップは、前記処理特定ステップにおいて前記ジェスチャーイベント決定ステップにおいて決定されたジェスチャーイベントに対応する処理が特定されない場合、前記ジェスチャーイベントの元になる１以上の位置情報を、前記アプリケーション手段に出力するステップを含む、請求項９に記載の操作標準化プログラム。
【請求項１１】
前記タッチイベント生成ステップは、前記タッチパネルにより検出される１以上の位置それぞれの時間的な変換に基づいて、前記タッチイベントの状態を示す検出状態を決定する状態決定ステップを含み、前記タッチイベントは、前記検出された位置と前記検出状態とを含む、請求項９または１０に記載の操作標準化プログラム。
【請求項１２】
前記ジェスチャーイベント決定ステップは、前記タッチイベント生成ステップにおいて同時に出力されるタッチイベントの数、および前記タッチイベント生成ステップにより連続して出力される複数のタッチイベントそれぞれに含まれる検出状態の変化に基づいて、前記ジェスチャーイベントを決定するステップを含む、請求項９〜１１のいずれかに記載の操作標準化プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は画像処理装置、操作標準化方法および操作標準化プログラムに関し、特に、アプリケーションプログラムがインストールされる画像処理装置、その画像処理装置で実行される操作標準化方法および操作標準化プログラムに関する。
【背景技術】
【０００２】
近年、複合機（ＭＦＰ）で代表される画像処理装置において、アプリケーションプログラムをインストールすることが可能になっているものがあり、ユーザーは、使用形態に応じたアプリケーションプログラムをインストールすることによって、ＭＦＰをカスタマイズすることができる。このアプリケーションプログラムは、サイズの大きな画面を表示する場合があり、ＭＦＰが有する表示パネルに、その画面の一部しか表示することができないため、画面をスクロールさせる必要がある。
【０００３】
一方、画面をスクロールさせる操作を受け付ける技術して、タッチパネルを用いる技術がある。例えば、特開２０１１−１７０６０３号公報には、データ情報を表示する表示部と、前記表示部へ接触することにより入力を行う接触入力部と、前記接触入力部での入力のうち、少なくとも１つ以上の同時入力の接触点を検知する接触検知部と、前記接触検知部で検知した同時入力の接触点の数を取得する取得部と、少なくとも接触点の数に応じて異なる処理を行う処理部と、を有し、前記処理部は、前記少なくとも１つ以上の同時入力の接触点が一方向に移動されたことを前記接触検知部が検知した場合、前記表示部に表示されているデータ情報を、前記取得部で取得した前記同時入力の接触点の数に応じた移動量で表示移動するよう構成される、携帯端末が記載されている。
【０００４】
しかしながら、１つの位置のみの検出可能な種類のタッチパネルと、同時に複数の位置を検出可能な種類のタッチパネルとが存在し、ＭＦＰが備えるタッチパネルの種類が異なる。このため、すべての種類のタッチパネルに対応したアプリケーションプログラムを開発することは困難であるといった問題がある。
【特許文献１】特開２０１１−１７０６０３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
この発明は上述した問題点を解決するためになされたもので、この発明の目的の１つは、アプリケーションプログラムの開発を容易にした画像処理装置を提供することである。
この発明の他の目的は、アプリケーションプログラムの開発を容易にした操作標準化方法を提供することである。
この発明の他の目的は、アプリケーションプログラムの開発を容易にした操作標準化プログラムを提供することである。
【課題を解決するための手段】
【０００６】
上述した目的を達成するためにこの発明のある局面によれば、画像処理装置は、画像を表示する表示手段と、表示手段の表示面中で、ユーザーにより指示される１以上の位置を検出可能なタッチパネルと、表示手段およびタッチパネルを制御する制御手段と、を備えた画像処理装置であって、制御手段は、タッチパネルにより１以上の位置が検出されることに応じて、１以上の位置それぞれを示す位置情報を含むタッチイベントを出力するタッチイベント生成手段と、タッチイベント生成手段が連続して出力する複数のタッチイベントの組に基づいて、複数のジェスチャーイベントのいずれか１つを決定するジェスチャーイベント決定手段と、アプリケーションプログラムにより定められる複数種類の処理をそれぞれ識別するための複数の処理識別情報のいずれか１つが入力されることに応じて、複数種類の処理のうち入力された処理識別情報に対応する種類の処理を実行するアプリケーション手段と、アプリケーションプログラムがインストールされる段階で、アプリケーションプログラムに対応して、アプリケーションプログラムが定める複数種類の処理それぞれを複数のジェスチャーイベントのいずれかと関連付ける関連付手段と、ジェスチャーイベント決定手段により決定されたジェスチャーイベントと、関連付手段によって複数種類の処理のうちからアプリケーションプログラムに対応して関連付けられた処理を特定する処理特定手段と、特定された処理の処理識別情報をアプリケーション手段に出力する操作通知手段と、を備える。
【０００７】
この局面に従えば、アプリケーションプログラムがインストールされる段階で、アプリケーションプログラムが定める複数種類の処理それぞれが複数のジェスチャーイベントのいずれかと関連付けられ、タッチパネルにより１以上の位置が検出されることに応じて、１以上の位置それぞれを示す位置情報を含むタッチイベントが出力され、複数のタッチイベントの組に基づいて、ジェスチャーイベントが決定され、決定されたジェスチャーイベントと関連付けられた処理の処理識別情報に対応する種類の処理が実行される。このため、タッチパネルに入力される操作を、アプリケーションプログラムで定められる処理に関連付けることができる。また、アプリケーションプログラムをタッチパネルで受け付け可能な操作と関係なく開発することができる。その結果、アプリケーションプログラムの開発を容易にした画像処理装置を提供することができる。
【０００８】
好ましくは、操作通知手段は、処理特定手段によってジェスチャーイベント決定手段により決定されたジェスチャーイベントに対応する処理が特定されない場合、ジェスチャーイベントの元になる１以上の位置情報を、アプリケーション手段に出力する。
【０００９】
この局面に従えば、タッチパネルで受け付けられる操作に対応しているアプリケーションプログラムをインストールすることができる。
【００１０】
好ましくは、タッチイベント生成手段は、タッチパネルにより検出される１以上の位置それぞれの時間的な変換に基づいて、タッチイベントの状態を示す検出状態を決定する状態決定手段を含み、タッチイベントは、検出された位置と検出状態とを含む。
【００１１】
この局面に従えば、タッチパネルに触れる位置を移動させる操作を受け付けることができる。
【００１２】
好ましくは、ジェスチャーイベント決定手段は、タッチイベント生成手段により同時に出力されるタッチイベントの数、およびタッチイベント生成手段により連続して出力される複数のタッチイベントそれぞれに含まれる検出状態の変化に基づいて、ジェスチャーイベントを決定する。
【００１３】
この局面に従えば、タッチパネルの複数の位置を指示する操作を受け付けることができる。
【００１４】
この発明の他の局面によれば、操作標準化方法は、画像処理装置を制御するコンピューターで実行される操作標準化方法であって、画像処理装置は、画像を表示する表示手段と、表示手段の表示面中で、ユーザーにより指示される１以上の位置を検出可能なタッチパネルと、アプリケーションプログラムを実行することによって、アプリケーションプログラムにより定められる複数種類の処理をそれぞれ識別するための複数の処理識別情報のいずれか１つが入力されることに応じて、複数種類の処理のうち入力された処理識別情報に対応する種類の処理を実行するアプリケーション手段と、を備え、タッチパネルにより１以上の位置が検出されることに応じて、１以上の位置それぞれを示す位置情報を含むタッチイベントを出力するタッチイベント生成ステップと、タッチイベント生成ステップにおいて複数のタッチイベントが連続して出力される場合、連続して出力される複数のタッチイベントの組に基づいて、複数のジェスチャーイベントのいずれか１つを決定するジェスチャーイベント決定ステップと、アプリケーションプログラムがインストールされる段階で、アプリケーションプログラムに対応して、アプリケーションプログラムが定める複数種類の処理それぞれを複数のジェスチャーイベントのいずれかと関連付ける関連付ステップと、ジェスチャーイベント決定ステップにおいて決定されたジェスチャーイベントと、関連付ステップにおいて複数種類の処理のうちからアプリケーションプログラムに対応して関連付けられた処理を特定する処理特定ステップと、特定された処理の処理識別情報をアプリケーション手段に出力する操作通知ステップと、を含む。
【００１５】
この局面に従えば、アプリケーションプログラムの開発を容易にした操作標準化方法を提供することができる。
【００１６】
好ましくは、操作通知ステップは、処理特定ステップにおいてジェスチャーイベント決定ステップにおいて決定されたジェスチャーイベントに対応する処理が特定されない場合、ジェスチャーイベントの元になる１以上の位置情報を、アプリケーション手段に出力するステップを含む。
【００１７】
好ましくは、タッチイベント生成ステップは、タッチパネルにより検出される１以上の位置それぞれの時間的な変換に基づいて、タッチイベントの状態を示す検出状態を決定する状態決定ステップを含み、タッチイベントは、検出された位置と検出状態とを含む。
【００１８】
好ましくは、ジェスチャーイベント決定ステップは、タッチイベント生成ステップにおいて同時に出力されるタッチイベントの数、およびタッチイベント生成ステップにより連続して出力される複数のタッチイベントそれぞれに含まれる検出状態の変化に基づいて、ジェスチャーイベントを決定するステップを含む。
【００１９】
この発明のさらに他の局面によれば、操作標準化プログラムは、画像処理装置を制御するコンピューターで実行される操作標準化プログラムであって、画像処理装置は、画像を表示する表示手段と、表示手段の表示面中で、ユーザーにより指示される１以上の位置を検出可能なタッチパネルと、アプリケーションプログラムを実行することによって、アプリケーションプログラムにより定められる複数種類の処理をそれぞれ識別するための複数の処理識別情報のいずれか１つが入力されることに応じて、複数種類の処理のうち入力された処理識別情報に対応する種類の処理を実行するアプリケーション手段と、を備え、タッチパネルにより１以上の位置が検出されることに応じて、１以上の位置それぞれを示す位置情報を含むタッチイベントを出力するタッチイベント生成ステップと、タッチイベント生成ステップにおいて複数のタッチイベントが連続して出力される場合、連続して出力される複数のタッチイベントの組に基づいて、複数のジェスチャーイベントのいずれか１つを決定するジェスチャーイベント決定ステップと、アプリケーションプログラムがインストールされる段階で、アプリケーションプログラムに対応して、アプリケーションプログラムが定める複数種類の処理それぞれを複数のジェスチャーイベントのいずれかと関連付ける関連付ステップと、ジェスチャーイベント決定ステップにおいて決定されたジェスチャーイベントと、関連付ステップにおいて複数種類の処理のうちからアプリケーションプログラムに対応して関連付けられた処理を特定する処理特定ステップと、特定された処理の処理識別情報をアプリケーション手段に出力する操作通知ステップと、をコンピューターに実行させる。
【００２０】
この局面に従えば、アプリケーションプログラムの開発を容易にした操作標準化プログラムを提供することができる。
【００２１】
好ましくは、操作通知ステップは、処理特定ステップにおいてジェスチャーイベント決定ステップにおいて決定されたジェスチャーイベントに対応する処理が特定されない場合、ジェスチャーイベントの元になる１以上の位置情報を、アプリケーション手段に出力するステップを含む。
【００２２】
好ましくは、タッチイベント生成ステップは、タッチパネルにより検出される１以上の位置それぞれの時間的な変換に基づいて、タッチイベントの状態を示す検出状態を決定する状態決定ステップを含み、タッチイベントは、検出された位置と検出状態とを含む。
【００２３】
好ましくは、ジェスチャーイベント決定ステップは、タッチイベント生成ステップにおいて同時に出力されるタッチイベントの数、およびタッチイベント生成ステップにより連続して出力される複数のタッチイベントそれぞれに含まれる検出状態の変化に基づいて、ジェスチャーイベントを決定するステップを含む。
【図面の簡単な説明】
【００２４】
【図１】本実施の形態の一つにおけるＭＦＰの外観を示す斜視図である。
【図２】操作パネルの一例を示す平面図である。
【図３】ＭＦＰのハードウェア構成の概要の一例を示すブロック図である。
【図４】ＭＦＰが備えるＣＰＵのソフトウェアアーキテクチャの一例を示す図である。
【図５】ＭＦＰが備えるＣＰＵが有する機能の一例を、ＨＤＤに記憶される情報とともに示すブロック図である。
【図６】マスターテーブルの一例を示す図である。
【図７】第１変換テーブルの一例を示す図である。
【図８】第２変換テーブルの一例を示す図である。
【図９】ジェスチャーイベント決定処理の流れの一例を示すフローチャートである。
【図１０】操作通知処理の流れの一例を示すフローチャートである。
【発明を実施するための形態】
【００２５】
以下、本発明の実施の形態について図面を参照して説明する。以下の説明では同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
【００２６】
図１は、本実施の形態の一つにおけるＭＦＰの外観を示す斜視図である。図２は、操作パネルの一例を示す平面図である。図１および図２を参照して、ＭＦＰ１００は、原稿を読み取るための原稿読取部１３０と、原稿を原稿読取部１３０に搬送するための自動原稿搬送装置１２０と、原稿読取部１３０が原稿を読み取って出力する画像データに基づいて用紙等に画像を形成するための画像形成部１４０と、画像形成部１４０に用紙を供給するための給紙部１５０と、ユーザーインターフェースとしての操作パネル１６０とを含む。
【００２７】
操作パネル１６０は、ＭＦＰ１００の上面に設けられる。操作パネル１６０は、表示部１６１と、タッチパネル１６５と、ハードキー部１６７とを含む。表示部１６１は、例えば、液晶表示装置（ＬＣＤ）であり、ユーザーに対する指示メニューや取得した画像データに関する情報等を表示する。ハードキー部１６７は、「ＢＯＸ」、「ＦＡＸ」、「ＣＯＰＹ」、「ＥＣＯ」の文字がそれぞれ表された４つのハードキー１６７Ａ〜１６７Ｄを含む。タッチパネル１６５は、表示部１６１の上面または下面に表示部１６１に重畳して設けられ、表示部１６１の表示面中の位置を検出する。
【００２８】
自動原稿搬送装置１２０は、原稿給紙トレイ上にセットされた複数枚の原稿を１枚ずつ自動的に原稿読取部１３０のプラテンガラス上に設定された所定の原稿読み取り位置まで搬送し、原稿読取部１３０により原稿画像が読み取られた原稿を原稿排紙トレイ上に排出する。原稿読取部１３０は、原稿読取位置に搬送されてきた原稿に光を照射する光源と、原稿で反射した光を受光する光電変換素子とを含み、原稿のサイズに応じた原稿画像を走査する。光電変換素子は、受光した光を電気信号である画像データに変換して、画像形成部１４０に出力する。給紙部１５０は、給紙トレイに収納された用紙を画像形成部１４０に搬送する。
【００２９】
画像形成部１４０は、周知の電子写真方式により画像を形成するものであって、原稿読取部１３０から入力される画像データにシェーディング補正などの各種のデータ処理を施した、データ処理後の画像データまたは、外部から受信された画像データに基づいて、給紙部１５０により搬送される用紙に画像を形成する。
【００３０】
図３は、ＭＦＰのハードウェア構成の概要の一例を示すブロック図である。図３を参照して、ＭＦＰ１００は、メイン回路１１０を含む。メイン回路１１０は、ＣＰＵ１１１と、通信インターフェース（Ｉ／Ｆ）部１１２と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１１３と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１１４と、大容量記憶装置としてのハードディスクドライブ（ＨＤＤ）１１５と、ファクシミリ部１１６と、外部記憶装置１１７と、を含む。ＣＰＵ１１１は、自動原稿搬送装置１２０、原稿読取部１３０、画像形成部１４０、給紙部１５０および操作パネル１６０と接続され、ＭＦＰ１００の全体を制御する。
【００３１】
ＲＯＭ１１３は、ＣＰＵ１１１が実行するプログラム、またはそのプログラムを実行するために必要なデータを記憶する。ＲＡＭ１１４は、ＣＰＵ１１１がプログラムを実行する際の作業領域として用いられる。また、ＲＡＭ１１４は、原稿読取部１３０から連続的に送られてくる読取画像を一時的に記憶する。
【００３２】
ファクシミリ部１１６は、公衆交換電話網（ＰＳＴＮ）に接続され、ＰＳＴＮにファクシミリデータを送信する、またはＰＳＴＮからファクシミリデータを受信する。ファクシミリ部１１６は、受信したファクシミリデータを、ＨＤＤ１１５に記憶するか、または、画像形成部１４０でプリント可能なプリントデータに変換して、画像形成部１４０に出力する。これにより、画像形成部１４０は、ファクシミリ部１１６により受信されたファクシミリデータを用紙に画像を形成する。また、ファクシミリ部１１６は、原稿読取部１３０によって読み取られたデータ、またはＨＤＤ１１５に記憶されたデータをファクシミリデータに変換して、ＰＳＴＮに接続されたファクシミリ装置に送信する。
【００３３】
通信Ｉ／Ｆ部１１２は、ネットワークにＭＦＰ１００を接続するためのインターフェースである。通信Ｉ／Ｆ部１１２は、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）またはＦＴＰ（Ｆｉｌｅ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）等の通信プロトコルで、ネットワークに接続された他のコンピューターと通信する。なお、通信のためのプロトコルは、特に限定されることはなく、任意のプロトコルを用いることができる。また、通信Ｉ／Ｆ部１１２が接続されるネットワークは、例えば、ローカルエリアネットワーク（ＬＡＮ）であり、接続形態は有線または無線を問わない。またネットワークは、ＬＡＮに限らず、ワイドエリアネットワーク（ＷＡＮ）、公衆交換電話網（Ｐｕｂｌｉｃ  Ｓｗｉｔｃｈｅｄ  Ｔｅｌｅｐｈｏｎｅ  Ｎｅｔｗｏｒｋｓ）を用いたネットワーク等であってもよい。さらに、ネットワークは、インターネットに接続されている。このため、ＭＦＰ１００は、インターネットに接続されたサーバー等のコンピューターと通信が可能である。
【００３４】
外部記憶装置１１７は、ＣＰＵ１１１により制御され、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１１８、または半導体メモリが装着される。ＣＰＵ１１１は、外部記憶装置１１７を介してＣＤ−ＲＯＭ１１８または半導体メモリにアクセス可能である。ＣＰＵ１１１は、外部記憶装置１１７に装表されたＣＤ−ＲＯＭ１１８または半導体メモリに記録されたプログラムをＲＡＭ１１４にロードして実行する。なお、ＣＰＵ１１１が実行するプログラムは、ＣＤ−ＲＯＭ１１８に記録されたプログラムに限られず、ＨＤＤ１１５に記憶されたプログラムをＲＡＭ１１４にロードして実行するようにしてもよい。この場合、通信Ｉ／Ｆ部１１２に接続されるネットワークを介して、ネットワークに接続された他のコンピューターが、ＭＦＰ１００のＨＤＤ１１５に記憶されたプログラムを書換える、または、新たなプログラムを追加して書き込むようにしてもよい。さらに、ＭＦＰ１００が、ネットワークに接続された他のコンピューターからプログラムをダウンロードして、そのプログラムをＨＤＤ１１５に記憶するようにしてもよい。ここでいうプログラムは、ＣＰＵ１１１が直接実行可能なプログラムだけでなく、ソースプログラム、圧縮処理されたプログラム、暗号化されたプログラム等を含む。
【００３５】
なお、ＣＰＵ１１１が実行するプログラムを記憶する媒体としては、ＣＤ−ＲＯＭ１１８に限られず、光ディスク（ＭＯ（Ｍａｇｎｅｔｉｃ  Ｏｐｔｉｃａｌ  Ｄｉｓｃ／ＭＤ（Ｍｉｎｉ  Ｄｉｓｃ）／ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ））、ＩＣカード、光カード、マスクＲＯＭ、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  ＥＰＲＯＭ）などの半導体メモリであってもよい。
【００３６】
操作パネル１６０は、表示部１６１と操作部１６３とを含む。表示部１６１は、液晶表示装置（ＬＣＤ）、有機ＥＬＤ（Ｅｌｅｃｔｒｏ−Ｌｕｍｉｎｅｓｃｅｎｃｅ  Ｄｉｓｐｌａｙ）等のディスプレイであり、ユーザーに対する指示メニューや取得した画像データに関する情報等を表示する。操作部１６３は、タッチパネル１６５と、複数のキーからなるハードキー部１６７と、を含む。ハードキー部１６７が含む複数のキーそれぞれは、接点スイッチを含み、ＣＰＵ１１１に接続される。ハードキーは、操作ユーザーにより押下されると接点を閉じて、ＣＰＵ１１１に接続される回路を閉じる。ハードキーは、ＭＦＰ１００を操作する操作ユーザーにより押下されている間は回路を閉じ、操作ユーザーにより押下されていない間は回路を開く。
【００３７】
操作部１６３は、ハードキー部１６７が有する複数のキーが押下されると、押下されたキーに対応する指示、文字、数字などのデータの入力を受け付ける。タッチパネル１６５は、表示部１６１の上面または下面に設けられ、操作ユーザーにより指示された位置の座標をＣＰＵ１１１に出力する。タッチパネル１６５は、操作ユーザーが指またはスタイラスペンで指示した位置を検出し、検出した位置の座標をＣＰＵ１１１に出力する。タッチパネル１６５は、マルチタッチスクリーンパネルであり、同時に複数の位置がユーザーにより指示される場合、ユーザーにより指示された複数の位置にそれぞれ対応する複数の座標をＣＰＵ１１１に出力する。
【００３８】
タッチパネル１６５は、表示部１６１の表示面と同じまたはそれ以上のサイズであるのが好ましい。タッチパネル１６５は、表示部１６１に重畳して設けられるので、タッチパネル１６５は、操作ユーザーが表示部１６１の表示面を指示すれば、表示部１６１の表示面中で操作ユーザーが指示した位置の座標をＣＰＵ１１１に出力する。タッチパネル１６５は、例えば、抵抗膜方式、表面弾性波方式、赤外線方式、電磁誘導方式、静電容量方式を用いることができ、その方式は限定されない。
【００３９】
操作部１６３が受け付け可能な操作は、ハードキー部１６７が有する複数のキーを押下する操作と、タッチパネル１６５を指示する操作とを含む。さらに、ハードキー部１６７は、「ＢＯＸ」、「ＦＡＸ」、「ＣＯＰＹ」、「ＥＣＯ」の文字がそれぞれ表された４つのハードキー１６７Ａ〜１６７Ｄを含む。「ＢＯＸ」、「ＦＡＸ」、「ＣＯＰＹ」の文字がそれぞれ表された３つのハードキー１６７Ａ，１６７Ｂ，１６７Ｃは、ＭＦＰ１００に実行させる処理の切り換えを指示するための処理切換操作が割り当てられた処理切換キーである。「ＥＣＯ」の文字が表されたハードキー１６７Ｄは、ＭＦＰ１００を、通常モードから通常モードよりも消費電力の低い省電力モードへの切換を指示するためのモード切換操作が割り当てられたモード切換キーである。操作部１６３は、ハードキー１６７Ａ，１６７Ｂ，１６７Ｃのいずれかが押下される場合、処理切換操作を受け付け、ハードキー１６７Ｄが押下される場合、モード切換操作を受け付ける。
【００４０】
図４は、ＭＦＰが備えるＣＰＵのソフトウェアアーキテクチャの一例を示す図である。図４を参照して、ＣＰＵ１１１には、オペレーティングシステム（ＯＳ）層が形成され、その上の階層に、ＭＦＰプロセス層が形成される。ＭＦＰプロセス層の上層に、アプリケーションプラットフォーム（ＰＦ）層、アプリケーション層の順に形成される。
【００４１】
ＯＳ層は、ＣＰＵ１１１がＯＳプログラムを実行するタスクが属する。ＯＳ層に属するタスクは、ＭＦＰ１００のハードウェア資源を制御する処理を実行する。ハードウェア資源は、ここでは、通信Ｉ／Ｆ部１１２、ＲＯＭ１１３、ＲＡＭ１１４、ＨＤＤ１１５、ファクシミリ部１１６、外部記憶装置１１７、自動原稿搬送装置１２０、原稿読取部１３０、画像形成部１４０、給紙部１５０、操作パネル１６０を含む。ＯＳ層に属するタスクは、ＭＦＰプロセス層から入力されるオペレーティングコマンドに従って、ハードウェア資源を制御する。また、ＯＳ層は、ＭＦＰプロセス層との間で、操作部１６３が受け付け可能な複数種類の操作それぞれを識別するための操作識別情報を共有しており、ＯＳ層に属するタスクは、操作部１６３によって操作ユーザーによる操作が検出されることに応じて、検出された操作を識別するための操作識別情報をＭＦＰプロセス層に出力する。
【００４２】
アプリケーション層は、ＣＰＵ１１１がアプリケーションプログラムを実行するタスクが属する。複数種類のアプリケーションプログラムがＭＦＰ１００にインストールされる場合、アプリケーション層に、複数種類のアプリケーションプログラムをそれぞれ実行する複数のタスクが属する場合がある。アプリケーションプログラムは、ＭＦＰ１００に、インターネットに接続されたサーバーからＷｅｂページをダウンロードして表示するブラウジング処理を実行させるプログラムを含む。なお、アプリケーションプログラムは、これに限定されることなく、ＭＦＰ１００にコピー処理、スキャン処理、プリント処理、ファクシミリ送受信処理、データ送受信処理等を実行させるために、ユーザーインターフェース等をカスタマイズするためのプログラムであってもよい。アプリケーションプログラムは、特に限定するものではないが、例えば、Ｐｙｔｈｏｎ等のプログラミング言語で記述される。
【００４３】
アプリケーションプログラムを実行するタスクは、アプリケーションプログラムによって定められた複数種類の処理を実行する。複数種類の処理は、ＭＦＰプロセス層において実行される処理をＭＦＰプロセス層に属するタスクに実行させる処理を含む。アプリケーションプログラムを実行するタスクは、ＭＦＰプロセス層に属するタスクに処理を実行させる場合、アプリコマンドを出力する。アプリコマンドは、ＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）として、公開されたコマンドである。このため、ＭＦＰ１００に処理を実行させるアプリケーションプログラムを容易に作成することができる。公開とは、ＭＦＰ１００を製造するメーカー以外の第三者が使用可能な状態をいう。このため、第三者は、アプリコマンドを用いてＭＦＰ１００にインストール可能なアプリケーションプログラムを開発することができる。
【００４４】
さらに、アプリケーションプログラムを実行するタスクは、ＭＦＰ１００を操作する操作ユーザーによる指示に基づいて、アプリケーションプログラムによって定められた複数種類の処理のうちから実行する処理を特定し、処理を実行する。ＭＦＰ１００を操作する操作ユーザーによる指示は、操作ユーザーが操作部１６３を操作して入力することにより、ＯＳ層において受け付けられる。本実施の形態においては、操作ユーザーによる指示に基づいて、複数種類の処理のうちからアプリケーションプログラムを実行するタスクが実行する処理を特定する処理を、アプリケーションＰＦ層が担当する。このため、アプリケーションプログラムは、アプリケーションＰＦ層との間で、アプリケーションプログラムにより定められる複数種類の処理それぞれを識別するための処理識別情報を共有しており、アプリケーションプログラムを実行するタスクは、アプリケーションＰＦ層に属するタスクから処理識別情報が入力されることに応じて、複数種類の処理のうち処理識別情報に対応する処理を実行する。
【００４５】
アプリケーションＰＦ層は、アプリケーション層とＭＦＰプロセス層との間に配置され、アプリケーション層に属する複数のタスクを調停するとともに、アプリケーション層に属する複数のタスクが出力するアプリコマンドを制御するタスクが属する。具体的には、アプリケーションＰＦ層は、アプリケーション層に属する複数のタスクのいずれか１つをデータの入出力が可能なカレント状態に決定する。アプリケーションＰＦ層は、アプリケーション層に属する複数のタスクのうちカレント状態に決定したタスクが出力するアプリコマンドを受け付け、また、ＭＦＰプロセス層に属するタスクから入力される処理識別情報を、カレント状態に決定したタスクに出力する。また、アプリケーションＰＦ層に属するタスクは、アプリケーション層に属する複数のタスクそれぞれが出力するアプリコマンドを、予め定められた規則に従って内部コマンドに変換することにより標準化し、内部コマンドをＭＦＰプロセス層に出力する。このため、複数のアプリケーションプログラム間で、バージョンが異なる場合等に対応することができる。
【００４６】
アプリコマンドと内部コマンドとは予め対応付けられている。例えば、コマンド対応テーブルを記憶しておくようにすればよい。アプリコマンドと内部コマンドとは、１対１に対応してもよいし、１つのアプリコマンドに２以上の内部コマンドの組が対応していてもよい。さらに、バージョンの異なる複数のアプリコマンドに対して、１つの内部コマンド、または複数の内部コマンドからなる１組が対応していてもよい。このため、複数のアプリケーションプログラム間で、バージョンが異なる場合等に対応することができる。内部コマンドは、ＭＦＰ１００のハードウェア資源に依存するコマンドである。内部コマンドは、通常は、公開されていないが、公開されていてもよい。
【００４７】
ＭＦＰプロセス層は、アプリケーションＰＦ層とＯＳ層との間に配置され、ＣＰＵ１１１がＭＦＰプロセスプログラムを実行するタスクが属する。ＭＦＰプロセス層は、アプリケーションＰＦ層に属するタスクが出力する内部コマンドを、ＯＳ層に属するタスクが解釈可能なオペレーティングコマンドに変換し、ハードウェア資源を制御するためにオペレーティングコマンドをＯＳ層に属するタスクに出力するタスクが属する。なお、実際には、内部コマンドを、ＯＳ層に属するタスクが実行可能な１以上のオペレーティングコマンドに変換する場合があるが、ここでは説明のために、内部コマンドとＯＳ層に属するタスクが実行可能な１以上のオペレーティングコマンドとの関係は１対１として、説明する。また、ＭＦＰプロセス層は、ＯＳ層に属するタスクから操作識別情報が入力されると、その操作識別情報をアプリケーションＰＦ層に出力する。
【００４８】
上述したように、アプリケーションプログラムは、ＭＦＰ１００に、ブラウジング処理、コピー処理、スキャン処理、プリント処理、ファクシミリ送受信処理、データ送信処理等を実行させるためのアプリケーションプログラムであるが、以下の説明では、アプリケーションプログラムがＣＰＵ１１１に実行させる処理のうちで、操作パネル１６０を制御する処理に関連する部分を主に説明する。
【００４９】
図５は、ＭＦＰが備えるＣＰＵが有する機能の一例を、ＨＤＤに記憶される情報とともに示すブロック図である。図５に示す機能は、ＭＦＰ１００が備えるＣＰＵ１１１が、ＲＯＭ１１３、ＨＤＤ１１５またはＣＤ−ＲＯＭ１１８に記憶されたプログラムを実行することにより、ＣＰＵ１１１により実現される機能である。具体的には、ＣＰＵ１１１が、ＯＳプログラム、操作標準化プログラム、およびアプリケーションプログラムを実行することにより、ＣＰＵ１１１により実現される。ここでは、ＭＦＰ１００に、アプリケーションプログラムとして、第１アプリケーションプログラムおよび第２アプリケーションプログラムが、インストールされている場合におけるＣＰＵ１１１の機能を示している。
【００５０】
図５を参照して、ＣＰＵ１１１は、アプリケーション部５１と、調停部５３と、操作変換部５５と、オペレーティング部５７と、を含む。アプリケーション部５１は、図４に示したソフトウェアアーキテクチャにおいて、アプリケーション層に属する。アプリケーション部５１は、第１アプリ実行部６１と、第２アプリ実行部６３と、を含む。第１アプリ実行部６１は、ＣＰＵ１１１が第１アプリケーションプログラムを実行するタスクによって実行される機能である。第２アプリ実行部６３は、ＣＰＵ１１１が第２アプリケーションプログラムを実行するタスクによって実行される機能である。第１アプリ実行部６１および第２アプリ実行部６３それぞれは、アプリコマンドを調停部５３に出力する。
【００５１】
第１アプリ実行部６１は、ＭＦＰ１００を操作する操作ユーザーによる指示に基づいて、第１アプリケーションプログラムによって定められた複数種類の処理のうちから実行する処理を特定し、処理を実行する。第２アプリ実行部６３は、ＭＦＰ１００を操作する操作ユーザーによる指示に基づいて、第２アプリケーションプログラムによって定められた複数種類の処理のうちから実行する処理を特定し、処理を実行する。第１アプリケーションプログラムによって定められた複数種類の処理および第２アプリケーションプログラムによって定められた複数種類の処理は、表示部１６１に表示する画面を変化させる処理を含む。画面を変化させる処理は、例えば、表示部１６１に画面の一部が表示されている場合には、表示部１６１に表示する部分を変更するスクロール処理、ページ送り処理、画面を拡大して表示する拡大処理、画面を縮小して表示する縮小処理、画面の方向を変更する回転処理を含む。
【００５２】
調停部５３および操作変換部５５は、ＣＰＵ１１１が操作標準化プログラムを実行するタスクによって実行される機能である。調停部５３は、図４に示したソフトウェアアーキテクチャにおいて、アプリケーションＰＦ層に属する。操作変換部５５は、図４に示したソフトウェアアーキテクチャにおいて、アプリケーションＰＦ層に属する。なお、操作変換部５５が有する機能のすべてをアプリケーションＰＦ層の機能としたが、操作変換部５５が有する機能の少なくとも一部をアプリケーションＰＦ層の機能とし、他の部分をＭＦＰプロセス層の機能としてもよい。
【００５３】
調停部５３は、第１アプリ実行部６１および第２アプリ実行部６３のうちいずれか１つを、データの入出力が可能なカレント状態に決定する。以下、調停部５３が、第１および第２アプリ実行部６１，６３のうちカレント状態に決定しているものを、カレントタスクという。調停部５３は、第１アプリ実行部６１および第２アプリ実行部６３のうちカレントタスクが出力するアプリコマンドが入力され、カレントタスクを識別するためのアプリ識別情報とアプリコマンドとを操作変換部５５に出力する。調停部５３は、第１アプリ実行部６１がカレント状態の場合、第１アプリ実行部６１がカレントタスクなので、第１アプリ実行部６１を識別するためのアプリ識別情報と第１アプリ実行部６１が出力するアプリコマンドを操作変換部５５に出力する。調停部５３は、第２アプリ実行部６３がカレント状態の場合、第２アプリ実行部６３がカレントタスクなので、第２アプリ実行部６３を識別するためのアプリ識別情報と第２アプリ実行部６３が出力するアプリコマンドとを操作変換部５５に出力する。
【００５４】
調停部５３は、第１および第２アプリ実行部６１，６３それぞれから複数のアプリコマンドが出力される場合、それらの順番を決定し、順に操作変換部５５に出力する。例えば、複数のアプリコマンドを同時に実行できない場合に、一方のアプリコマンドの操作変換部５５による実行が終了するのを待って他方のアプリコマンドを操作変換部５５に出力する。また、一方のアプリコマンドを実行した後でなければ、他方のアプリコマンドを実行できない場合には、他方のアプリコマンドが一方のアプリコマンドより先に入力される場合であっても、一方のアプリコマンドを先に出力する。
【００５５】
操作変換部５５は、調停部５３からアプリコマンドが入力され、アプリコマンドをコマンド対応テーブルに従って内部コマンドに変換することにより標準化する。コマンド対応テーブルは、１つのアプリコマンドに１以上の内部コマンドを対応付ける。コマンド対応テーブルに含まれるアプリコマンドは、バージョンの異なる同種類のアプリコマンドを含む場合があり、この場合、異なるバージョンのアプリコマンドそれぞれを１以上の内部コマンドに対応付ける。このため、異なるバージョンのアプリコマンドを記述したアプリケーションプログラムをインストールすることを可能としている。コマンド対応テーブルは、新しいアプリコマンドが登場する場合に、新たに登場したアプリコマンドに１以上の内部コマンドを対応付けたコマンド対応テーブルで更新される。このため、新しいアプリコマンドを記述したアプリケーションプログラムをインストールすることができる。
【００５６】
さらに、操作変換部５５は、標準化された内部コマンドを、オペレーティングコマンドに変換し、オペレーティングコマンドをオペレーティング部５７に出力する。オペレーティングコマンドは、操作変換部５５とオペレーティング部５７との間で予め定められた、オペレーティング部５７が解釈可能なコマンドである。
【００５７】
オペレーティング部５７は、ＣＰＵ１１１がＯＳプログラムを実行するタスクによって実行される機能である。オペレーティング部５７は、図４に示したソフトウェアアーキテクチャにおいて、ＯＳ層に属する。
【００５８】
オペレーティング部５７は、操作変換部５５が出力するオペレーティングコマンドが入力され、オペレーティングコマンドに従って、ハードウェア資源を制御する。ハードウェア資源として、ここでは、表示部１６１および操作部１６３のタッチパネル１６５を例に説明する。オペレーティング部５７は、表示部１６１を制御して、表示部１６１に画像を表示させる。
【００５９】
さらに、オペレーティング部５７は、タッチパネル１６５が出力する、表示部１６１の表示面の位置を受け付ける。オペレーティング部５７は、タッチパネル１６５から位置情報を受け付ける場合、操作識別情報としてマウスイベントを、操作変換部５５に出力する。なお、オペレーティング部５７は、ハードキー部１６７を制御する場合、ハードキー部１６７が出力するハードキーの識別情報を受け付け、受け付けられたハードキーの識別情報を含む操作識別情報を、操作変換部５５に出力する。
【００６０】
オペレーティング部５７は、タッチパネル１６５から同時に２以上の位置情報を受け付ける場合がある。例えば、操作ユーザーが、表示部１６１の表示面の異なる２つの部分を、２つの指で同時に指示する場合、指示された表示面の２つの位置それぞれを示す位置情報を受け付ける。オペレーティング部５７は、タッチパネル１６５から同時に２以上の位置情報を受け付ける場合、２以上の位置情報を含むマウスイベントを操作識別情報として、操作変換部５５に出力する。なお、操作ユーザーが、ハードキー部１６７が有する複数のハードキーのうち１つを押下しながら、表示部１６１の表示面を指で指示する場合、押下されたハードキーの識別情報と、指示された表示面の位置を示す位置情報とを受け付け、受け付けられたキーの識別情報と位置情報とを含む操作識別情報を、操作変換部５５に出力する。
【００６１】
操作変換部５５は、関連付部７１と、表示制御部７３と、タッチイベント生成部７５と、ジェスチャーイベント決定部７７と、処理特定部７９と、操作通知部８１と、を含む。
【００６２】
表示制御部７３は、調停部５３から、カレントタスクのアプリ識別情報と、操作画面を表示することを示すアプリコマンドとの組が入力される場合、操作画面の画像を表示することを示すアプリコマンドを変換したオペレーティングコマンドをオペレーティング部５７に出力する。オペレーティング部５７は、表示部１６１を制御し、操作画面の画像を表示部１６１に表示させる。
【００６３】
オペレーティング部５７は、所定時間間隔でタッチパネル１６５にユーザーにより指示された位置を検出させ、タッチパネル１６５から所定時間間隔で位置情報を取得する。オペレーティング部５７は、タッチパネル１６５がユーザーにより指示されている場合、ユーザーにより指示されている位置を示す位置情報と指示の状態とを示すマウスイベントを、タッチイベント生成部７５に出力する。マウスイベントは、操作識別情報のひとつである。ユーザーがタッチパネル１６５を指示する操作は、ユーザーがタッチパネル１６５の任意の位置を指示する指示開始操作、ユーザーがタッチパネル１６５を指示しながら、換言すれば、タッチパネル１６５に触れながら指示する位置を移動させる移動操作、ユーザーがタッチパネル１６５の指示を終了する終了操作、を含む。ユーザーが指示開始操作を入力した時点でオペレーティング部５７が出力するマウスイベントに含まれる指示の状態は「Ｐｒｅｓｓ」であり、ユーザーが移動操作を入力した時点でオペレーティング部５７が出力するマウスイベントに含まれる指示の状態は「Ｍｏｖｅ」であり、ユーザーが終了操作を入力した時点でオペレーティング部５７が出力するマウスイベントに含まれる指示の状態は「Ｒｅｌｅａｓｅ」である。
【００６４】
タッチイベント生成部７５は、オペレーティング部５７からマウスイベントが入力される場合、マウスイベントをタッチイベントに変換する。タッチイベントは、ユーザーにより指示された位置を示す位置情報と、タッチイベントの状態とを含む。タッチイベントの状態は、マウスイベントの指示の状態に対応する。マウスイベントに含まれる指示の状態「Ｐｒｅｓｓ」に対応するタッチイベントの状態は「開始」であり、マウスイベントに含まれる指示の状態「Ｍｏｖｅ」に対応するタッチイベントの状態は「更新」であり、マウスイベントに含まれる指示の状態「Ｒｅｌｅａｓｅ」に対応するタッチイベントの状態は「終了」である。タッチイベント生成部７５は、マウスイベントに含まれる指示の状態を、対応するタッチイベントの状態に変更することにより、タッチイベントを生成し、生成したタッチイベントをジェスチャーイベント決定部７７および操作通知部８１に出力する。
【００６５】
タッチイベント生成部７５は、オペレーティング部５７から複数のマウスイベントが入力される場合、複数のマウスイベントそれぞれに対応する複数のタッチイベントを生成する。タッチイベント生成部７５は、１以上のタッチイベントを生成する場合、生成された１以上のタッチイベントをジェスチャーイベント決定部７７および操作通知部８１に出力する。
【００６６】
ジェスチャーイベント決定部７７は、タッチイベント生成部７５から連続して入力される複数のタッチイベントに基づいてジェスチャーイベントを決定する。ジェスチャーイベント決定部７７は、タッチイベント生成部７５から第１のタッチイベントと第２のタッチイベントの２つが同時に入力される場合、第１のタッチイベントに対して連続して入力される複数のタッチイベントの第１の組と、第２のタッチイベントに対して連続して入力される複数のタッチイベントの第２の組と、に基づいてジェスチャーイベントを決定する。ジェスチャーイベント決定部７７は、決定されたジェスチャーイベントを処理特定部７９に出力する。第１の組に含まれる複数のタッチイベントは、位置情報が同じか、または位置情報が連続している。第２の組に含まれる複数のタッチイベントは、位置情報が同じか、または位置情報が連続している。このため、ジェスチャーイベント決定部７７は、同時に入力される複数のタッチイベントが、第１の組と第２の組のいずれに属するかを、それらに含まれる位置情報で判断する。
【００６７】
ジェスチャーイベント決定部７７は、タッチイベント生成部７５から連続してタッチイベントが入力される場合、最初に入力されるタッチイベントの状態は「開始」である。そして、ジェスチャーイベント決定部７７は、状態が「更新」のタッチイベントが入力されると、状態が「開始」のタッチイベントの位置情報と、状態が「更新」のタッチイベントの位置情報とから２点間の距離を算出し、距離が所定のしきい値Ｔ以上ならばユーザーによるフリック操作を検出し、距離が所定のしきい値Ｔより短ければユーザーによるスワイプ操作を検出する。また、複数のタッチイベントが入力される場合は、最初の複数のタッチイベントによってユーザーによるスワイプ操作が検出され、後の複数のタッチイベントによってユーザーによるフリック操作が検出される場合がある。ジェスチャーイベント決定部７７は、スワイプ操作およびフリック操作を検出する場合、最初の位置情報で特定される位置から後の位置情報で特定される位置に向かう方向を算出し、表示部１６１の表示面を基準に上下左右の４方向のうち算出された方向に最も近い方向をパラメータとし、ジェスチャー識別情報とパラメータとを処理特定部７９に出力する。スワイプ操作を検出する場合には、ジェスチャー識別情報「スワイプ」とパラメータとを処理特定部７９に出力し、フリック操作を検出する場合には、ジェスチャー識別情報「フリック」とパラメータとを処理特定部７９に出力する。
【００６８】
ジェスチャーイベント決定部７７は、タッチイベント生成部７５から同時に２つのタッチイベントが入力される場合、最初に入力される２つのタッチイベントそれぞれの状態は「開始」である。この場合に、２つのタッチイベントそれぞれに含まれる位置情報に基づいて、２点間の距離Ｌ１および２点間を結ぶ直線の角度Ｒ１を算出する。２点間を結ぶ直線の角度は、表示部１６１の横方向を基準線として、２点間を結ぶ直線が基準線となす角度とすればよい。２点間を結ぶ直線と基準線とのなす角度は、基準線から時計回りになす角度である。そして、ジェスチャーイベント決定部７７は、その後に連続して入力される２つのタッチイベントの位置情報に基づいて、２点間の距離Ｌ２および２点間を結ぶ直線の角度Ｒ２を算出する。
【００６９】
ジェスチャーイベント決定部７７は、角度Ｒ１と角度Ｒ２とが同じで、かつ、距離Ｌ２と距離Ｌ１と異なれば、ユーザーによるピンチアウト操作またはピンチイン操作を検出する。角度Ｒ１と角度Ｒ２とが同じとは、角度Ｒ１と角度Ｒ２との差が所定の範囲内の場合を含む。ユーザーの指の動きを検出するために、誤差を含む。距離Ｌ２が距離Ｌ１より大きければピンチアウト操作を検出し、距離Ｌ２が距離Ｌ１より小さければピンチイン操作を検出する。ジェスチャーイベント決定部７７は、ピンチアウト操作またはピンチイン操作を検出する場合、距離Ｌ２を距離Ｌ１で除算することによって倍率を算出し、算出された倍率をパラメータとし、ジェスチャー識別情報とパラメータとを処理特定部７９に出力する。ピンチアウト操作を検出する場合には、ジェスチャー識別情報「ピンチアウト」とパラメータとを処理特定部７９に出力し、ピンチイン操作を検出する場合には、ジェスチャー識別情報「ピンチイン」とパラメータとを処理特定部７９に出力する。
【００７０】
ジェスチャーイベント決定部７７は、角度Ｒ１と角度Ｒ２とが異なる場合、ユーザーによるローテーション操作を検出する。角度Ｒ１と角度Ｒ２とが異なるとは、角度Ｒ１と角度Ｒ２との差が所定の範囲外の場合である。ユーザーの指の動きを検出するために、誤差を含む。ジェスチャーイベント決定部７７は、ローテーション操作を検出する場合、角度Ｒ２から角度Ｒ１を減算することによって回転方向を決定し、決定された回転方向をパラメータとし、ジェスチャー識別情報「ローテーション」とパラメータとを処理特定部７９に出力する。角度Ｒ２から角度Ｒ１を減算した値がプラスならば回転方向は時計回りであり、角度Ｒ２から角度Ｒ１を減算した値がマイナスならば回転方向は反時計回りである。
【００７１】
＜タッチイベント生成部の変形例＞
なお、オペレーティング部５７が、マウスイベントを出力することなく、位置情報のみを出力する場合がある。タッチイベント生成部７５は、オペレーティング部５７からマウスイベントが出力されない場合、オペレーティング部５７が出力する位置情報に基づいてタッチイベントを生成する。タッチイベント生成部７５は、オペレーティング部５７に所定時間間隔で位置情報の出力要求を出力し、オペレーティング部５７から所定時間間隔で位置情報を取得する。オペレーティング部５７は、タッチイベント生成部７５から出力要求が入力されると、タッチパネル１６５がユーザーにより指示されている場合には、ユーザーにより指示されている位置を示す位置情報を出力するが、タッチパネル１６５がユーザーにより指示されていない場合には、位置情報を出力しない。
【００７２】
タッチイベント生成部７５は、状態検出部７６を含む。状態検出部７６は、オペレーティング部５７から所定時間間隔で入力される位置情報の状態を検出する。具体的には、状態検出部７６は、オペレーティング部５７から第１の時に入力される位置情報と、第１の時よりも所定時間後の第２の時に入力される位置情報とに基づいて、位置情報の状態を決定する。状態検出部７６は、第１の時に入力される位置情報で特定される位置が、第２の時に入力される位置情報で特定される位置から所定の距離の範囲内に存在しない場合には、第２の時に入力される位置情報の状態を「開始」に決定する。また、状態検出部７６は、第１の時に入力される位置情報で特定される位置が、第２の時に入力される位置情報で特定される位置から所定の距離の範囲内に存在する場合には、第２の時に入力される位置情報の状態を「更新」に決定する。さらに、状態検出部７６は、第１の時に入力される位置情報で特定される位置から所定の距離の範囲内の位置情報が、第２の時に入力されない場合には、第２の時において第１の時に入力されていた位置情報の状態を「終了」に決定する。状態検出部７６は、オペレーティング部５７から複数の位置情報が入力される場合、複数の位置情報それぞれに対して状態を決定する。
【００７３】
タッチイベント生成部７５は、オペレーティング部５７から位置情報が入力される場合、その位置情報に対して状態検出部７６によって検出された状態と位置情報との組からなるタッチイベントを生成する。具体的には、状態検出部７６により第２の時に、第２の時に入力される位置情報の状態が「開始」に決定される場合、第２の時に入力される位置情報と状態「開始」とを含むタッチイベントを生成する。状態検出部７６により第２の時に、第２の時に入力される位置情報の状態が「更新」に決定される場合、第２の時に入力される位置情報と状態「更新」とを含むタッチイベントを生成する。状態検出部７６により第２の時に、第１の時に入力されていた位置情報の状態が「終了」に決定される場合、第１の時に入力されていた位置情報と状態「終了」とを含むタッチイベントを生成する。
【００７４】
タッチイベント生成部７５は、オペレーティング部５７から複数の位置情報が入力される場合、複数の位置情報それぞれに対応する複数のタッチイベントを生成する。タッチイベント生成部７５は、１以上のタッチイベントを生成する場合、生成された１以上のタッチイベントをジェスチャーイベント決定部７７に出力する。
【００７５】
ユーザーがタッチパネル１６５を指示する操作は、ユーザーがタッチパネル１６５の任意の位置を指示する指示開始操作、ユーザーがタッチパネル１６５を指示しながら、換言すれば、タッチパネルに触れながら位置を移動させる移動操作、ユーザーがタッチパネル１６５の指示を終了する終了操作、を含む。位置情報の状態「開始」を含むタッチイベントは、指示開始操作を示す。位置情報の状態「更新」を含むタッチイベントは、移動操作を示す。位置情報の状態「終了」を含むタッチイベントは、終了操作を示す。
【００７６】
関連付部７１は、アプリケーションプログラムがインストールされる段階で、アプリケーションプログラムが定める複数種類の処理それぞれを、複数のジェスチャーイベントのいずれかと関連付ける。ＨＤＤ１１５には、マスターテーブル９５が予め記憶されている。マスターテーブル９５は、複数の処理識別情報それぞれに、ジェスチャーイベントの複数を予め関連付ける。
【００７７】
図６は、マスターテーブルの一例を示す図である。図６を参照して、マスターテーブル９５は、複数の処理識別情報ごとにマスターレコードを含む。マスターレコードは、処理の項目と、ジェスチャーの項目と、を含む。処理の項目には、処理識別情報が設定され、ジェスチャーの項目には、ジェスチャーイベントを識別するためのジェスチャー識別情報が設定される。このため、新しいアプリケーションプログラムが開発され、そのアプリケーションプログラムが、マスターテーブル９５に含まれる複数の処理識別情報とは別の新たな処理識別情報を含む場合には、マスターテーブル９５が新たな処理識別情報を含むマスターレコードを含むように更新される。
【００７８】
例えば、処理の項目に処理識別情報「スクロール」が設定されたマスターレコードは、ジェスチャーの項目にジェスチャー識別情報「スワイプ」が設定される。処理識別情報「スクロール」で特定される処理は、画面を上下左右にスクロールさせる処理である。ジェスチャー識別情報「スワイプ」で特定されるジェスチャーイベントは、タッチパネル１６５を指示しながら、上下左右のいずれかに指を所定の速さより遅い速さで移動させるユーザーの操作に対応する。指を所定の速さより遅い速さで移動させる操作は、指を移動させる方向が定まるため、ジェスチャー識別情報「スワイプ」で特定されるジェスチャーイベントは、指を移動させる方向をパラメータに含む。
【００７９】
処理の項目に処理識別情報「拡大」が設定されたマスターレコードは、ジェスチャーの項目にジェスチャー識別情報「ピンチアウト」が設定される。処理識別情報「拡大」で特定される処理は、画面を拡大して表示させる処理である。ジェスチャー識別情報「ピンチアウト」で特定されるジェスチャーイベントは、タッチパネル１６５の２箇所を指示しながら、指示した２個所の少なくとも一方を、２箇所の間隔が長くなるように移動させる操作に対応する。２箇所の間隔が長くなるように移動させる操作は、２箇所の間隔が変化するため、ジェスチャー識別情報「ピンチアウト」で特定されるジェスチャーイベントは、２箇所の間隔が変化の割合を倍率としたパラメータに含む。
【００８０】
処理の項目に処理識別情報「縮小」が設定されたマスターレコードは、ジェスチャーの項目にジェスチャー識別情報「ピンチイン」が設定される。処理識別情報「縮小」で特定される処理は、画面を縮小して表示させる処理である。ジェスチャー識別情報「ピンチイン」で特定されるジェスチャーイベントは、タッチパネル１６５の２箇所を指示しながら、指示した２個所の少なくとも一方を、２箇所の間隔が短くなるように移動させる操作に対応する。２箇所の間隔が短くなるように移動させる操作は、２箇所の間隔が変化するため、ジェスチャー識別情報「ピンチイン」で特定されるジェスチャーイベントは、２箇所の間隔が変化の割合を倍率としたパラメータに含む。
【００８１】
処理の項目に処理識別情報「回転」が設定されたマスターレコードは、ジェスチャーの項目にジェスチャー識別情報「ローテーション」が設定される。処理識別情報「回転」で特定される処理は、画面を回転して画面の方向を変更する処理である。ジェスチャー識別情報「ローテーション」で特定されるジェスチャーイベントは、タッチパネル１６５の２箇所を指示しながら、指示した２個所の少なくとも一方を、２箇所を結ぶ直線の向きが変更されるように移動させる操作が入力される場合に検出される。例えば、２箇所の一方を中心に他方で円弧を描く操作である。円弧を描く方向が時計回りと反時計回りとがあるため、ジェスチャー識別情報「ローテーション」で特定されるジェスチャーイベントは、時計回りと反時計回りのいずれかを方向としたパラメータに含む。
【００８２】
処理の項目に処理識別情報「ページ送り」が設定されたマスターレコードは、ジェスチャーの項目にジェスチャー識別情報「フリック」が設定される。処理識別情報「ページ送り」で特定される処理は、画面を次のページの画面に変更して表示させる処理である。ジェスチャー識別情報「フリック」で特定されるジェスチャーイベントは、タッチパネル１６５を指示しながら、上下左右のいずれかに指をスワイプのジェスチャーイベントの操作におけるしきい値以上の速さで移動させる操作に対応する。指をしきい値以上の速さで移動させる操作は、指を移動させる方向が定まるため、ジェスチャー識別情報「フリック」で特定されるジェスチャーイベントは、指を移動させる方向をパラメータに含む。
【００８３】
図５に戻って、関連付部７１は、選択部８３を含む。選択部８３は、ＨＤＤ１１５に記憶されているマスターテーブル９５を読み出す。具体的には、マスターテーブル９５を読み出すためのオペレーティングコマンドをオペレーティング部５７に出力し、オペレーティング部５７がＨＤＤ１１５を制御して読み出すマスターテーブル９５を取得する。選択部８３は、アプリケーションプログラムがインストールされる段階で、マスターテーブル９５を参照して、アプリケーションプログラムが定める複数種類の処理のうちから標準化対象処理を特定し、特定された標準化対象処理それぞれの処理識別情報に対して、マスターテーブル９５によって関連付けられたジェスチャーイベントを選択する。標準化対象処理は、アプリケーションプログラムが定める複数種類の処理のうちで、その処理を起動させるトリガーとなるイベントが、マスターテーブル９５に定義されたジェスチャーイベントを定める複数のマウスイベントの組の発生とは異なるイベントとしてアプリケーションプログラムによって定められている処理である。例えば、アプリケーションプログラムが、マルチタッチのタッチパネル１６５に対応しておらず、シングルタッチのタッチパネルに対応している場合であって、拡大処理、縮小処理および回転処理を定めている場合を例に説明する。この場合は、拡大処理、縮小処理および回転処理を起動させるトリガーとなるイベントは、拡大処理、縮小処理および回転処理それぞれに対応する設定画面における操作または予め定められた操作ボタンを指示する操作を受け付けるイベントの場合がある。このため、拡大処理、縮小処理および回転処理それぞれを起動させるトリガーとなるイベントは、マスターテーブル９５に定義されたジェスチャー識別情報「ピンチアウト」、「ピンチイン」および「ローテーション」のジェスチャーイベントを定める複数のマウスイベントの組の発生とは異なるイベントとしてアプリケーションプログラムによって定められる。
【００８４】
また、アプリケーションプログラムによってスクロール処理が定められているが、そのスクロール処理を起動させるトリガーとなるイベントは、スクロールバーを移動させるタッチイベントの場合がある。このため、スクロール処理を起動させるトリガーとなるイベントは、マスターテーブル９５に定義されたジェスチャー識別情報「スワイプ」のジェスチャーイベントを定める複数のマウスイベントの組の発生とは異なるイベントとしてアプリケーションプログラムによって定められる。
【００８５】
関連付部７１は、選択部８３によって特定された標準化対象処理それぞれの処理識別情報と、その処理識別情報に対して選択部８３によって選択されたジェスチャーイベントとを関連付けた変換レコードを生成し、変換テーブルに追加する。
【００８６】
関連付部７１は、アプリケーションプログラムに対して生成された変換テーブルをアプリケーションプログラムと関連付けてＨＤＤ１１５に記憶する。具体的には、関連付部７１は、第１アプリケーションプログラムがインストールされる段階で、第１アプリケーションプログラムに対応する第１変換テーブル９１を生成し、ＨＤＤ１１５に記憶する。また、関連付部７１は、第２アプリケーションプログラムがインストールされる段階で、第２アプリケーションプログラムに対応する第２変換テーブル９３を生成し、ＨＤＤ１１５に記憶する。具体的には、第１変換テーブル９１または第２変換テーブル９３を記憶するためのオペレーティングコマンドをオペレーティング部５７に出力し、オペレーティング部５７がＨＤＤ１１５を制御して第１変換テーブル９１または第２変換テーブル９３を記憶する。
【００８７】
図７は、第１変換テーブルの一例を示す図である。図７を参照して、第１変換テーブル９１は、ＭＦＰ１００に第１アプリケーションプログラムがインストールされる段階で生成され、第１アプリケーションプログラムにより定められる複数種類の標準化対象処理それぞれに対応する変換レコードを含む。変換レコードは、処理の項目と、ジェスチャーイベントの項目と、を含む。処理の項目には、第１アプリケーションプログラムにより定められる複数種類の標準化対象処理を識別するための処理識別情報が設定される。ジェスチャーイベントの項目は、ジェスチャーイベントを識別するためのジェスチャー識別情報が設定される。
【００８８】
ここでは、第１アプリケーションプログラムにより定められる複数種類の標準化対象処理の処理識別情報を、「スクロール」、「拡大」、「縮小」、「回転」、「ページ送り」としている。図６に示したマスターテーブル９５は、１つの処理識別情報に対して１つのジェスチャー識別情報を関連付けているので、処理識別情報「スクロール」に対してジェスチャー識別情報「スワイプ」が関連付けられ、処理識別情報「拡大」に対してジェスチャー識別情報「ピンチアウト」が関連付けられ、処理識別情報「縮小」に対してジェスチャー識別情報「ピンチイン」が関連付けられ、処理識別情報「回転」に対してジェスチャー識別情報「ローテーション」が関連付けられ、処理識別情報「ページ送り」に対してジェスチャー識別情報「フリック」が関連付けられる。
【００８９】
図８は、第２変換テーブルの一例を示す図である。図８を参照して、第２変換テーブル９３は、ＭＦＰ１００に第２アプリケーションプログラムがインストールされる段階で生成され、第２アプリケーションプログラムにより定められる複数種類の標準化対象処理それぞれに対応する変換レコードを含む。変換レコードは、処理の項目と、ジェスチャーイベントの項目と、を含む。処理の項目には、第１アプリケーションプログラムにより定められる複数種類の標準化対象処理を識別するための処理識別情報が設定される。ジェスチャーイベントの項目は、ジェスチャーイベントを識別するためのジェスチャー識別情報が設定される。
【００９０】
ここでは、第１アプリケーションプログラムにより定められる複数種類の標準化対象処理の処理識別情報を、「スクロール」、「ページ送り」としている。図５に示したマスターテーブル９５は、１つの処理識別情報に対して１つのジェスチャー識別情報を関連付けているので、処理識別情報「スクロール」に対してジェスチャー識別情報「スワイプ」が関連付けられ、処理識別情報「ページ送り」に対してジェスチャー識別情報「フリック」が関連付けられる。
【００９１】
したがって、第１アプリケーションプログラムがマルチタッチのタッチパネルに対応していない場合、または、第１アプリケーションプログラムにより定まる複数種類の標準化対象処理、または第２アプリケーションプログラムによって定まる複数種類の標準化対象処理が、例えば、画面中のスクロールバーを指示する操作、または、ハードキー部１６７が備える複数のハードキーを押下する操作によって実行される場合であっても、第１アプリケーションプログラムにより定まる複数種類の標準化対象処理、または第２アプリケーションプログラムによって定まる複数種類の標準化対象処理に対して、タッチパネル１６５に入力する操作を関連付けることができる。
【００９２】
図５に戻って、処理特定部７９は、タッチイベント生成部７５からタッチイベントが入力され、ジェスチャーイベント決定部７７からジェスチャーイベントが入力される場合がある。処理特定部７９は、ＨＤＤ１１５に記憶されている第１変換テーブル９１および第２変換テーブル９３のうち、調停部５３によって設定されているカレントタスクのアプリ識別情報に対応するものを読み出す。処理特定部７９は、調停部５３によってカレントタスクが第１アプリ実行部６１に設定されている場合は、第１変換テーブル９１を読出し、カレントタスクが第２アプリ実行部６３に設定されている場合は、第２変換テーブル９３を読出す。具体的には、第１変換テーブル９１または第２変換テーブル９３を読み出すためのオペレーティングコマンドをオペレーティング部５７に出力し、オペレーティング部５７がＨＤＤ１１５を制御して読み出す第１変換テーブル９１または第２変換テーブル９３を取得する。以下、第１アプリ実行部６１がカレントタスクの場合について説明する。
【００９３】
処理特定部７９は、ジェスチャーイベント決定部７７からジェスチャーイベントが入力されることに応じて、ジェスチャーイベントに基づいて、複数種類の処理のうちから調停部５３によってカレント状態に設定されているアプリケーションプログラムに対応して関連付けられた処理を特定する。ここでは、調停部５３によって第１アプリケーションプログラムを実行する第１アプリ実行部６１がカレント状態に設定されているので、処理特定部７９は、ジェスチャーイベント決定部７７から入力されるジェスチャーイベントと、第１変換テーブル９１によって関連付けられた処理を特定する。より具体的には、処理特定部７９は、ジェスチャーイベント決定部７７から入力されるジェスチャーイベントのジェスチャー識別情報がジェスチャーの項目に設定された変換レコードを、第１変換テーブル９１から抽出し、抽出された変換レコードの処理の項目に設定されている処理識別情報を取得する。処理特定部７９は、取得された処理識別情報を、操作通知部８１に出力する。なお、ジェスチャーイベントは、位置情報とパラメータとを含むので、処理識別情報とともに、位置情報とパラメータとを出力する。
【００９４】
処理特定部７９は、ジェスチャーイベント決定部７７からジェスチャーイベントが入力されない場合、タッチイベント生成部７５から入力される複数のタッチイベントを操作通知部８１に出力する。
【００９５】
操作通知部８１は、処理特定部７９から処理識別情報または複数のタッチイベントが入力される。操作通知部８１は、ジェスチャーイベント決定部７７からジェスチャーイベントが入力される場合、カレントタスクに、処理特定部７９から入力される処理識別情報を出力する。具体的には、処理識別情報で特定される処理を実行させるためのアプリコマンドを生成し、アプリコマンドをカレントタスク、ここでは、第１アプリ実行部６１への出力を、調停部５３に依頼する。これにより、第１アプリ実行部６１は、処理識別情報で特定される処理を実行する。このため、タッチパネル１６５に入力される操作であって、複数のタッチイベントの組で特定される操作（ジェスチャーイベント）を、第１アプリケーションプログラムを実行する第１アプリ実行部６１に実行させることができる。換言すれば、第１アプリケーションプログラムを開発する段階で、ＭＦＰ１００においてタッチパネル１６５で受け付け可能な操作（複数のタッチイベントの組で特定されるジェスチャーイベント）を意識することなく開発することができる。たとえば、タッチパネル１６５が、同時に複数の位置を検出可能か否かを考量することなく、第１アプリケーションプログラムを開発することができる。さらに、タッチパネル１６５は、同時に複数の位置を検出可能なマルチタッチ型であるが、マルチタッチ型のタッチパネル１６５に対応していない第１アプリケーションプログラムをインストールする場合であっても、タッチパネル１６５に同時に複数の位置を入力する操作、例えば、ピンチアウト、ピンチイン、ローテーションの操作が入力される場合に、その操作に対応する処理を、第１アプリ実行部６１に実行させることができる。
【００９６】
操作通知部８１は、ジェスチャーイベント決定部７７からジェスチャーイベントが入力されない場合、カレントタスクに、処理特定部７９から入力される複数のタッチイベントを操作識別情報として出力する。第１アプリケーションプログラムまたは第２アプリケーションプログラムが、複数のタッチイベントで定まる操作に対応しているからである。このため、第２アプリケーションプログラムが、マルチタッチ型のタッチパネル１６５で受け付けられる操作に対応している場合であっても、第２アプリケーションプログラムをインストールすることができる。
【００９７】
図９は、ジェスチャーイベント決定処理の流れの一例を示すフローチャートである。ジェスチャーイベント決定処理は、ＭＦＰ１００が備えるＣＰＵ１１１が、ＲＯＭ１１３、ＨＤＤ１１５またはＣＤ−ＲＯＭ１１８に記憶された操作標準化プログラムを実行することにより、ＣＰＵ１１１により実行される処理である。図９を参照して、ＣＰＵ１１１は、タッチイベントが入力されたか否かを判断する（ステップＳ０１）。ユーザーがタッチパネル１６５を指示すれば、タッチパネル１６５により検出された位置に基づいてタッチイベントが検出される。タッチイベントが検出されるまで待機状態となり（ステップＳ０１でＮＯ）、タッチイベントが検出されたたならば（ステップＳ０１でＹＥＳ）、処理をステップＳ０２に進める。
【００９８】
ステップＳ０２においては、検出されたタッチイベントが単数か否かを判断する。単数のタッチイベントが検出されたならば処理をステップＳ０３に進めるが、複数のタッチイベントが検出されたならば処理をステップＳ１３に進める。
【００９９】
ステップＳ０３においてはタッチイベントの状態によって処理を分岐させる。タッチイベントの状態が開始ならば処理をステップＳ０１に戻し、更新ならば処理をステップＳ０４に進め、終了ならば処理をステップＳ０９に進める。処理がステップＳ０４に進む場合、タッチイベントの状態が更新の場合であり、そのタッチイベントの直前に別のタッチイベントが入力されている。別のタッチイベントの状態は、開始の場合と、更新の場合とがある。ステップＳ０４においては、指示方向を決定する。直前に入力された別のタッチイベントに含まれる位置情報で特定される位置からステップＳ０１において検出されたタッチイベントに含まれる位置情報で特定される位置に向かう方法を決定する。ここで決定する方向は、表示部１６１の表示面を基準にした上下左右の４方向のうち最も近い方向である。
【０１００】
次のステップＳ０５においては、指示距離Ｌを算出する。直前に入力された別のタッチイベントに含まれる位置情報で特定される位置とステップＳ０１において検出されたタッチイベントに含まれる位置情報で特定される位置との間の距離を指示距離Ｌとして算出する。そして、指示距離Ｌがしきい値ＴＨ以上か否かを判断する（ステップＳ０６）。指示距離Ｌがしきい値ＴＨ以上ならば処理をステップＳ０７に進めるが、そうでなければ処理をステップＳ０８に進める。
【０１０１】
ステップＳ０７においては、ジェスチャーイベントをフリックの決定し、処理をステップＳ０１に戻す。ステップＳ０８においては、ジェスチャーイベントをスワイプに決定し、処理をステップＳ０１に戻す。
【０１０２】
処理がステップＳ０９に進む場合、ステップＳ０１において検出されたタッチイベントの状態が終了である。タッチイベントの状態が終了の場合、そのタッチイベントの直前に別のタッチイベントが入力されている。別のタッチイベントの状態は、開始の場合と、更新の場合とがある。ステップＳ０９においては、直前に入力された別のタッチイベントの状態によって処理を分岐させる。直前に入力された別のタッチイベントの状態が開始ならば処理をステップＳ１０に進めるが、そうでなければ処理をステップＳ０１に戻す。
【０１０３】
ステップＳ１０においては、ステップＳ０１において検出されたタッチイベントに含まれる位置情報と同じ位置情報がＲＡＭ１１４に記憶されているか否かを判断する。ＲＡＭ１１４に記憶されているならば処理をステップＳ１１に進めるが、そうでなければ処理をステップＳ１２に進める。なお、ここでいう同じ位置情報とは、２つの位置情報でそれぞれ特定される２つの位置の間の距離が所定の長さ以内である場合を含む。ユーザーが同じ位置を指示する操作を検出するために、誤差を含む。
【０１０４】
ステップＳ１２においては、ステップＳ０１において検出されたタッチイベントに含まれる位置情報をＲＡＭ１１４に一時記憶し、処理をステップＳ０１に戻す。処理がステップＳ１２に進む場合は、直前に入力されたタッチイベントの状態が開始で、次に入力されるタッチイベントの状態が終了の場合であり、かつ、ＲＡＭ１１４に同じ位置情報が記憶されていない場合である。換言すれば、ユーザーが最初のタップ操作を入力する場合である。
【０１０５】
ステップＳ１１においては、ジェスチャーイベントをダブルタップに決定し、処理をステップＳ０１に戻す。処理がステップＳ１１に進む場合は、直前に入力されたタッチイベントの状態が開始で、ステップＳ０１において入力されるタッチイベントの状態が終了の場合であり、かつ、ＲＡＭ１１４に同じ位置情報が記憶されている場合である。換言すれば、ユーザーが最初のタップ操作を入力した後に、最初のタップ操作と同じ位置をタップ操作する場合である。
【０１０６】
処理がステップＳ１３に進む場合は、２つのタッチイベントが検出される場合である。ステップＳ１３においては、２つのタッチイベントの少なくとも一方の状態が更新か否かを判断する。２つのタッチイベントの少なくとも一方の状態が更新ならば処理をステップＳ１４に進めるが、そうでなければ処理をステップＳ０１に戻す。
【０１０７】
ステップＳ１４においては、角度を算出する。表示部１６１の表示面の所定の基準辺を基準に、２つのタッチイベントそれぞれに含まれる位置情報で特定される２つの位置を結ぶ直線が基準辺となす角度を算出する。次のステップＳ１５においては、ステップＳ１４において算出された角度に変化があるか否かを判断する。ステップＳ１４において算出された角度が、直前に入力された別の２つのタッチイベントに基づいて算出された角度との差が所定の角度以上であれば、角度が変化したと判断する。角度が変化したならば処理をステップＳ１６に進めるが、そうでなければ処理をステップＳ１７に進める。ステップＳ１６においては、ジェスチャーイベントをローテーションに決定し、処理をステップＳ０１に戻す。
【０１０８】
ステップＳ１７においては、距離を算出する。２つのタッチイベントそれぞれに含まれる位置情報で特定される２つの位置の間の距離を算出する。次のステップＳ１８においては、ステップＳ１４において算出された距離に変化があるか否かを判断する。ステップＳ１８において算出された距離と、直前に入力された別の２つのタッチイベントに基づいて算出された距離との差が所定の長さ以上であれば、距離が変化したと判断する。距離が変化したならば処理をステップＳ１９に進めるが、そうでなければ処理をステップＳ０１に戻す。
【０１０９】
ステップＳ１９においては、倍率を決定する。ステップＳ１８において算出された距離を、直前に入力された別の２つのタッチイベントに基づいて算出された距離で除算した値を倍率に決定する。そして、倍率が１より大きければ処理をステップＳ２１に進めるが、そうでなければ処理をステップＳ２２に進める。
【０１１０】
ステップＳ２１においては、ジェスチャーイベントをピンチアウトに決定し、処理をステップＳ０１に戻す。ステップＳ２２においては、ジェスチャーイベントをピンチインに決定し、処理をステップＳ０１に戻す。
【０１１１】
図１０は、操作通知処理の流れの一例を示すフローチャートである。操作通知処理は、ＭＦＰ１００が備えるＣＰＵ１１１が、ＲＯＭ１１３、ＨＤＤ１１５またはＣＤ−ＲＯＭ１１８に記憶された操作標準化プログラムを実行することにより、ＣＰＵ１１１により実行される処理である。図１０を参照して、ＣＰＵ１１１は、カレントタスクを特定する（ステップＳ３１）。第１アプリケーションプログラムを実行するタクスと、第２アプリケーションプログラムを実行するタスクと、のうちいずれがカレントタスクかを特定する。以下の説明では、第１アプリケーションプログラムを実行するタスクが、カレントタスクに特定された場合について説明する。
【０１１２】
ステップＳ３２においては、変換テーブルを読み出す。ステップＳ３１においてカレントタスクに特定されたタスクが実行するアプリケーションプログラムに関連付けられた変換テーブルを読み出す。ここでは、第１アプリケーションプログラムを実行するタスクをカレントタスクとしているので、ＨＤＤ１１５から第１アプリケーションプログラムに関連付けられた第１変換テーブル９１を読み出す。
【０１１３】
次のステップＳ３３においては、ジェスチェーイベントが検出されたか否かを判断する。ＣＰＵ１１１が、図９に示したジェスチャーイベント決定処理を実行することにより、ジェスチャーイベントが検出される場合がある。ジェスチャーイベントが検出されたならば処理をステップＳ３４に進めるが、そうでなければ処理をステップＳ３６に進める。
【０１１４】
ステップＳ３４においては、ジェスチャーイベントに対応する標準化対象処理が存在するか否かを判断する。ステップＳ３２において読み出された第１変換テーブル９１に含まれる変換レコードのうちに、ステップＳ３３において検出されたジェスチャーイベントのジェスチャー識別情報が、ジェスチャーの項目に設定されている変換レコードを抽出する。そのような変換レコードを抽出したならば、ジェスチャーイベントに対応する標準化対象処理が存在すると判断する。標準化対象処理が存在するならば処理をステップＳ３５に進めるが、そうでなければ処理をステップＳ３７に進める。
【０１１５】
次のステップＳ３５においては、標準化対象処理の処理識別情報をステップＳ３１において特定されたカレントタスクに出力し、処理をステップＳ３８に進める。具体的には、ステップＳ３４において抽出された変換レコードの処理の項目に設定されている処理識別情報を標準化対象処理の処理識別情報とし、標準化対象処理の処理識別情報を含むアプリコマンドを生成し、生成したアプリコマンドを第１アプリケーションプログラムを実行するカレントタスクに出力する。
【０１１６】
処理がステップＳ３６に進む場合、ジェスチャーイベントが検出されない場合である。ステップＳ３６においては、タッチイベントが検出されたか否かを判断する。ここで検出されるタッチイベントは、ジェスチャーイベントが検出されない場合に検出されるタッチイベントである。例えば、ユーザーがタップする操作を入力する場合には、タップする操作により検出される状態が開始のタッチイベントと、状態が終了のタッチイベントとが検出される。タッチイベントが検出されたならば処理をステップＳ３７に進めるが、そうでなければ処理をステップＳ３８に進める。
【０１１７】
ステップＳ３７においては、ステップＳ３６において検出されたタッチイベント、またはステップＳ３３において検出されたジェスチャーイベントを構成する複数のタッチイベントをステップＳ３１において特定されたカレントタスク、ここでは、第１アプリケーションプログラムを実行するタスクに出力し、処理をステップＳ３８に進める。
【０１１８】
ステップＳ３８においては、カレントタスクが終了したか否かを判断する。ステップＳ３１において特定されたカレントタスクが終了したならば処理を終了するが、そうでなければ処理をステップＳ３３に戻す。
【０１１９】
以上説明したように、本実施の形態におけるＭＦＰ１００は、第１アプリケーションプログラムがインストールされる段階で、第１アプリケーションプログラムが定める複数種類の処理それぞれが複数のジェスチャーイベントのいずれかと関連付けた第１変換テーブル９１と、第２アプリケーションプログラムがインストールされる段階で、第２アプリケーションプログラムが定める複数種類の処理それぞれが複数のジェスチャーイベントのいずれかと関連付けた第２変換テーブル９３と、を記憶する。タッチパネル１６５により１以上の位置が検出されることに応じて、１以上の位置それぞれを示す位置情報を含むタッチイベントを生成し、複数のタッチイベントの組に基づいて、ジェスチャーイベントを決定し、カレントタスクが第１アプリケーションプログラムを実行する第１アプリ実行部６１の場合に第１変換テーブル９１を参照して、決定されたジェスチャーイベントと関連付けられた処理の処理識別情報を実行させ、カレントタスクが第２アプリケーションプログラムを実行する第２アプリ実行部６３の場合に第２変換テーブル９３を参照して、決定されたジェスチャーイベントと関連付けられた処理の処理識別情報を実行させる。このため、タッチパネル１６５に入力される操作を、第１または第２アプリケーションプログラムで定められる処理に関連付けることができる。このため、第１および第２アプリケーションプログラムをタッチパネル１６５で受け付け可能な操作と関係なく開発することができるので、アプリケーションプログラムの開発を容易にすることができる。
【０１２０】
また、複数のタッチイベントの組に基づいて決定されたジェスチャーイベントと、第１変換テーブル９１によって関連付けられた処理が存在しない場合には、第１アプリ実行部６１に複数のタッチイベントが出力され、複数のタッチイベントの組に基づいて決定されたジェスチャーイベントと、第２変換テーブル９３によって関連付けられた処理が存在しない場合には、第２アプリ実行部６３に複数のタッチイベントが出力される。このため、第１アプリケーションプログラムおよび第２アプリケーションプログラムが、タッチパネル１６５で受け付けられる操作に対応している場合であっても、第１アプリケーションプログラムおよび第２アプリケーションプログラムをインストールすることができる。
【０１２１】
なお、上述した実施の形態においては、画像処理装置の一例としてＭＦＰ１００について説明したが、図９および図１０に示した処理を、ＭＦＰ１００を制御するＣＰＵ１１１に実行させる操作標準化方法、また、その操作標準化方法をＣＰＵ１１１に実行させるための操作標準化プログラムとして、発明を捉えることができるのは言うまでもない。
【０１２２】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１２３】
１００  ＭＦＰ、５１  アプリケーション部、５３  調停部、５５  操作変換部、５７  オペレーティング部、６１  第１アプリ実行部、６３  第２アプリ実行部、７１  関連付部、７３  表示制御部、７５  タッチイベント生成部、７６  状態検出部、７７  ジェスチャーイベント決定部、７９  処理特定部、８１  操作通知部、９１  変換テーブル、９３  変換テーブル、９５  マスターテーブル、１１０  メイン回路、１１１  ＣＰＵ、１１２  通信Ｉ／Ｆ部、１１３  ＲＯＭ、１１４  ＲＡＭ、１１５  ＨＤＤ、１１６  ファクシミリ部、１１７  外部記憶装置、１２０  自動原稿搬送装置、１３０  原稿読取部、１４０  画像形成部、１５０  給紙部、１６０  操作パネル、１６１  表示部、１６３  操作部、１６５  タッチパネル、１６７  ハードキー部。
【図１】
2014059817.tif 000003
【図２】
2014059817.tif 000004
【図３】
2014059817.tif 000005
【図４】
2014059817.tif 000006
【図５】
2014059817.tif 000007
【図６】
2014059817.tif 000008
【図７】
2014059817.tif 000009
【図８】
2014059817.tif 000010
【図９】
2014059817.tif 000011
【図１０】
2014059817.tif 000012