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