以下、本発明に関する好ましい実施形態について図面を参照しつつ詳細に説明する。尚、以下に説明する実施形態において互いに共通する部材には同一符号を付しており、それらについての重複する説明は省略する。
図1は、本実施形態における画像処理装置1の外観構成の一例を示す図である。この画像処理装置1は、MFP(Multifunction Peripheral)によって構成され、スキャン機能やプリント機能、コピー機能、FAX機能、ネットワーク機能、電子メール送受信機能などの様々な機能を備えており、ユーザーによって指定されたジョブを実行する。この画像処理装置1は、装置本体の上部に、スキャンジョブを実行するときに動作するスキャナ部2を備えている。スキャナ部2は、原稿の画像を光学的に読み取る画像読取部2aと、画像読取部2aに対して原稿を1枚ずつ自動搬送する原稿搬送部2bとを備えて構成され、ユーザーによってセットされた原稿を読み取って画像データを生成する。また画像処理装置1は、装置本体の中央下部に、プリントジョブを実行するときに動作するプリンタ部3を備えている。プリンタ部3は、入力する画像データに基づいて電子写真方式などによる画像形成を行って出力する画像形成部3aと、その画像形成部3aに対して印刷用紙などのシート材を1枚ずつ給紙搬送する給紙搬送部3bとを備えて構成され、ユーザーによって指定された画像データに基づいて印刷出力を行う。
また画像処理装置1の正面側には、ユーザーが画像処理装置1を使用する際にユーザーインタフェースとして機能する操作パネル4が設けられている。この操作パネル4は、ユーザーに対して各種情報を表示する表示部5と、ユーザーが操作入力を行うための操作部6とを備えている。表示部5は、例えば所定の画面サイズを有するカラー液晶ディスプレイなどで構成され、様々な表示画面を表示することができる。操作部6は、表示部5の画面上に配置されるタッチセンサ6aと、表示部5の画面周囲に配置される複数の押しボタン式の操作キー6bとを備えて構成される。したがって、ユーザーは、表示部5に表示される表示画面を参照しながら、操作部6に対して様々な入力操作を行うことにより、画像処理装置1に対してジョブの実行のための設定操作を行ったり、或いはジョブの実行を指示したりすることができる。
表示部5の画面上に配置されるタッチセンサ6aは、ユーザーによるシングルタッチ操作だけでなく、マルチタッチ操作も検知することができるものである。シングルタッチ操作とは、表示部5の表示画面上の1点をタッチする操作であり、例えばシングルタップやダブルタップ、ロングタップ、フリック、ドラッグなどの操作が含まれる。マルチタッチ操作は、表示部5の表示画面上の複数点を同時にタッチする操作であり、例えばピンチインやピントアウトなどのピンチ操作やローテーション操作などが含まれる。このタッチセンサ6aは、表示部5の表示画面上における少なくとも1点がタップされると、そのタップ位置を特定することができると共に、その後、そのタップ状態のリリースや、タップ位置の移動を検知することができるようになっている。そのため、ユーザーは、表示部5の表示画面に対して様々なジェスチャ操作を行いながらジョブの設定などを行うことが可能である。
尚、表示部5の画面周囲に配置される操作キー6bは、0から9の数字が付されたテンキーなどで構成される。それらの操作キー6bは、単にユーザーによる押し込み操作だけを検知するものである。
図2は、画像処理装置1のハードウェア構成の一例を示すブロック図である。画像処理装置1は、上述したスキャナ部2、プリンタ部3、操作パネル4の他、図2に示すように、制御部10と、FAX部20と、ネットワークインタフェース21と、無線インタフェース22と、記憶装置23とを備えており、それら各部がデータバス19を介して相互にデータの入出力を行うことができる構成である。
制御部10は、図2に示す操作パネル4、スキャナ部2、プリンタ部3、FAX部20、ネットワークインタフェース21、無線インタフェース22および記憶装置23のそれぞれを統括的に制御するものである。FAX部20は、図示を省略する公衆電話回線を介してFAXデータの送受信を行うものである。ネットワークインタフェース21は、画像処理装置1をLAN(Local Area Network)などのネットワークに接続するためのインタフェースである。無線インタフェース22は、外部の装置とNFC(Near Field Communication)などによる無線通信を行うためのインタフェースである。記憶装置23は、例えばハードディスクドライブ(HDD)やソリッドステートドライブ(SSD)などで構成される不揮発性の記憶手段であり、ネットワークを介して受信する画像データや、スキャナ部2によって生成された画像データなどを一時的に保存しておくことができる。
また図2に示すように、制御部10は、CPU11と、ROM12と、SRAM14と、NVRAM15と、RTC17とを備えて構成される。CPU11は、画像処理装置1に電源が投入されることに伴い、ROM12に格納されているプログラム13を読み出して実行する。これにより、制御部10は、上述したように各部の制御動作を開始する。特に、CPU11は、画像処理装置1における動作を制御する主要部であり、ジョブの実行動作だけでなく、ユーザーインタフェースとして機能する操作パネル4の動作も制御する。すなわち、CPU11は、操作パネル4の表示部5に表示する表示画面を切り替える制御を行うと共に、タッチセンサ6a及び操作キー6bによってユーザーの入力操作が検知された場合に、その入力操作がどのような操作イベントであるかを特定し、その特定した操作イベントに対応する制御を実行する。操作イベントとは、ユーザーの入力操作によって発生するイベントであり、例えばタッチセンサ6aに対する入力操作ではシングルタップ、ダブルタップ、ロングタップ、フリック、ドラッグ、ピンチ、ローテーションといった複数の操作イベントが存在する。また操作イベントに対応する制御には、例えば表示画面を切り替える制御や、ジョブの実行を開始する制御、ジョブの実行を停止する制御などが含まれる。尚、このようなCPU11の動作については後に詳しく説明する。
SRAM14は、CPU11による作業用の記憶領域を提供するメモリであり、例えばCPU11がプログラム13を実行することによって発生する一時的なデータなどを記憶する。
NVRAM15は、バッテリバックアップされた不揮発性メモリであり、画像処理装置1における各種設定値や情報などを記憶しておくものである。このNVRAM15には、図2に示すように画面情報16が予め記憶されている。画面情報16は、操作パネル4の表示部5に表示する複数の表示画面に関する情報から成る。各表示画面の画面情報16には、ユーザーによるジェスチャ操作を受け付けるための様々な画面構成パーツが含まれている。そのような画面構成パーツには、例えばユーザーが操作可能な操作キー、各種情報のリスト表示を行うリスト表示領域、サムネイル画像を表示するサムネイル画像表示領域、プレビュー画像を表示するプレビュー表示領域などが含まれる。これらの画面構成パーツは、それぞれ異なる操作イベントを受付可能なように設定されると共に、受付可能な操作イベントに対して実行すべき処理が個別に設定されたものとなっている。このような画面構成パーツの組み合わせにより、各種表示画面の画面構成が定義され、ユーザーが様々なジェスチャ操作を行うことができる画面構成となる。そして表示部5に表示される複数の表示画面はそれぞれ画面構成が異なるため、ユーザーがタッチセンサ6aに対してジェスチャ操作を行った場合でも受付可能な操作イベントはそれぞれ異なったものとなっている。
RTC17は、リアルタイムクロックであり、時刻をカウントし続ける時計回路である。
次に図3は、CPU11によって実行されるプログラム13の概念的構成を示す図である。プログラム13は、画像処理装置1への電源時にCPU11によって自動的に読み出されて起動されるメインプログラム13aと、そのメインプログラム13aのサブルーチンとして予め用意されている複数の操作イベント判定ルーチン13b,13c,13d,13e,13f,13g,13hとを備えて構成される。複数の操作イベント判定ルーチン13b〜13hは、タッチセンサ6aがユーザーによる入力操作(ジェスチャ操作)を検知した場合に、その入力操作がシングルタップ、ダブルタップ、ロングタップ、フリック、ドラッグ、ピンチ及びローテーションのいずれの操作イベントに該当するかを特定するためのサブルーチンであり、特定対象となる操作イベントごとに具体的な判定処理の中身又は手順が異なるため、個別のサブルーチンとして予め用意されている。そして本実施形態では、タッチセンサ6aがユーザーによる入力操作を検知すると、CPU11が複数の操作イベント判定ルーチン13b〜13hの中から必要な操作イベント判定ルーチンだけを起動することにより、入力操作に対応する操作イベントを効率的に特定するように構成される。以下、このようなCPU11の具体的な処理内容について説明する。
図4は、CPU11がメインプログラム13aを起動することによって実現される機能ブロックの一例を示す図である。図4に示すように、CPU11は、メインプログラム13aを実行することにより、グルーピング部31、表示制御部32、操作イベント判定部33、制御実行部34及びジョブ実行部35として機能する。
グルーピング部31は、表示部5に表示される表示画面ごとに、その表示画面に含まれる複数の画面構成パーツをグルーピングし、各グループに対して操作イベントを関連付ける処理部である。このグルーピング部31は、一の表示画面に含まれる複数の画面構成パーツのうち、同一の操作イベントを受付可能な画面構成パーツを纏めて画面内に閉領域を形成していくことにより、複数の画面構成パーツを少なくとも1つの閉領域でグループ化する。つまり、表示画面内に形成される一の閉領域には、同一の操作イベントを受付可能な1又は複数の画面構成パーツが含まれる。また一の表示画面にそれぞれ異なる操作イベントを受け付ける複数の画面構成パーツが含まれている場合、それら複数の画面構成パーツはそれぞれ別の閉領域へと区分され、該表示画面内に複数のグループが生成されることになる。そしてグルーピング部31は、表示画面に含まれる複数の画面構成パーツをグルーピングして生成した各グループに対し、それぞれのグループで共通して受付可能な操作イベントを予め関連付けた設定を行う。すなわち、グルーピング部31は、グループ化によって形成した閉領域ごとに、その閉領域に含まれる画面構成パーツが受付可能な同一の操作イベントを、共通の操作イベントとして、その閉領域全体に関連付ける。
グルーピング部31は、上記のような処理を、操作パネル4を介して、或いは、ネットワークインタフェース21を介して外部から入力する指示情報に基づいて行うようにしても良い。この場合、グルーピング部31は、操作パネル4を介して、或いは、ネットワークインタフェース21を介して外部から入力する指示情報に基づき、各表示画面に含まれる複数の画面構成パーツのそれぞれをグループ化し、各グループに対して共通の操作イベントを関連付けるものとなる。したがって、この場合は、各表示画面に対する操作を行うユーザー、或いは、各表示画面を設計する設計者などが手動操作で複数の画面構成パーツをグルーピングできるようになる。
またグルーピング部31は、NVRAM15に格納されている画面情報16を読み出して解析することにより、各表示画面に含まれる複数の画面構成パーツのそれぞれが受付可能な操作イベントを特定し、その特定した操作イベントに基づいてグループ化し、各グループに対して共通して受付可能な操作イベントを関連付ける処理を自動で行うようにしても良い。
図5及び図6は、グルーピング部31によるグループ化処理の概念を説明する図である。まず図5に示すように、表示部5に表示される表示画面G1に、複数の画面構成パーツP1〜P12が含まれている場合を例示する。ここで、画面構成パーツP1〜P8が例えばシングルタップ、ダブルタップ、ロングタップ、ドラッグ及びフリックを受付可能な操作キーであり、画像構成パーツP9〜P12が例えばシングルタップとドラッグとを受付可能な操作キーである場合、画面構成パーツP1〜P8と、P9〜P12とで受付可能な操作イベントがそれぞれ異なるものとなる。このような場合、グルーピング部31は、同一の操作イベントを受付可能であり、且つ、表示画面G1内において所定距離の範囲内に位置する2以上の画面構成パーツを一のグループにグループ化し、当該一のグループに対して共通の操作イベントを関連付ける。ただし、同一の操作イベントを受付可能な他の画面構成パーツが所定距離の範囲内にない場合には、一の画面構成パーツをそれ単独でグループ化し、当該一の画面構成パーツが受付可能な操作イベントを関連付ける。図5の例の場合、グルーピング部31は、シングルタップ、ダブルタップ、ロングタップ、ドラッグ及びフリックを受付可能な画面構成パーツP1〜P8を1つのグループに纏めて閉領域R1を生成し、さらにシングルタップとドラッグとを受付可能な画面構成パーツP9〜P12を別の1つのグループに纏めて閉領域R2を生成する。そして閉領域R1のグループには、共通の操作イベントとして、シングルタップ、ダブルタップ、ロングタップ、ドラッグ及びフリックの5つの操作イベントを関連付ける。また閉領域R2のグループには、共通の操作イベントとして、シングルタップとドラッグとの2つの操作イベントを関連付ける。
次に図6に示すように、表示部5に表示される表示画面G2に、複数の画面構成パーツP13〜P16が含まれている場合を例示する。ここで、画面構成パーツP13が例えばダブルタップ、ドラッグ、ピンチ及びローテーションを受付可能なプレビュー表示領域であり、画面構成パーツP14〜P16が例えばシングルタップとドラッグとを受付可能なスクロールバーである場合、画面構成パーツP13と、P14〜P16とで受付可能な操作イベントがそれぞれ異なるものとなる。このような場合、グルーピング部31は、ダブルタップ、ドラッグ、ピンチ及びローテーションを受付可能な画面構成パーツP13だけを1つのグループに纏めて閉領域R3を生成し、さらにシングルタップとドラッグとを受付可能な画面構成パーツP14〜P16を別の1つのグループに纏めて閉領域R4を生成する。そして閉領域R3のグループには、共通の操作イベントとして、ダブルタップ、ドラッグ、ピンチ及びローテーションの4つの操作イベントを関連付ける。また閉領域R4のグループには、共通の操作イベントとして、シングルタップとドラッグとの2つの操作イベントを関連付ける。
図7は、表示部5に表示される複数の表示画面のそれぞれをグループ化して得られる各領域に共通の操作イベントを関連付けた状態の一例を示す図である。グルーピング部31は、上記のように各表示画面に含まれる複数の画面構成パーツを同一の操作イベントでグループ化することにより、図7に示すように、表示部5に表示される各表示画面が1又は複数の領域に分類され、各領域に対して共通の操作イベントが関連付けられた状態となる。尚、図7では「○」のついた操作イベントが各領域に対して関連付けられた操作イベントである。
グルーピング部31は、上記のようにしてグループ化を行う際、表示画面に含まれる複数の画面構成パーツのそれぞれが必ずいずれかのグループに分類されるようにグループ化を行う。そしてグルーピング部31は、例えば、各表示画面の画面情報16に対し、各グループの閉領域と、各グループに関連付けた共通の操作イベントとに関する情報を付加することにより、グルーピングの結果を登録する。尚、グルーピング部31は、1つのグループに対し、シングルタップ、ダブルタップ、ロングタップ、フリック、ドラッグ、ピンチ及びローテーションといった複数の操作イベントのうちの少なくとも1つを関連付けるようになっており、例えば全ての操作イベントを受付可能なグループの場合には共通の操作イベントとしてそれら全ての操作イベントを関連付ける。
また表示画面に含まれる複数の画面構成パーツをグループ化して共通の操作イベントを関連付けた情報は、画像処理装置1の出荷時においてNVRAM15に画面情報16が格納されるタイミングで予め付加されるようにしても良い。しかし、NVRAM15に格納された画面情報16は、画像処理装置1の出荷後においてもオプション機能の追加や、新たなアプリケーションプログラムのインストール、表示画面のカスタマイズなどによって更新されることもある。画面情報16が更新されると、各表示画面の画面構成が変化するため、それ以前においては受付可能でなかった操作イベントが、画面情報16の更新後に受付可能となることもある。そのため、グルーピング部31は、CPU11がメインプログラム13aを起動することに伴って機能し、画像処理装置1の起動処理が行われている間に、各表示画面の画面構成を解析することによって、複数の画面構成パーツのグループ化を行い、各グループに対して、複数の操作イベントの中からユーザーの入力操作に基づいて検知対象となる操作イベントを関連付けて設定するように構成することが好ましい。
図4に戻り、表示制御部32は、NVRAM15に格納されている画面情報16を読み出し、複数の表示画面の中から一の表示画面を選択して表示部5へ出力することにより、その選択した表示画面を表示部5に表示するものである。この表示制御部32は、画像処理装置1の起動処理が完了すると、複数の表示画面の中から初期画面を選択して表示部5に表示する。その後、表示制御部32は、制御実行部34からの画面更新指示に基づいて表示部5の表示画面を逐次更新していく。
操作イベント判定部33は、操作パネル4のタッチセンサ6aが表示画面に対するユーザーの入力操作(ジェスチャ操作)を検知した場合に、その入力操作に対応する操作イベントを特定する処理部である。この操作イベント判定部33は、メインプログラム13aによって実現される機能の1つであり、タッチセンサ6aによってユーザーの入力操作が検知されると、そのタイミングで表示部5に表示中である表示画面においてグループ化された閉領域のうち、ユーザーの入力操作が検知された閉領域を特定し、その特定した閉領域に予め関連付けられている操作イベントを決定する。そして操作イベント判定部33は、その決定した操作イベントに対応する操作イベント判定ルーチンだけを起動することにより、ユーザーの入力操作に対応する操作イベントを判定する。
すなわち、操作イベント判定部33は、表示画面に対するユーザーの入力操作が検知されると、その表示画面で受付可能な操作イベントだけを判定するために、複数の操作イベント判定ルーチン13b〜13hの中から、その入力操作が検知された閉領域に関連付けられている操作イベントに対応した操作イベント判定ルーチンだけを起動するのである。このとき、入力操作が検知された閉領域に対して複数の操作イベントが関連付けられていることもある。例えば、入力操作が検知された閉領域がシングルタップ、ダブルタップ、フリックの3つの操作イベントを受付可能な場合である。そのような場合、操作イベント判定部33は、それら3つの操作イベントに対応する操作イベント判定ルーチンを順次起動していくことにより、ユーザーの入力操作に対応する操作イベントを特定する。このように操作イベント判定部33は、ユーザーによってタッチセンサ6aに対する何らかの入力操作が行われた場合、毎回全ての操作イベント判定ルーチン13b〜13hを起動するのではなく、その入力操作が検知された閉領域で受付可能な操作イベントに対応する操作イベント判定ルーチンだけを起動することにより、無駄な判定ルーチンを起動することなく、効率的にユーザーの入力操作に対応する操作イベントを特定できるように構成されている。
そして操作イベント判定部33は、必要な操作イベント判定ルーチンだけを起動することにより、ユーザーの入力操作に対応する操作イベントを特定することができると、その特定した操作イベントを制御実行部34へ出力する。一方、上記のように必要な操作イベント判定ルーチンだけを起動しても、ユーザーの入力操作に対応する操作イベントを特定することができないこともある。例えば、シングルタップ、ダブルタップ、フリックの3つの操作イベントを受付可能な閉領域に対してユーザーがロングタップやドラッグ、ピンチ、ローテーションなどの操作を行った場合には、シングルタップ、ダブルタップ、フリックの3つの操作イベントのそれぞれに対応する操作イベント判定ルーチン13b,13c,13eを起動してもユーザーの入力操作に対応する操作イベントを特定することができない。そのような場合、操作イベント判定部33は、制御実行部34に対する出力処理は行わない。
また操作イベント判定部33は、例えば3つの操作イベント判定ルーチンを順次起動する場合でも、最初に起動した操作イベント判定ルーチンによってユーザーの入力操作に対応する操作イベントを特定することができた場合には、それ以降の操作イベント判定ルーチンは起動することなく、その特定した操作イベントを制御実行部34へ出力する。尚、2番目に起動した操作イベント判定ルーチンで操作イベントを特定することができた場合も、これと同様である。つまり、操作イベント判定部33は、複数の操作イベント判定ルーチンを起動する場合でも、いずれか1つの操作イベント判定ルーチンで操作イベントを特定することができれば、それ以降の操作イベント判定ルーチンを起動しないようになっている。
制御実行部34は、ユーザーが操作パネル4に対する操作を行った場合に、その操作に基づく制御を実行する処理部である。この制御実行部34は、ユーザーによってタッチセンサ6aに対するジェスチャ操作が行われた場合には、上述した操作イベント判定部33によって特定された操作イベントを入力し、その操作イベントに基づく制御を実行する。これに対し、ユーザーによって操作キー6bに対する操作が行われた場合には、制御実行部34がその操作キー6bから直接操作信号を受信し、その操作信号に基づいてユーザーによって行われた操作(操作イベント)を特定し、その操作に基づく制御を実行する。
制御実行部34がユーザーによる入力操作に基づいて実行する制御には、例えば表示部5に表示している表示画面を更新する制御や、ジョブの実行開始や停止の制御などがある。そのため、制御実行部34は、図4に示すように、表示制御部32とジョブ実行部35とを制御するようになっている。すなわち、制御実行部34は、ユーザーによる入力操作に基づいて表示画面を更新するときには表示制御部32に画面更新を指示し、ジョブの実行開始や停止を行うときにはジョブ実行部35にジョブの実行開始又は停止を指示する。これにより、表示制御部32は、表示部5に表示している表示画面を制御実行部34からの指示に基づいて更新するようになる。またジョブ実行部35は、制御実行部34からの指示に基づいてジョブの実行を開始したり、或いは既に実行中のジョブを停止したりする。ただし、制御実行部34が実行する制御には、上記以外の制御が含まれていても構わない。
ジョブ実行部35は、画像処理装置1に設けられた各部の動作を制御することにより、ユーザーによって指定されたジョブの実行を制御する。このジョブ実行部35は、画像処理装置1においてジョブの実行が行われている間、CPU11に常駐して各部の動作を統括的に制御するようになっている。
次に上記のような機能構成を有するCPU11において行われる具体的な処理手順について説明する。図8は、画像処理装置1のCPU11によって行われる処理手順の一例を示すフローチャートである。この処理は、画像処理装置1に電源が投入され、CPU11がプログラム13に含まれるメインプログラム13aを起動することによって開始される処理である。
まずCPU11は、メインプログラム13aを起動すると、画面情報16を読み出し(ステップS1)、その画面情報16に基づいて各表示画面に含まれる複数の画面構成パーツを1又は複数の閉領域にグループ化し(ステップS2)、各グループに対して共通する操作イベントの関連付けを行う(ステップS3)。そして各表示画面に対するグループ化処理と、操作イベントの関連付け処理とが全て完了すると、CPU11は、操作パネル4の表示部5に、初期画面を表示する(ステップS4)。このようにして表示部5に表示画面が表示されると、CPU11は、ユーザーによる入力操作を受け付け可能な状態となり、タッチセンサ6a及び操作キー6bのいずれかによって入力操作が検知されるまで待機する状態となる(ステップS5)。
ユーザーによる入力操作が検知されると(ステップS5でYES)、CPU11は、その入力操作がタッチセンサ6aによって検知されたものであるか否かを判断し(ステップS6)、タッチセンサ6aで検知されたものであれば(ステップS6でYES)、その入力操作が検知された閉領域を特定する(ステップS7)。そしてCPU11は、特定した閉領域に関連付けられている1又は複数の操作イベントに対応する操作イベント判定ルーチンをセットし(ステップS8)、それら1又は複数の操作イベント判定ルーチンを順次起動してユーザーの入力操作に対応する操作イベントを特定するためのループ処理を実行する(ステップS9,S10,S11)。
このループ処理(ステップS9,S10,S11)では、プログラム13に含まれる全ての操作イベント判定ルーチン13b〜13hが順に起動されるのではなく、ステップS8でセットされた操作イベント判定ルーチンであって、ユーザーの入力操作が検知された閉領域において共通して受付可能な操作イベントに対応する操作イベント判定ルーチンだけが起動されるようになる。また複数の操作イベント判定ルーチンをループ処理で順次起動する場合は、いずれか1つの操作イベント判定ルーチンによってユーザーの入力操作に対応する操作イベントが特定されると、そのタイミングでループ処理を終了して次のステップS12へと進む。つまり、このループ処理(ステップS9,S10,S11)では、ステップS8でセットされた複数の操作イベント判定ルーチンの全てを常に起動させるのではなく、全てを起動するまでに途中でユーザーの入力操作に対応した操作イベントを特定することができれば、それ以降に起動が予定されている操作イベント判定ルーチンを起動することなく、ループ処理を終了する。
そしてループ処理(ステップS9,S10,S11)が終了すると、CPU11は、ループ処理(ステップS9,S10,S11)によって操作イベントが特定できたか否かを判断する(ステップS12)。ユーザーによって表示中の表示画面で受付可能でないジェスチャ操作が行われてしまうこともあるため、ステップS12の判断が必要となる。そしてユーザーの入力操作に対応する操作イベントを特定することができなかった場合(ステップS12でNO)、CPU11は、その後の処理(ステップS13)へと進むことなく、再びユーザーによる入力操作が検知されるまで待機する状態へと戻る(ステップS5)。これに対し、ループ処理(ステップS9,S10,S11)においてユーザーの入力操作に対応する操作イベントを特定することができた場合(ステップS12でYES)、CPU11による処理は次のステップS13へと進む。
また、ユーザーによる入力操作が検知され(ステップS5でYES)、その入力操作が操作キー6bによって検知されたものであった場合(ステップS6でNO)も、CPU11による処理はステップS13へと進む。すなわち、ユーザーが操作キー6bを操作した場合には、その操作信号によって操作イベントを特定することができるため、操作イベントを特定できた場合の処理(ステップS13)へと進む。
CPU11は、ユーザーの入力操作に対応する操作イベントが特定されると、その入力操作に対応した制御を実行する(ステップS13)。すなわち、上述したように、表示部5の表示画面を別の画面に更新する制御、ジョブの実行制御、その他の制御などが行われる。そしてCPU11による処理は、ステップS5に戻り、再びユーザーによる入力操作が検知されるまで待機する状態となる(ステップS5)。そしてCPU11は、その後、上述した処理を繰り返す。
CPU11は上記のような処理を行うことにより、ユーザーが操作パネル4に対する操作を行った場合にはその操作に対応した処理を行うことができる。特に上記のような処理はジョブの実行中に並行して行われることもあるが、ユーザーによって表示画面に対するジェスチャ操作が行われたときには、そのジェスチャ操作が行われた領域において受付可能な操作イベントだけを特定することを目的として、必要最小限の操作イベント判定ルーチンだけを起動するようにしているため、ジョブの実行においても無駄な操作イベント判定ルーチンを起動することがなく、効率的にユーザーのジェスチャ操作に対応する操作イベントを特定することが可能である。
次に本実施形態において表示部5に表示される幾つかの表示画面の具体例を示しつつ、それら各表示画面の各領域に関連付けられる操作イベントについて説明する。
図9は、機能選択画面G10の一例を示す図である。この機能選択画面G10は、ユーザーが選択可能な機能に対応する複数のアイコン画像B1が画面構成パーツ(操作キー)として画面内に配置された画面構成を有している。この機能選択画面G10内に表示されるアイコン画像B1は、オプション機能の追加や、新たなアプリケーションプログラムのインストール、表示画面のカスタマイズなどによって追加されることもある。例えば表示画面のカスタマイズには、本来別の表示画面において表示されるアイコン画像を機能選択画面G10においてショートカットキーとして追加登録するカスタマイズなどがある。
図9の画面例では、機能選択画面G10において1度に表示可能なアイコン画像B1の数が12個であるのに対し、表示登録されているアイコン画像B1の数が22個あるため、アイコン画像B1が表示される領域を左右方向にスクロール移動させることによって、それら22個のアイコン画像B1の全てを表示することができる画面構成となっている。それ故、機能選択画面G10の左右端部には、スクロール移動の前後においてユーザーがスクロール移動させるためにシングルタップ操作可能な操作キーB2が画面構成パーツとして表示されている。
このような画面構成の場合、複数のアイコン画像B1のそれぞれに対してユーザーが行うことができる操作は、機能選択操作であるアイコン画像B1のシングルタップ操作と、アイコン画像B1が表示された領域を左右方向にスクロール移動させるためのフリック操作と、アイコン画像B1の表示位置を変更するためのドラッグ操作との3つの操作である。フリック操作は、例えば図9に示すように、ユーザーが指先で画面上の一点Paをタップした状態のままそのタップ位置をスクロール移動方向F1に素早く移動させながら画面上からリリースする操作である。機能選択画面G10の複数のアイコン画像B1が表示された領域に対してユーザーによるフリック操作が行われることにより、図9に示すように、複数のアイコン画像B1が左右横方向にスクロール移動し、全てのアイコン画像B1が表示されるようになる。またシングルタップ操作は、ユーザーが指先で画面上の一点をタップした直後に素早く指先を画面上からリリースする操作である。シングルタップ操作をアイコン画像B1の表示位置に対して行うことにより、複数のアイコン画像B1の中から一のアイコン画像B1を選択することができる。またドラッグ操作は、フリック操作と同様に、ユーザーが指先で画面上の一点P1をタップした状態のままそのタップ位置を移動させて別の位置でリリースする操作であるが、移動方向は直線方向でなくても良く、また移動速度も比較的遅い速度であっても良い。ドラッグ操作をアイコン画像B1に対して行うことにより、そのアイコン画像B1の表示位置を任意の位置に移動させることができる。このように、複数のアイコン画像B1は、シングルタップ、ドラッグ及びフリックの3つの操作イベントを受付可能であり、それ以外の操作イベントを受け付けない画面構成パーツとなっている。
一方、機能選択画面G10の端部に表示される操作キーB2は、ユーザーによるシングルタップ操作だけを受付可能な画面構成パーツである。つまり、この操作キーB2に対してユーザーがシングルタップ操作を行うと、複数のアイコン画像B1が左右方向へスクロール移動し、別のアイコン画像B1が表示されるようになる。
したがって、図9に示す画面構成の場合、グルーピング部31は、複数のアイコン画像B1を纏めて1つの閉領域R10を形成すると共に、操作キーB2だけを含む別の閉領域R11を形成する。そしてグルーピング部31は、閉領域R10のグループに対してシングルタップとフリックとドラッグとの3つの操作イベントを関連付けると共に、閉領域R11のグループに対してシングルタップだけの1つの操作イベントを関連付ける。
図10は、複数の宛先情報をリスト形式で表示可能な宛先選択画面G11の一例を示す図である。この宛先選択画面G11は、図10(a)に示すように、複数の宛先情報をリスト形式で表示するリスト表示領域R12と、リスト表示領域R12に表示される宛先情報をスクロール移動させるスクロールバーB3とを画面構成パーツとして含む画面構成となっている。
このような画面構成の場合、リスト表示領域R12に対してユーザーが行うことができる操作としては、例えば図10(a)に示すようにリスト形式で表示された複数の宛先情報の中から一の宛先情報を選択するシングルタップ操作と、図10(b)に示すようにリスト表示領域R12に表示された複数の宛先情報を上下方向へスクロール移動させるためのフリック操作とがある。例えば図10(b)に示すように、ユーザーはリスト表示領域R11の一点をタップした状態でスクロール移動方向F2又はF3にフリック操作を行うことにより、リスト表示領域R11に表示される宛先情報をスクロールさせて表示することができる。またこの他にも、ユーザーは、リスト表示領域R1に対し、リスト形式で表示された宛先情報の表示位置を移動させるためのドラッグ操作や、一の宛先情報を選択してその宛先の詳細設定画面へ遷移させるためのダブルタップ操作、一の宛先情報を選択してその宛先の詳細情報を表示するためのロングタップ操作なども行うことができる。ダブルタップ操作とは、シングルタップ操作と同様の操作を所定時間内に2回行う操作である。またロングタップ操作は、画面上の一点をタップした状態のまま、そのタップ位置を移動させることなく一定時間以上タップ状態を保持し続ける操作である。このようにリスト表示領域R12は、シングルタップ、ドラッグ、フリック、ダブルタップ及びロングタップの5つの操作イベントを受付可能であり、それ以外の操作イベントを受け付けない画面構成パーツとなっている。
一方、リスト表示領域R12の右側に表示されるスクロールバーB3は、ユーザーによるシングルタップ操作とドラッグ操作とを受付可能な画面構成パーツである。つまり、ユーザーはこのスクロールバーB3に対してシングルタップ操作を行うと、そのタップ位置に応じてリスト表示領域R11に表示される宛先情報をスクロールさせて表示することができる。またユーザーはスクロールバーB3のドラッグ操作を行うと、そのドラッグ操作による移動量に応じてリスト表示領域R11に表示される宛先情報をスクロールさせて表示することができる。
したがって、上記のような宛先選択画面G11の場合、グルーピング部31は、図10(c)に示すように、リスト表示領域R12だけを含む閉領域R12と、スクロールバーB3だけを含む閉領域R13との2つの領域R12,R13を形成する。そしてグルーピング部31は、閉領域R12のグループに対してシングルタップとフリックとドラッグとダブルタップとロングタップの5つの操作イベントを関連付けると共に、閉領域R13のグループに対してシングルタップとドラッグの2つの操作イベントを関連付ける。
図11は、画像のプレビュー表示を行うプレビュー表示画面G12の一例を示す図である。このプレビュー表示画面G12は、ユーザーによって選択された画像をプレビュー表示するためのプレビュー領域R14と、プレビュー領域R14に表示された画像の表示位置を変更するためのスクロールバーB4,B5と、プレビュー領域R14に表示された画像を拡大又は縮小するための操作キーB6,B7とを画面構成パーツとして含んでいる。
図12は、プレビュー領域R14に対してユーザーが行うことができる操作の一例を示す図である。プレビュー領域R14に対してプレビュー画像が表示されているとき、ユーザーは、図12に示すように、プレビュー画像を縮小、拡大又は回転するためのピンチ操作やローテーション操作を行うことができる。またピンチ操作には、プレビュー画像を縮小するためのピンチイン操作と、拡大するためのピンチアウト操作とが含まれる。ピンチイン操作は、図12(a)において矢印F5で示すように、プレビュー領域R14に表示されるプレビュー画像の2点を2本の指先でタップした状態でそれら2点間の距離を縮めるように移動させる操作である。このようなピンチイン操作により、プレビュー領域R14に表示されるプレビュー画像が縮小表示されるようになる。またピンチアウト操作は、図12(b)において矢印F6で示すように、プレビュー領域R14に表示されるプレビュー画像の2点を2本の指先でタップした状態でそれら2点間の距離を拡大していくように移動させる操作である。このようなピンチアウト操作により、プレビュー領域R14に表示されるプレビュー画像が拡大表示されるようになる。さらにローテーション操作は、図12(c)において矢印F7で示すように、プレビュー領域R14に表示されるプレビュー画像の2点を2本の指先でタップした状態でそれら2点の位置を回転させていくように移動させる操作である。このようなローテーション操作により、プレビュー領域R14に表示されるプレビュー画像が回転表示されるようになる。
またプレビュー領域R14では、上記のようなピンチ操作とローテーション操作に限らず、ダブルタップ操作とドラッグ操作も受付可能となっている。すなわち、プレビュー領域R14に表示されているプレビュー画像の1点に対してダブルタップ操作が行われた場合には、その1点を中心にプレビュー画像を拡大して表示する処理が行われる。さらにプレビュー領域R14においてプレビュー画像に対してドラッグ操作が行われた場合には、そのプレビュー画像の表示部分を移動させて表示する処理が行われる。このようにプレビュー領域R14は、ダブルタップ、ドラッグ、ピンチ及びローテーションの4つの操作イベントを受付可能であり、それ以外の操作イベントを受け付けない画面構成パーツとなっている。
一方、プレビュー領域R14の右側及び下側に表示されるスクロールバーB4,B5は、ユーザーによるシングルタップ操作とドラッグ操作とを受付可能な画面構成パーツであり、それらの操作に基づいてプレビュー領域R14に表示されるプレビュー画像の表示部分を移動させて表示することができるようになっている。さらに、プレビュー領域R14に表示された画像を拡大又は縮小するための操作キーB6,B7は、ユーザーによるシングルタップ操作だけを受け付ける画面構成パーツである。
したがって、上記のようなプレビュー表示画面G12の場合、グルーピング部31は、図11(b)に示すように、プレビュー領域R14だけを含む閉領域R14と、スクロールバーB4だけを含む閉領域R15と、スクロールバーB5だけを含む閉領域R16と、2つの操作キーB6,B7を含む閉領域R17とを形成する。そしてグルーピング部31は、閉領域R14のグループに対してダブルタップとドラッグとピンチとローテーションとの4つの操作イベントを関連付け、閉領域R15に対してシングルタップとドラッグとの2つの操作イベントを関連付け、閉領域R16に対してシングルタップとドラッグとの2つの操作イベントを関連付け、閉領域R17に対してシングルタップだけの1つの操作イベントを関連付ける。尚、閉領域R15とR16とをさらに1つの閉領域に纏めたグループにしても良い。
図13は、ユーザーが各種設定操作を行う際の応用設定画面G13の一例を示す図である。この応用設定画面G13は、様々な応用設定を行うために予め登録されている複数のアイコン画像B8と、それら複数のアイコン画像B8の表示位置を左右横方向へスクロール移動させるためのスクロールバーB9と、複数のアイコン画像B8の表示位置を左右横方向へワンタッチで切り替えるためのシングルタップ操作可能な操作キーB10とを画面構成パーツとして含んでいる。すなわち、図13の例では、応用設定画面G13に予め登録されているアイコン画像B8の数が一度に表示可能なアイコン画像の数を越えており、応用設定画面G13に登録された複数のアイコン画像B8を横方向にスクロール移動させることにより、各アイコン画像B8を表示することができる画面構成となっている。
このような画面構成の場合、複数のアイコン画像B8のそれぞれに対してユーザーが行うことができる操作は、設定項目の選択操作であるアイコン画像B8のシングルタップ操作と、アイコン画像B8が表示された領域を左右方向にスクロール移動させるためのフリック操作と、アイコン画像B8の表示位置を任意の位置へ変更するためのドラッグ操作との3つの操作である。このように、複数のアイコン画像B8は、シングルタップ、ドラッグ及びフリックの3つの操作イベントを受付可能であり、それ以外の操作イベントを受け付けない画面構成パーツとなっている。
またスクロールバーB9に対してユーザーが行うことができる操作は、上述した他のスクロールバーと同様に、シングルタップ操作とドラッグ操作との2つの操作である。さらに、操作キーB10に対してユーザーが行うことができる操作は、上述した他の操作キーと同様に、シングルタップ操作だけである。
したがって、上記のような応用設定画面G13の場合、グルーピング部31は、図13に示すように、複数のアイコン画像B8を含む閉領域R18と、スクロールバーB9だけを含む閉領域R19と、操作キーB10を含む閉領域R20とを形成する。そしてグルーピング部31は、閉領域R18のグループに対してフリックとドラッグとシングルタップとの3つの操作イベントを関連付け、閉領域R19に対してシングルタップとドラッグとの2つの操作イベントを関連付け、閉領域R20に対してシングルタップだけの1つの操作イベントを関連付ける。
図14は、ユーザーが各種設定操作を行う際の基本設定画面G14の一例を示す図である。この基本設定画面G14は、ジョブの実行に関する基本的な設定を行うために予め登録されている複数のアイコン画像B11と、それら複数のアイコン画像B11の表示対象をワンタッチで切り替えるためのシングルタップ操作可能な操作キーB14とを画面構成パーツとして含んでいる。すなわち、図14の例では、基本設定画面G14に予め登録されているアイコン画像B11の数が一度に表示可能なアイコン画像の数を越えており、基本設定画面G14において表示されるアイコン画像B11を切り替えて表示することができる画面構成となっている。
このような画面構成の場合、複数のアイコン画像B11のそれぞれに対してユーザーが行うことができる操作は、設定項目の選択操作であるアイコン画像B11のシングルタップ操作と、基本設定画面G14に表示されるアイコン画像B11を別のアイコン画像に切り替えるためのフリック操作との2つの操作である。つまり、複数のアイコン画像B11は、シングルタップ及びフリックの2つの操作イベントを受付可能であり、それ以外の操作イベントを受け付けない画面構成パーツとなっている。
また操作キーB14に対してユーザーが行うことができる操作は、上述した他の操作キーと同様に、シングルタップ操作だけである。そのため、操作キーB14は、シングルタップの1つの操作イベントを受付可能であり、それ以外の操作イベントを受け付けない画面構成パーツとなっている。
したがって、このような基本設定画面G14の場合、グルーピング部31は、図14に示すように、複数のアイコン画像B11を含む閉領域R21と、操作キーB14を含む閉領域R22とを形成する。そしてグルーピング部31は、閉領域R21のグループに対してシングルタップとフリックとの2つの操作イベントを関連付け、閉領域R22に対してシングルタップだけの1つの操作イベントを関連付ける。
ところで、図14に示した基本設定画面G14において、グルーピング部31によって形成される2つの閉領域R21,R22は互いに隣接しており、且つ、一方の閉領域R22に関連付けられる操作イベントが他方の閉領域R21に関連付けられる複数の操作イベントの一部と共通する関係にある。そのため、グルーピング部31は、上記のような関係にある2つの閉領域をグループ化する際、互いに共通する操作イベントを一括判定できるようにするため、一方の閉領域R22に内包されるように他方の閉領域R21を形成するようにしても良い。
図15は、一の閉領域R21が他の閉領域R22に内包された状態にグループ化された基本設定画面G14を示す図である。グルーピング部31は、図15に示すように、閉領域R22の内側に別の閉領域R21を重ねるようにして形成すると、これら2つの閉領域R21,R22には親子関係が形成されるようになる。つまり、親領域R22が子領域R21の全体を包含する関係となる。グルーピング部31は、このような親子関係を形成した場合、親領域R22には、親領域R22と子領域R21の双方で共通する操作イベントを関連付け、子領域R21には、親領域R22に関連付けられない子領域R21特有の操作イベントを関連付ける。図15の例では、親領域R22に対して親領域R22と子領域R21との双方に共通するシングルタップの操作イベントが関連付けられており、子領域R21に対して子領域R21に特有のフリックの操作イベントが関連付けられた状態となっている。
上記のように2つの閉領域R21,R22に親子関係が設定される場合、操作イベント判定部33は、子領域R21でユーザーの入力操作が検知されると、親領域R22と子領域R21とのそれぞれに関連付けられている操作イベントに対応した操作イベント判定ルーチンを順に起動していくことにより、ユーザーの入力操作に対応する操作イベントを特定する。このとき、操作イベント判定部33は、子領域R21に関連付けられている操作イベントに対応する操作イベント判定ルーチンを優先的に起動することが好ましい。
図16は、ユーザーの入力操作が検知された領域に親子関係を有する2つの閉領域が含まれる場合の上述したループ処理(ステップS9,S10,S11)の処理手順の一例を示すフローチャートである。図16に示すように、CPU11は、上述したループ処理(ステップS9,S10,S11)において、まず子領域R21に関連付けられている操作イベントに対応した操作イベント判定ルーチンを起動する(ステップS20)。例えば図15のような親子関係の場合には、ステップS20においてまずフリックに対応する操作イベント判定ルーチン13eを起動し、ユーザーの入力操作がフリックであるか否かを判定する。尚、子領域R21に複数の操作イベントが関連付けられていれば、ステップS20においてそれら複数の操作イベント判定ルーチンを順に起動することにより、ユーザーによって行われた入力操作が、子領域R21に関連付けられた操作イベントであるか否かを判定する。
次にCPU11は、ステップS20においてユーザーの入力操作に対応する操作イベントを特定することができたか否かを判断する(ステップS21)。子領域R21の判定だけでユーザーの入力操作に対応する操作イベントを特定することができた場合(ステップS21でYES)には、親領域R22についての判定を行うことなく、ループ処理を終了する。
これに対し、子領域R21の判定だけではユーザーの入力操作に対応する操作イベントを特定することができなかった場合(ステップS21でNO)、CPU11は、次に親領域R22に関連付けられている操作イベントに対応した操作イベント判定ルーチンを起動する(ステップS22)。例えば図15のような親子関係の場合には、ステップS22においてシングルタップに対応する操作イベント判定ルーチン13bを起動し、ユーザーの入力操作がシングルタップであるか否かを判定する。尚、親領域R22に複数の操作イベントが関連付けられていれば、ステップS22においてそれら複数の操作イベント判定ルーチンを順に起動することにより、ユーザーによって行われた入力操作が、親領域R22に関連付けられた操作イベントであるか否かを判定する。
グルーピング部31によって親子関係を有する閉領域が設定された場合には上記のように子領域に関連付けられた操作イベントに対応する操作イベント判定ルーチンを優先的に起動することにより、ユーザーによる入力操作が子領域で検知されたときには、その子領域に特有の操作イベントであるか否かが優先的に判定されるようになる。そのため、子領域に特有の操作イベントを比較的早いタイミングで特定することができるようになり、処理効率が向上するという利点がある。
次に記憶装置23のボックス(記憶領域)に保存されている文書データの一覧を表示する画面例について説明する。図17及び図19はそれぞれボックス内文書一覧を表示する文書一覧表示画面G15,G16の一例を示す図である。図17に示す文書一覧表示画面G15は、ユーザーによって指定されたボックスに保存されている文書データをサムネイル画像として一覧表示するものである。また図19に示す文書一覧表示画面G16は、ユーザーによって指定されたボックスに保存されている文書データをリスト形式で一覧表示するものである。つまり、図17及び図19に示す文書一覧表示画面G15,G16は、それぞれ同じ情報を異なる表示態様で表示するものである。
図17(a)に示す文書一覧表示画面G15は、文書データのサムネイル画像を表示するサムネイル画像表示領域R23と、サムネイル画像表示領域R23に表示されるサムネイル画像をスクロール移動させるためのスクロールバーB15とを画面構成パーツとして含んでいる。すなわち、図17(a)の文書一覧表示画面G15は、ユーザーによって指定されたボックスに保存されている全ての文書データに対応するサムネイル画像をスクロール移動させることによって表示することができる画面構成となっている。このような画面構成の場合、サムネイル画像表示領域R23に対してユーザーが行うことができる操作は、一のサムネイル画像を選択するシングルタップ操作と、一のサムネイル画像を選択して拡大表示するダブルタップ操作と、一のサムネイル画像を選択してそのサムネイル画像の周囲にアイコン画像などを表示するロングタップ操作と、サムネイル画像をスクロール移動させるフリック操作と、サムネイル画像の表示位置を移動させるドラッグ操作との5つの操作である。つまり、サムネイル画像表示領域R23は、シングルタップ、ダブルタップ、ロングタップ、フリック及びドラッグの5つの操作イベントを受付可能であり、それ以外の操作イベントを受け付けない画面構成パーツとなっている。
ここでサムネイル画像表示領域R23に対するロングタップ操作について更に詳しく説明する。図18に示すように、ユーザーが一のサムネイル画像を選択してロングタップ操作を行うと、その近傍位置に選択したサムネイル画像と同一内容の透過画像M1が表示されると共に、その透過画像M1の周囲に少なくとも1つのショートカットアイコン画像M2が表示される。透過画像M1は、ユーザーに対してロングタップ操作が行われていることを知らせるための画像である。またショートカットアイコン画像M1は、ユーザーが選択しているサムネイル画像(又は透過画像M1)をドラッグすることにより、画像データに対する処理を指定することができるアイコン画像である。尚、これら透過画像M1及びショートカットアイコン画像M2は、ユーザーが一のサムネイル画像の表示位置でロングタップ操作を行っていることが検知されると、表示制御部32によって表示される。
またスクロールバーB15に対してユーザーが行うことができる操作は、上述した他のスクロールバーと同様に、シングルタップ操作とドラッグ操作の2つである。そのため、スクロールバーB15は、シングルタップとドラッグとの2つの操作イベントを受付可能であり、それ以外の操作イベントを受け付けない画面構成パーツとなっている。
したがって、図17(a)に示す文書一覧表示画面G15の場合、グルーピング部31は、図17(b)に示すように、サムネイル画像表示領域R23だけを含む閉領域R23と、スクロールバーB15を含む閉領域R24とを形成する。そしてグルーピング部31は、閉領域R23のグループに対してシングルタップ、ダブルタップ、ロングタップ、フリック及びドラッグの5つの操作イベントを関連付け、閉領域R24に対してシングルタップとドラッグとの2つの操作イベントを関連付ける。
これに対し、図19(a)に示す文書一覧表示画面G16は、文書データに関する情報をリスト形式で表示するリスト表示領域R25と、リスト表示領域R25に表示される情報をスクロール移動させるためのスクロールバーB16とを画面構成パーツとして含んでいる。すなわち、図19(a)の文書一覧表示画面G16は、ユーザーによって指定されたボックスに保存されている全ての文書データに関する情報をスクロール移動させることによって表示することができる画面構成となっている。このような画面構成の場合、リスト表示領域R25に対してユーザーが行うことができる操作は、一の文書データを選択するシングルタップ操作と、一の文書データを選択して詳細なファイル情報を表示するロングタップ操作と、リスト表示領域R25に表示される情報をスクロール移動させるフリック操作と、リスト表示領域R25に表示される情報の表示位置を移動させるドラッグ操作との4つの操作である。つまり、リスト表示領域R25は、シングルタップ、ロングタップ、フリック及びドラッグの4つの操作イベントを受付可能であり、それ以外の操作イベントを受け付けない画面構成パーツとなっている。またスクロールバーB16に対してユーザーが行うことができる操作は、上述した他のスクロールバーと同様に、シングルタップ操作とドラッグ操作の2つである。そのため、スクロールバーB16は、シングルタップとドラッグとの2つの操作イベントを受付可能であり、それ以外の操作イベントを受け付けない画面構成パーツとなっている。
したがって、図19(a)に示す文書一覧表示画面G16の場合、グルーピング部31は、図19(b)に示すように、リスト表示領域R25だけを含む閉領域R25と、スクロールバーB16を含む閉領域R26とを形成する。そしてグルーピング部31は、閉領域R25のグループに対してシングルタップ、ロングタップ、フリック及びドラッグの4つの操作イベントを関連付け、閉領域R26に対してシングルタップとドラッグとの2つの操作イベントを関連付ける。
このように本実施形態では、同じ情報を異なる表示態様で表示する表示画面G15,G16であっても、各表示画面G15,G16に含まれる画面構成パーツに基づいてグループ化を行うことにより、各画面構成パーツの表示態様に応じた操作イベントを関連付けることができるようになる。それ故、図19に示すような文書一覧表示画面G16が表示された状態でユーザーがリスト表示領域R15に対するジェスチャ操作を行った場合には、図17のような文書一覧表示画面G17の場合とは異なり、ダブルタップを判定するための操作イベント判定ルーチン13cが起動されないため、効率的にユーザーの入力操作に対応する操作イベントを特定することができるようになる。
次に表示部5に表示される表示画面がカスタマイズされた場合のグルーピング部31による再グループ化について説明する。例えば、図14の基本設定画面G14では、予め登録されているアイコン画像B11の数が一度に表示可能なアイコン画像の数を越えており、基本設定画面G14において表示されるアイコン画像B11を切り替えて表示することができる画面構成である場合を例示した。しかし、アイコン画像B11の登録数が一度の表示可能なアイコン画像の数を越えていない場合には、アイコン画像の表示を切り替えて表示する必要がない。そしてアイコン画像の表示を切り替えて表示する必要がない状態で表示画面のカスタマイズが行われることによってアイコン画像B11が追加登録され、基本設定画面G14に表示されるアイコン画像B11の数が一度に表示可能なアイコン画像の数を越えると、それ以後はアイコン画像B11を切り替えて表示することが必要となる。
図20は、上記のように基本設定画面G14に対してアイコン画像B11の追加登録が行われる場合の画面カスタマイズの一例を示す図である。まず図20(a)に示すように、基本設定画面G14に予め登録されている複数のアイコン画像B11が一度に全て表示可能な場合、複数のアイコン画像B11の右側に表示される操作キーB14のうち、アイコン画像B11の表示を切り替えるための操作キーB14a,B14bは表示されず、基本設定画面G14から応用設定画面G13へ切り替えるための操作キーB14cだけが表示される。したがって、図20(a)に示すような基本設定画面G14ではアイコン画像B11の表示を切り替えることができないため、複数のアイコン画像B11のそれぞれに対してユーザーが行うことができる操作は、設定項目の選択操作であるアイコン画像B11のシングルタップ操作の1つだけである。また、操作キーB14cに対してユーザーが行うことができる操作もシングルタップ操作の1つだけである。グルーピング部31は、図20(a)に示すような基本設定画面G14に対してグループ化の処理を行うと、複数のアイコン画像B11と操作キーB14cとを纏めて1つの閉領域R27を形成し、その閉領域R27に対してシングルタップだけの1つの操作イベントを関連付けた状態とする。
そして図20(a)の基本設定画面G14に対してアイコン画像B11が追加登録され、基本設定画面G14に表示されるアイコン画像B11の数が一度に表示可能なアイコン画像の数を越えると、図20(b)に示すように、アイコン画像B11の表示を切り替えるための操作キーB14a,B14bが追加表示され、基本設定画面G14において表示されるアイコン画像B11を切り替えて表示することができる画面構成に変化する。このとき、図20(b)の基本設定画面G14に表示されるアイコン画像B11が受付可能な操作イベントとして、フリックが追加登録される。したがって、アイコン画像B11の追加登録により、複数のアイコン画像B11のそれぞれに対してユーザーが行うことができる操作は、設定項目の選択操作であるアイコン画像B11のシングルタップ操作と、基本設定画面G14に表示されるアイコン画像B11を別のアイコン画像に切り替えるためのフリック操作との2つの操作に切り替わる。
また図20(b)に示す状態からアイコン画像B11が削除され、図20(a)に示す状態へとカスタマイズされた場合には、基本設定画面G14に表示されるアイコン画像B11が受付可能な操作イベントからフリックが削除される。
このように表示部5に表示される表示画面のカスタマイズにより、画面構成パーツの追加、削除又は変更が行われた場合、その表示画面に含まれる画面構成パーツにおいて受付可能な操作イベントが変化することがある。そのため、グルーピング部31は、表示画面のカスタマイズが行われることに伴い、その表示画面の再グループ化が必要か否かを判断し、必要な場合には再度グループ化を行うと共に、操作イベントを関連付ける処理を再度実行する。
図21は、表示画面のカスタマイズが行われた場合に再グループ化のために実行される処理手順の一例を示すフローチャートである。この処理は、表示画面のカスタマイズ作業が完了したタイミングでCPU11により実行される処理である。CPU11は、この処理を開始すると、NVRAM15からカスタマイズされた画面情報16を読み出し(ステップS30)、カスタマイズされた表示画面に対して画面構成パーツの追加、削除又は変更が行われたか否かを判断する(ステップS31)。その結果、画面構成パーツの追加、削除又は変更が行われていない場合(ステップS31でNO)、この処理は終了する。これに対し、画面構成パーツの追加、削除又は変更が行われた場合(ステップS31でYES)、CPU11は、各グループに関連付けられている共通の操作イベントを変更する必要があるか否かを判断する(ステップS32)。そして操作イベントの変更が必要な場合(ステップS32)、CPU11は、再グループ化が必要であるか否かを判断する(ステップS33)。そして再グループ化が必要な場合(ステップS33でYES)、CPU11は、カスタマイズされた表示画面に含まれる複数の画面構成パーツの再グループ化を実行する(ステップS34)。このとき、上述したように親子関係となる閉領域を形成するようにしても良い。尚、再グループ化が不要な場合には、再グループ化は実行されない。そしてCPU11は、カスタマイズされた表示画面に形成された各閉領域(グループ)に対し、共通の操作イベントを関連付ける(ステップS35)。一方、画面構成パーツの追加、削除又は変更が行われた場合でも(ステップS31でYES)、各グループに関連付けられている共通の操作イベントを変更する必要がない場合(ステップS32でNO)には、再グループ化を行うことなく、そのまま処理を終了する。
このように表示部5に表示される表示画面がカスタマイズされた場合であっても、上記のような処理が実行されることにより、カスタマイズ後の表示画面に基づいて再度グルーピングが行われ、その結果得られる各グループにおいて共通の検知対象となる操作イベントが関連付けられる。そのため、カスタマイズ後においても最適な状態でユーザーの入力操作に対応する操作イベントを特定することができるようになる。
次に、表示部5に表示される表示画面に対し、ユーザーが複数の閉領域に跨ってジェスチャ操作を行った場合について説明する。図22は、上述した応用設定画面G13においてユーザーが複数の閉領域R18,R19に跨って行うジェスチャ操作の一例を示す図である。図22に示すように、例えばユーザーが応用設定画面G13の一の閉領域R18における一点Paを最初にタップし、そのタップ位置を矢印F8で示す方向に移動させてフリック操作又はドラッグ操作を行った場合、ユーザーによるジェスチャ操作は、一の閉領域R18と他の閉領域R19とに跨って行われることになる。この場合には、2つの閉領域R18,R19でユーザーの入力操作が検知される。しかし、それら2つの閉領域R18,R19のそれぞれに関連付けられた操作イベントに対応する操作イベント判定ルーチンを順に起動してしまうと、CPU11の占有率が上がってしまい、効率的な処理の実現が困難になる。そこで、本実施形態では、上記のようにユーザーが複数の閉領域に跨って入力操作を行った場合、操作イベント判定部33は、最初に入力操作が検知された閉領域のグループに関連付けられた操作イベントに対応する操作イベント判定ルーチンだけを起動して、ユーザーの入力操作に対応する操作イベントを特定するように構成される。
具体的に説明すると、CPU11は、図8に示したフローチャートのステップS8において、最初にユーザーの入力操作が検知された閉領域に関連付けられている1又は複数の操作イベントに対応する操作イベント判定ルーチンをセットする。そしてループ処理(ステップS8,S10,S11)において、最初の入力操作が検知された閉領域に関連付けられている1又は複数の操作イベントに対応する操作イベント判定ルーチンを順次起動してユーザーの入力操作に対応する操作イベントを特定する。すなわち、このループ処理(ステップS9,S10,S11)では、ユーザーによって複数の閉領域に跨るようなジェスチャ操作が行われたとしても、最初にユーザーの操作が検知されなかった閉領域に関連付けてられている操作イベントが判定対象から除かれるようになる。それ故、複数の操作イベント判定ルーチン13b〜13hの全てが実行されてしまうことを防止することができるので、効率的な処理が可能となり、CPU11の占有率を低下させることが可能である。
以上のように本実施形態の画像処理装置1は、表示部5に表示される表示画面に含まれる複数の画面構成パーツを、同一の操作イベントを受け付ける画面構成パーツで纏めて閉領域としてグループ化し、各グループに対して共通して受付可能な操作イベントを関連付けるグルーピング部31と、表示画面に対するユーザーの入力操作が検知されることに伴い、グルーピング部31によってグルーピングされた少なくとも1つの閉領域の中から、入力操作が検知された閉領域を特定し、複数の操作イベント判定ルーチンの中から、その特定した閉領域のグループに関連付けられた操作イベントに対応する操作イベント判定ルーチンだけを起動して、ユーザーの入力操作に対応する操作イベントを特定する操作イベント判定部33と、その操作イベント判定部33によって特定された操作イベントに基づく制御を行う制御実行部34と、を備える構成である。このような構成により、画像処理装置1は、表示画面に対するユーザーの入力操作を検知した場合でも、予め用意されている複数の操作イベント判定ルーチン13b〜13hの全てを順に起動する必要がなくなり、ユーザーによる入力操作が検知された画面内の領域に応じて必要な操作イベント判定ルーチンだけを起動することができるので、CPU11にかかる負荷を低減し、効率的にユーザーの入力操作に対応する操作イベントを特定することが可能になる。そして、その結果、画像処理装置1におけるジョブの実行効率が低下するといった問題が解消され、画像処理装置1の生産性を向上させることができるようになる。
以上、本発明に関する一実施形態について説明したが、本発明は上記実施形態において説明した内容のものに限られるものではなく、種々の変形例が適用可能である。
例えば上記実施形態では、画像処理装置1がMFPによって構成される場合を例示した。しかし、画像処理装置1は、MFPに限られるものではなく、プリンタ専用機、FAX専用機、コピー専用機、スキャナ専用機などであっても構わない。また画像処理装置1は、必ずしも上述したようなジョブを実行する装置に限られず、携帯端末装置などであっても構わない。
また上記においては、ユーザーが表示画面に対して行い得るジェスチャ操作として、フリック、ドラッグ、シングルタップ、ダブルタップ、ロングタップ、ピンチ及びローテーションの複数の操作を例示したが、これら複数の操作以外の操作が含まれるものであっても良いし、逆に上記複数の操作のうちのいずれかが含まれないものであっても構わない。