(57)【要約】【課題】  ２ｉｎ１や４ｉｎ１等の集約設定がなされた文書を表示し、その表示された文書に対して、マルチタッチＵＩを利用した操作により、その集約設定を変更することは考慮されていなかった。【解決手段】  タッチパネルを有する表示部を具備する情報処理装置及びその制御方法であって、表示部に表示された表示オブジェクトにタッチされているユーザの両手の指の数が所定数以上で、かつ両手がタッチパネル上で互いに相反する方向に移動されるのに応じて、その表示オブジェクトを２つの表示オブジェクトに分割し、その分割された２つの表示オブジェクトに表示するオブジェクトを、分割される前の表示オブジェクトに含まれるオブジェクトの属性に従って決定する。【選択図】  図１１
2014038383.tif 000002
【特許請求の範囲】
【請求項１】
タッチパネルを有する表示部を具備する情報処理装置であって、
前記表示部に表示された表示オブジェクトにタッチされているユーザの両手の指の数が所定数に等しいかそれ以上で、かつ前記両手が前記タッチパネル上で互いに相反する方向に移動されるのに応じて、前記表示オブジェクトを２つの表示オブジェクトに分割する分割手段と、
前記分割手段により分割された前記２つの表示オブジェクトに表示するオブジェクトを、分割される前の前記表示オブジェクトに含まれるオブジェクトの属性に従って決定する決定手段と、
を有することを特徴とする情報処理装置。
【請求項２】
前記オブジェクトの属性は、前記分割される前の前記表示オブジェクトが複数のオブジェクトで構成される集約設定を含むことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記分割される前の前記表示オブジェクトが複数のオブジェクトの集約であり、当該表示オブジェクトに配列された横方向のオブジェクトの数が１以外の奇数である場合、前記分割手段による当該表示オブジェクトの分割を禁止する禁止手段を更に有することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記所定数は、６であることを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記オブジェクトが文書の各ページに対応している場合、前記分割手段により分割された前記２つの表示オブジェクトはそれぞれ連続したページのオブジェクトを含むことを特徴とする請求項１に記載の情報処理装置。
【請求項６】
前記分割手段により分割された前記２つの表示オブジェクトはそれぞれ、当該表示オブジェクトに含まれるオブジェクトをランドスケープで表示することを特徴とする請求項１に記載の情報処理装置。
【請求項７】
タッチパネルを有する表示部を具備する情報処理装置を制御する制御方法であって、
分割手段が、前記表示部に表示された表示オブジェクトにタッチされているユーザの両手の指の数が所定数に等しいかそれ以上で、かつ前記両手が前記タッチパネル上で互いに相反する方向に移動されるのに応じて、前記表示オブジェクトを２つの表示オブジェクトに分割する分割工程と、
決定手段が、前記分割工程で分割された前記２つの表示オブジェクトに表示するオブジェクトを、分割される前の前記表示オブジェクトに含まれるオブジェクトの属性に従って決定する決定工程と、
を有することを特徴とする情報処理装置の制御方法。
【請求項８】
コンピュータを、請求項１乃至６のいずれか１項に記載の情報処理装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、タッチパネルにオブジェクトを表示し、ユーザのタッチ操作によりそのオブジェクトに対する処理を実行できる情報処理装置及びその制御方法、プログラムに関する。
【背景技術】
【０００２】
複数ページからなる電子文書等のページオブジェクト（以下、オブジェクト）をドライバ等を用いて印刷する際、文書全体に対して２ｉｎ１（１枚の用紙に２ページを印刷）や４ｉｎ１等の設定を行う技術がある。また、２ｉｎ１や４ｉｎ１の集約設定がなされた文書に対して、その設定を、例えば元の１ｉｎ１に元に戻すことも可能である。
【０００３】
しかし、このための操作は、ドライバを操作中にユーザがメニューを選択する等して行わねばならず操作が煩雑であった。
【０００４】
このような課題に対して、特許文献１は、複数の指の接触を認識可能なマルチタッチＵＩを利用した操作により、オブジェクトを操作する技術を提案している。この特許文献１の発明では、少なくとも１つの指をオブジェクト上に固定し、その他の指を移動するというマルチタッチのジェスチャに、オブジェクトに対する処理を割り当てている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−２９４８５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら従来の手法では、２ｉｎ１や４ｉｎ１等の集約設定がなされた文書を表示し、その表示された文書に対して、マルチタッチＵＩを利用した操作により、その集約設定を変更することは考慮されていなかった。
【０００７】
本発明の目的は、上記従来技術の問題点を解決することにある。
【０００８】
本発明の目的は、表示オブジェクトに両手でタッチし、その表示オブジェクトを分割する操作により表示オブジェクトを２つの表示オブジェクトに分割し、分割された各表示オブジェクトに含まれるオブジェクトを決定する技術を提供することにある。
【課題を解決するための手段】
【０００９】
上記目的を達成するために本発明の一態様に係る情報処理装置は以下のような構成を備える。即ち、
タッチパネルを有する表示部を具備する情報処理装置であって、
前記表示部に表示された表示オブジェクトにタッチされているユーザの両手の指の数が所定数以上で、かつ前記両手が前記タッチパネル上で互いに相反する方向に移動されるのに応じて、前記表示オブジェクトを２つの表示オブジェクトに分割する分割手段と、
前記分割手段により分割された前記２つの表示オブジェクトに表示するオブジェクトを、分割される前の前記表示オブジェクトに含まれるオブジェクトの属性に従って決定する決定手段と、を有することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、表示オブジェクトに両手でタッチし、その表示オブジェクトを分割する操作により表示オブジェクトを２つの表示オブジェクトに分割し、分割された各表示オブジェクトに含まれるオブジェクトを決定できる。これにより例えば、２ｉｎ１等の集約設定がなされた表示オブジェクトを２つに分割し、それぞれが１ｉｎ１の表示オブジェクトを作成することができる。
【図面の簡単な説明】
【００１１】
【図１】本実施形態に係る情報処理装置のハードウェア構成を説明するブロック図。
【図２】実施形態に係る情報処理装置のＣＰＵで実行処理されるソフトウェアモジュールの構成を示すブロック図。
【図３】実施形態に係る情報処理装置のタッチパネルに対するユーザのタッチ入力により生成されるポインティング情報の一例を示す図。
【図４】情報処理装置におけるジェスチャイベント発生処理を説明するフローチャート。
【図５】図６、図７、図９、図１０のフローチャートで発生するイベント名の一覧と、各イベントが発生したときに、ジェスチャイベント処理部２２００へ送信する情報を説明する図。
【図６】図４のＳ４０４のユーザの新たな指によるタッチに伴う処理を説明するフローチャート。
【図７】図４のＳ４０６におけるユーザの指の移動に伴う処理を説明するフローチャート。
【図８】タッチパネル上でユーザが時計回り方向に回転操作している様子を示す図。
【図９】図４のＳ４０８のタッチ解除に伴う処理を説明するフローチャート。
【図１０】図４のＳ４０９のタイマ割込に伴う処理を説明するフローチャート。
【図１１】情報処理装置のタッチＵＩ上の表示オブジェクトを、両手を用いて分割する様子を表す図。
【図１２】実施形態において、タッチＵＩに表示する表示オブジェクトの位置を説明する図。
【図１３】表示オブジェクト中に各オブジェクトの画像が、集約して表示されている様子を表す図。
【図１４】図１３（Ｂ）の表示オブジェクト１３０５を２つの表示オブジェクトに分割する様子を表わした図。
【図１５】図１３（Ｂ）の表示オブジェクト１３０６を２つの表示オブジェクトとに分割する様子を表わす図。
【図１６】図１３（Ｂ）の表示オブジェクト１３０７を表示オブジェクト１６０５と１６０６に分割する様子を表わす図。
【図１７】図１３（Ｂ）の表示オブジェクト１３０８を両手で分割しようとしても分割できないことを説明する図。
【図１８】本発明の実施形態に係る情報処理装置のソフトウェアである、分割処理モジュールの構成を示すブロック図。
【図１９】実施形態において、表示オブジェクトとオブジェクトとを対応付け、表示オブジェクトの各種情報を管理するテーブルの一例を示す図。
【図２０】本実施形態に係る情報処理装置における分割処理モジュールの処理の流れを説明するフローチャート。
【図２１】図２０のＳ２００３のオブジェクトの選択処理を説明するフローチャート（Ａ）と、図２０のＳ２００５のオブジェクトの選択解除を説明するフローチャート（Ｂ）。
【図２２】本実施形態に係る情報処理装置による破り処理を説明するフローチャート。
【発明を実施するための形態】
【００１２】
以下、添付図面を参照して本発明の実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
【００１３】
図１は、本実施形態に係る情報処理装置１０００のハードウェア構成を説明するブロック図である。
【００１４】
情報処理装置１０００は、主にメインボード１１００、液晶などの表示部１２００、タッチパネル１３００、ボタンデバイス１４００を備える。また、表示部１２００とタッチパネル１３００とをまとめてタッチＵＩ１５００と呼ぶこととする。
【００１５】
メインボード１１００は、ＣＰＵ１１０１、無線ＬＡＮモジュール１１０２、電源コントローラ１１０３、ディスプレイコントローラ（ＤＩＳＰＣ）１１０４、パネルコントローラ（ＰＡＮＥＬＣ）１１０５を有している。メインボード１１００は更に、ＲＯＭ１１０６、ＲＡＭ１１０７、二次電池１１０８、タイマ１１０９を有し、これらモジュール１１０１〜１１０９は、バス（不図示）を介して接続されている。
【００１６】
ＣＰＵ１１０１は、バスに接続される各デバイスを制御すると共に、ＲＯＭ１１０６に記憶された、本実施形態に係るソフトウェアモジュール２０００（図２）を、ＲＡＭ１１０７に展開して実行する。ＲＡＭ１１０７は、ＣＰＵ１１０１のメインメモリ、ワークエリア、及び、表示部１２００に表示する画像データの記憶エリアとして機能する。
【００１７】
ディスプレイコントローラ（ＤＩＳＰＣ）１１０４は、ＣＰＵ１１０１の要求に応じて、ＲＡＭ１１０７に展開された画像データの出力を高速に切り替えるとともに、表示部１２００に同期信号を出力する。その結果、ＲＡＭ１１０７に記憶された画像データが、ＤＩＳＰＣ１１０４の同期信号に同期して表示部１２００に出力され、その画像データに対応する画像が表示部１２００に表示される。
【００１８】
パネルコントローラ（ＰＡＮＥＬＣ）１１０５は、ＣＰＵ１１０１の要求に応じて、タッチパネル１３００及びボタンデバイス１４００を制御する。その制御によって、タッチパネル１３００上の指又はスタイラスペンなどの指示物の押下位置や、ボタンデバイス１４００上の押下されたキーに対応するキーコードなどがＣＰＵ１１０１に通知される。押下位置情報は、タッチパネル１３００の横方向の絶対位置を示す座標値（以下、ｘ座標）と、縦方向の絶対位置を示す座標値（以下、ｙ座標）で構成される。タッチパネル１３００は複数ポイントの押下を検知することが可能で、その場合ＣＰＵ１１０１には押下点数分の押下位置情報が通知される。尚、タッチパネル１３００は、抵抗膜方式や静電容量方式、表面弾性波方式、赤外線方式、電磁誘導方式、画像認識方式、光センサ方式等、様々な方式のタッチパネルのうちいずれの方式のものを用いても良い。
【００１９】
電源コントローラ１１０３は、外部電源（不図示）と接続され電力の供給を受ける。これによって、電源コントローラ１１０３に接続された二次電池１１０８を充電しながら、且つ、情報処理装置１０００全体に電力を供給する。外部電源から電力が供給されないときは、二次電池１１０８からの電力を情報処理装置１０００全体に供給する。無線ＬＡＮモジュール１１０２は、ＣＰＵ１１０１の制御に基づいて、他の機器上の無線ＬＡＮモジュールとの無線通信を確立し、情報処理装置１０００との通信を仲介する。無線ＬＡＮモジュール１１０２には、例えばＩＥＥE８０２．１１ｂなどがある。タイマ１１０９は、ＣＰＵ１１０１の制御に基づいて、ジェスチャイベント発生部２１００（図２）へのタイマ割込を発生させる。ジェスチャイベント発生部２１００については図２で後述する。
【００２０】
図２は、実施形態に係る情報処理装置１０００のＣＰＵ１１０１で実行処理されるソフトウェアモジュールの構成を示すブロック図である。尚、このソフトウェアモジュールは、ＣＰＵ１１０１が、ＲＯＭ１１０６に記憶されたプログラムをＲＡＭ１１０７に展開して実行することにより実現される。
【００２１】
ジェスチャイベント発生部２１００は、タッチパネル１３００におけるユーザのタッチ入力を受けて、図５で示される各種ジェスチャイベントを発生させる。ジェスチャイベント発生部２１００は、発生したジェスチャイベントを、ジェスチャイベント処理部２２００へ送信する。ジェスチャイベント処理部２２００は、ジェスチャイベント発生部２１００で発生したジェスチャイベントを受信して、各ジェスチャイベントに応じた処理を実行する。描画部２３００は、ジェスチャイベント処理部２２００の実行結果に応じて、表示部１２００への描画処理を実行する。
【００２２】
ジェスチャイベント発生部２１００の詳細については、図３〜図１０を参照して後述する。
【００２３】
図３（Ａ）〜（Ｇ）は、実施形態に係る情報処理装置のタッチパネルに対するユーザのタッチ入力により生成されるポインティング情報の一例を示す図である。ここでは、ユーザのタッチ入力の例として指を使った場合を示すが、タッチ入力はスタイラスペンなどによる入力でも良い。
【００２４】
ポインティング情報は、図３（Ａ）のように、ポインティング情報番号、タッチ入力発生時刻、タッチ座標数、タッチ座標情報を含んでいる。以下、各構成要素について詳しく説明する。
【００２５】
ポインティング情報番号は、ポインティング情報が作成された順番を示している。タッチ入力発生時刻は、タッチパネル１３００でユーザのタッチ入力が行われた時刻を示している。タッチ座標数は、ユーザがタッチ入力している座標の数を示している。タッチ座標情報は、ユーザがタッチ入力している座標の情報を示しており、ｘ座標、ｙ座標、押下時刻、解除時刻、移動中フラグ、シングルタップフラグ、ダブルタップフラグ、ロングタップフラグを備えている。次に、このタッチ座標情報の構成要素について、詳しく説明する。
【００２６】
タッチ座標情報のｘ座標、ｙ座標は、タッチパネル１３００上で、ユーザの指が接触している１点の座標値を示す。押下時刻、解除時刻は、その指がタッチパネル１３００を押下した時刻と、タッチパネル１３００から離された時刻をそれぞれ示す。移動中フラグは、タッチパネル１３００上をユーザの指が移動中であることを示す。シングルタップフラグは、タッチパネル１３００をユーザの指がシングルタップしたことを示す。ここで、シングルタップとは、ユーザの指がタッチパネル１３００に接触してから所定時間以内に離れることをいう。ダブルタップフラグは、タッチパネル１３００をユーザの指がダブルタップしたことを示す。ここでダブルタップは、所定時間内にシングルタップが連続でなされることをいう。ロングタップフラグは、タッチパネル１３００をユーザの指がロングタップしたことを示す。ここでロングタップとは、ユーザの指がタッチパネルに接触してから所定時間以上動かないことをいう。
【００２７】
タッチ座標情報は、ユーザの指がタッチパネル１３００に接触した場合、例えば図３（Ａ）のように、タッチ座標１という実体を得る。タッチ座標１は、タッチ座標情報の構成要素に従い、図３（Ａ）のように、ｘ座標、ｙ座標、押下時刻、解除時刻、移動中フラグ、シングルタップフラグ、ダブルタップフラグ、ロングタップフラグの値を持つ。
【００２８】
図３（Ａ）〜（Ｇ）は、それぞれがポインティング情報の一例を示している。図３（Ａ）から（Ｇ）は時系列に並んでおり、それぞれがある時点のポインティング情報を示している。また、図３（Ａ）〜（Ｇ）で示すポインティング情報は、ユーザの指の操作に従って、（Ａ）から（Ｇ）の順番に作成される。
【００２９】
ポインティング情報が作成されるときには、作成されるポインティング情報を指し示すポインタが保存されることで、最新のポインティング情報の値を参照することができる。また、過去に作成された全てのポインティング情報のポインタは保存され、保持された全てのポインティング情報の値を参照することができる。例えば、最新のポインティング情報の直前のポインティング情報を参照することができる。但し、ポインティング情報は所定数だけ過去の履歴として保持され、所定数を越えた場合は最も古いポインティング情報から破棄される。破棄されたポインティング情報は参照できない。
【００３０】
図３（Ａ）〜（Ｇ）のポインティング情報の例について簡単に説明する。全てのポインティング情報は、図６のＳ６０１、図７のＳ７０１、図９のＳ９０１、図１０のＳ１０１１、Ｓ１０１３で作成される。
【００３１】
図３（Ａ）のポインティング情報Ｐ1は、ユーザの指が最初にタッチパネル１３００を押下したときに作成され、後述のＳ６０１で作成される。このとき、タッチ座標１が、ユーザの指のタッチ座標情報の値を示している。
【００３２】
図３（Ｂ）のポインティング情報Ｐ2は、直前のポインティング情報が図３（Ａ）のＰ1のときに、ユーザの２本目の指がタッチパネル１３００を押下したときに作成され、後述のＳ６０１で作成される。このとき、タッチ座標２が、２本目の指のタッチ座標情報の値を示している。
【００３３】
図３（Ｃ）のポインティング情報Ｐ3は、直前のポインティング情報が図３（Ｂ）のＰ2のときに、ユーザの２本の指がタッチパネル１３００を移動中に作成され、後述のＳ７０１で作成される。このとき、タッチ座標１，２の移動中フラグが「ＴＲＵＥ」になって移動中であることを示している。図３（Ｃ）では、ｘ座標、ｙ座標が変化するが押下時刻は変化しない。
【００３４】
図３（Ｄ）のポインティング情報Ｐ4は、直前のポインティング情報が図３（Ｃ）のＰ3のときに、ユーザの指がタッチパネル１３００上で止まっているときに作成され、後述のＳ１０１０で作成される。図３（Ｄ）では、ユーザの指が停止しているためｘ座標、ｙ座標は図３（Ｃ）と同じで、タッチ座標１，２の移動中フラグが「ＦＡＬＳＥ」になって停止していることを示している。
【００３５】
図３（Ｅ）のポインティング情報Ｐ5は、直前のポインティング情報が図３（Ｄ）のＰ4のときに、ユーザの３本目の指がタッチパネル１３００を押下したときに作成され、後述のＳ６０１で作成される。このときこのときタッチ座標１，２は図３（Ｅ）と同じであり、タッチ座標３が、３点目の指のタッチ座標情報の値を示している。
【００３６】
図３（Ｆ）のポインティング情報Ｐ6は、直前のポインティング情報が図３（Ｅ）のＰ5のときに、ユーザの２本目の指がタッチパネル１３００から離れたときに作成され、後述の図９のＳ９０１で作成される。タッチ座標２の解除時刻が、２本目の指の離れた時刻を示している。図３（Ｆ）では、タッチ座標１〜３のｘ座標、ｙ座標、押下時刻は変化せず、またタッチ座標２のロングタップフラグが「ＴＲＵＥ」に変化している。
【００３７】
図３（Ｇ）のポインティング情報Ｐ7は、直前のポインティング情報が図３（Ｆ）のＰ6のときに、タイマ１１０９のタイマ割込によって作成され、後述の図１０のＳ１０１３で作成される。このとき、タッチ座標２が削除されていることが分かる。上記ポインティング情報を作成する処理を、図６、図７、図９、図１０のフローチャートを参照して後述する。
【００３８】
図４は、実施形態に係る情報処理装置におけるジェスチャイベント発生処理を説明するフローチャートである。このフローチャートは、タッチパネル１３００でのユーザのタッチ入力を検出してから、ユーザのジェスチャ操作に応じた各イベント処理を発生させるまでの処理を示す。この処理は、ソフトウェアモジュール２０００のジェスチャイベント発生部２１００で実行される。
【００３９】
まずＳ４０１で、初期化処理として指の接触状態を示すポインティング情報Ｐを初期化する。次にＳ４０２に進み、ユーザのタッチ入力、或いは、タイマ１１０９による割込みが発生したかを調べ、タッチ入力、或いは、割込みがあればＳ４０３に進み、そうでなければＳ４０２へ再び戻る。Ｓ４０３では、ユーザの新たな指によるタッチを検出したかどうかを判定し、新たな指によるタッチを検出したときはＳ４０４に進み、そうでなければＳ４０５へ移行する。Ｓ４０４では、ユーザの新たな指によるタッチに伴う処理を行って再びＳ４０２へ戻る。このＳ４０４の詳細は図６のフローチャートを参照して後述する。
【００４０】
Ｓ４０５では、タッチしているユーザの指の移動を検出したかどうかを判定し、検出した場合はＳ４０６へ移行し、そうでなければＳ４０７へ移行する。Ｓ４０６では、ユーザの指の移動に伴う処理を行ってＳ４０２へ再び戻る。このＳ４０６の詳細は図７のフローチャートを参照して後述する。
【００４１】
Ｓ４０７では、ユーザの指がタッチパネル１３００から離されたことを検出したかどうかを判定し、指が離されたときはＳ４０８に進んで、ユーザのタッチ解除に伴う処理を行ってＳ４０２へ再び戻る。このＳ４０８の詳細は図９のフローチャートを参照して後述する。またＳ４０７で指が離されたのを検知しないときはＳ４０９へ移行する。Ｓ４０９では、タイマ１１０９からジェスチャイベント発生部２１００へタイマ割込が発生したときの処理を行ってＳ４０２へ再び戻る。
【００４２】
図５は、図６、図７、図９、図１０のフローチャートで発生するイベント名の一覧と、各イベントが発生したときに、ジェスチャイベント処理部２２００へ送信する情報を説明する図である。・
図６は、図４のＳ４０４のユーザの新たな指によるタッチに伴う処理を説明するフローチャートである。
【００４３】
まずＳ６０１で、直前のポインティング情報が存在しなければポインティング情報を新規に作成する。そうでなければ、直前のポインティング情報のポインティング情報番号、タッチ入力発生時刻、タッチ座標数を変更し、タッチ座標を新たに追加したポインティング情報を新規作成する。
【００４４】
ここで、直前のポインティング情報とは、Ｓ６０１で作成されるポインティング情報の１つ前に作成されたポインティング情報のことをいう。また、最新のポインティング情報とは、Ｓ６０１で作成されたポインティング情報のことをいう。例えば図３（Ａ）では、直前のポインティング情報が無いので、１点のタッチ入力を検出し、ポインティング情報Ｐ1を新たに作成する。そしてＳ４０３で２点目のタッチ入力を検出した場合は、図３（Ａ）のポインティング情報Ｐ1を参照して、図３（Ｂ）のポインティング情報Ｐ2を新規に作成する。図３（Ｂ）の網掛け部分が、図３（Ａ）との相違部分である。具体的には、ポインティング情報番号を「２」に、タッチ入力発生時刻を「１″２１」に、タッチ座標数を「２」に変更し、ユーザのタッチ入力の２点目である「タッチ座標２」を追加する。更に３点目のタッチ入力を検出した場合は、同様にして、図３（Ｄ）のポインティング情報Ｐ4を参照して図３（Ｅ）のポインティング情報Ｐ5を作成する。
【００４５】
こうしてポインティング情報を作成するとＳ６０２に進み、タッチイベントの送信処理を行う。図５（Ａ）に示すように、タッチイベント送信処理では、ジェスチャイベント処理部２２００へ、最新のポインティング情報である、押下したタッチ座標の座標値とタッチ座標数を送信し、ユーザの指によるタッチに伴う処理を終了する。
【００４６】
図７は、図４のＳ４０６におけるユーザの指の移動に伴う処理を説明するフローチャートである。
【００４７】
まずＳ７０１で、直前のポインティング情報のポインティング情報番号とタッチ入力発生時刻を変更し、移動中フラグを「ＴＲＵＥ」にしたポインティング情報を作成する。図７において、直前のポインティング情報とは、Ｓ７０１で作成されるポインティング情報の１つ前に作成されたポインティング情報のことをいう。また、最新のポインティング情報とは、Ｓ７０１で作成されたポインティング情報のことをいう。
【００４８】
例えば図３（Ｃ）において、直前のポインティング情報が図３（Ｂ）のポインティング情報Ｐ2であるならば、ポインティング情報Ｐ2を参照して、図３（Ｃ）のポインティング情報Ｐ3を新たに作成する。図３（Ｃ）の網掛け部分が図３（Ｂ）との相違部分である。具体的には、ポインティング情報番号を「３」に、タッチ入力発生時刻を「３″００」に、タッチ座標１とタッチ座標２のｘ座標とｙ座標の値を最新の値に変更し、移動中フラグを「ＴＲＵＥ」にする。
【００４９】
次にＳ７０２に進み、最新のポインティング情報のタッチ座標数が「１」かどうかを判定し「１」である場合はＳ７０３へ移行し、そうでなければＳ７０４へ移行する。Ｓ７０３では、１点のタッチ座標が移動しているので、スワイプイベント送信処理を行う。ここで、スワイプとは、指先をタッチパネル１３００に接触させたまま１方向に移動（滑らすような）動作のことをいう。このときは図５（Ｂ）に示すように、スワイプイベントが発生すると、最新のポインティング情報の座標値、及び、最新と直前のポインティング情報の座標値の差分に基づく移動距離をジェスチャイベント処理部２２００に渡す。
【００５０】
Ｓ７０４では、最新のポインティング情報のタッチ座標数が「２」かどうかを判定し、そうであればＳ７０５へ移行し、そうでなければＳ７１４へ移行する。Ｓ７０５では、２点のタッチ座標を結ぶ直線の距離が縮まっているかどうかを判定して、ピンチインが実行されたかどうかを判定し、そうであればＳ７０６へ進み、そうでなければＳ７０７へ移行する。Ｓ７０６では、ピンチインイベント送信処理を行う。ここで、ピンチインとは、２つの指先をタッチパネル１３００に接触させたまま、互いに近づける（つまむような）動作のことをいう。こうしてピンチインイベントが発生すると図５（Ｃ）に示すように、２点のタッチ座標の中心座標値、及び、２点のタッチ座標を結ぶ直線の縮小距離から計算したピンチインの縮小率をジェスチャイベント処理部２２００へ渡す。
【００５１】
Ｓ７０７では、２点のタッチ座標を結ぶ直線の距離が拡大しているかどうかによりピンチアウトが実行されたかどうかを判定し、そうであればＳ７０８へ進み、そうでなければＳ７０９へ移行する。Ｓ７０８では、ピンチアウトイベント送信処理を行う。ここで、ピンチアウトとは、２つの指先をタッチパネル１３００に接触させたまま、互いに遠ざける（指を広げるような）動作のことをいう。ピンチアウトイベントが発生すると、図５（Ｄ）に示すように、最新のポインティング情報の２点のタッチ座標の中心座標値、及び、２点のタッチ座標を結ぶ直線の拡大距離から計算したピンチアウトの拡大率をジェスチャイベント処理部２２００へ渡す。
【００５２】
Ｓ７０９では、２点のタッチ座標が同じ方向に移動しているかどうかにより２点スワイプが実行されたかどうかを判定し、実行された判定した場合はＳ７１０へ移行し、そうでなければＳ７１１へ移行する。Ｓ７１０では、２点スワイプイベント送信処理を行う。２点スワイプイベントが発生すると、図５（Ｅ）に示すように、最新のポインティング情報の２点のタッチ座標の座標値、及び、２点のタッチ座標の最新と直前のポインティング情報の座標値の差分に基づく移動距離をジェスチャイベント処理部２２００へ渡す。
【００５３】
次にＳ７１１では、２点のタッチ座標の回転からローテートが実行されたかどうかを判定し、ローテートが実行された場合はＳ７１２へ移行し、そうでなければＳ７１３へ移行する。Ｓ７１２では、ローテートイベントの送信処理を行う。ローテートイベントが発生すると、最新のポインティング情報の２点のタッチ座標値から計算した回転の中心座標値、及び、２点のタッチ座標の最新と直前のポインティング情報の座標値から計算した回転角度をジェスチャイベント処理部２２００へ渡す。これは図５（Ｆ）に示されている。
【００５４】
Ｓ７１３では、いずれのユーザ操作にも該当しなかった場合はその他の処理を行う。その他の処理は、処理として何もしない処理でもよい。
【００５５】
またＳ７０４で、最新のポインティング情報のタッチ座標数が「２」でないときはＳ７１４において、３点以上のタッチ座標が移動したときのイベント送信処理を行う。図５（Ｍ）に示すように、３点以上のタッチ座標移動イベントが発生すると、以下の情報をジェスチャイベント処理部２２００へ送信する。この情報には、最新のポインティング情報の全座標値、全てのタッチ座標から計算した最新の重心座標値、最新の座標数、直前のポインティング情報の全座標値、直前の重心座標値が含まれる。以上の処理を以て、指の移動に伴う処理を終了する。
【００５６】
ここで、ローテートイベントについて図８を用いて詳しく説明する。
【００５７】
図８は、タッチパネル１３００上でユーザが時計回り方向に回転操作している様子を示す図である。同図（Ａ）は、ユーザが（ｘ１，ｙ１）と（ｘ２，ｙ２）の２点をタッチしており、その２点を結んだ直線ｍの中心が回転の中心座標値、ｘ軸に平行な線と直線とのなす角度がａである。一方、同図（Ｂ）は、ユーザが（ｘ１’，ｙ１’）と（ｘ２’，ｙ２’）の２点をタッチしており、その２点を結んだ直線ｎの中心が回転の中心座標値、ｘ軸に平行な線と直線とのなす角度がｂである。図８（Ｂ）がローテートイベント送信時のタッチ座標で、図８（Ａ）がその前のタッチ座標であったとすると、角度ａから角度ｂを引いた値が回転角度になる。
【００５８】
図９は、図４のＳ４０８のタッチ解除に伴う処理を説明するフローチャートである。
【００５９】
まずＳ９０１で、直前のポインティング情報のポインティング情報番号、タッチ入力発生時刻、タッチ座標数を変更し、タッチ解除されたタッチ座標の解除時刻をセットしたポインティング情報を作成する。図９において、直前のポインティング情報とは、Ｓ９０１で作成されるポインティング情報の１つ前に作成されたポインティング情報のことをいう。また、最新のポインティング情報とは、Ｓ９０１で作成されたポインティング情報のことをいう。例えば、直前のポインティング情報が図３（Ｅ）のポインティング情報Ｐ5であった場合、ポインティング情報Ｐ5を参照して、図３（Ｆ）のポインティング情報Ｐ6を新たに作成する。図３（Ｆ）の網掛け部分が図３（Ｅ）との相違部分である。具体的には、ポインティング情報番号を「６」に、タッチ入力発生時刻を「７″００」に、タッチ座標数を「２」に変更し、タッチが解除された座標２の解除時刻を「７″００」にセットする。
【００６０】
次にＳ９０２に進み、最新のポインティング情報のタッチが解除されたタッチ座標の移動中フラグが「ＴＲＵＥ」かどうかを判定し、そうであればＳ９０３へ移行し、そうでなければＳ９０４へ移行する。Ｓ９０３では、タッチ解除されたタッチ座標の移動中フラグが「ＴＲＵＥ」であるため移動中に指が離されたと認識し、フリックイベントの送信処理を行ってＳ９０９に進む。ここでフリックとは、スワイプ中に指を離す（指をはじくような）動作のことをいう。フリックイベントが発生すると、図５（Ｇ）に示すように、最新のポインティング情報の座標値、及び、最新と直前のポインティング情報の座標値から計算した指の移動速度をジェスチャイベント処理部２２００へ渡す。
【００６１】
Ｓ９０４では、タッチ解除されたタッチ座標のシングルタップフラグが「ＴＲＵＥ」かどうかを判定し、そうであればＳ９０５へ移行し、そうでなければＳ９０６へ移行する。Ｓ９０５では、タッチ解除されたタッチ座標が既にシングルタップされた後であることから、タッチ解除されたタッチ座標にダブルタップフラグを立ててＳ９０９に進む。
【００６２】
Ｓ９０６では、タッチ解除されたタッチ座標の［（解除時刻−押下時刻）＜所定時間］かどうかを判定し、そうであればＳ９０７へ移行し、そうでなければＳ９０８へ移行する。Ｓ９０７では、タッチ座標が所定時間以内にタッチ解除されているため、タッチ解除されたタッチ座標にシングルタップフラグを立ててＳ９０９に進む。一方Ｓ９０８では、所定時間が経過した後にタッチ座標がタッチ解除されたことから、タッチ解除されたタッチ座標にロングタップフラグを立ててＳ９０９に進む。Ｓ９０９では、タッチ解除イベント送信処理を行う。タッチ解除イベントが発生すると、図５（Ｈ）に示すように、最新のポインティング情報の座標値、及び、座標数をジェスチャイベント処理部２２００へ渡す。以上の処理を以て、タッチ解除に伴う処理を終了する。
【００６３】
図１０は、図４のＳ４０９のタイマ割込に伴う処理を説明するフローチャートである。  まずＳ１００１で、最新のポインティング情報のタッチ座標で、ダブルタップフラグとシングルタップフラグの両方が「ＴＲＵＥ」のタッチ座標があるかどうかを判定し、あればＳ１００２へ移行し、なければＳ１００３へ移行する。Ｓ１００２では、タッチ座標のダブルタップフラグが立っているため、ダブルタップイベント送信処理を行ってＳ１００５に進む。ここではダブルタップイベントが発生すると、図５（Ｉ）に示すように、最新のポインティング情報の座標値をジェスチャイベント処理部２２００へ渡す。
【００６４】
一方、Ｓ１００３では、最新のポインティング情報のタッチ座標で、シングルタップフラグだけが「ＴＲＵＥ」のタッチ座標があるかどうかを判定し、あればＳ１００４へ移行し、なければＳ１００５へ移行する。Ｓ１００４では、タッチ座標のシングルタップフラグが立っているため、シングルタップイベント送信処理を行ってＳ１００５に進む。シングルタップイベントが発生すると、図５（Ｊ）に示すように、最新のポインティング情報の座標値をジェスチャイベント処理部２２００へ渡す。
【００６５】
Ｓ１００５では、最新のポインティング情報のタッチ座標で、ロングタップフラグが「ＴＲＵＥ」のタッチ座標があるかどうかを判定し、あればＳ１００６へ移行し、なければＳ１００７へ移行する。Ｓ１００６では、タッチ座標のロングタップフラグが立っているため、ロングタップイベント送信処理を行ってＳ１００７に進む。ロングタップイベントが発生すると、図５（Ｋ）に示すように、最新のポインティング情報の座標値をジェスチャイベント処理部２２００へ渡す。
【００６６】
Ｓ１００７では、最新のポインティング情報のタッチ座標の中で、押下時刻から所定時間以上経過しているものがあるかどうかを判定し、あればＳ１００８へ移行し、なければＳ１０１０へ移行する。Ｓ１００８では、押下してから所定時間以上が経過している最新のポインティング情報のタッチ座標で、過去のポインティング情報のタッチ座標を全て検索し、最新のもの含め移動中フラグが「ＴＲＵＥ」になったタッチ座標があるかを判定する。あればＳ１０１０へ移行し、なければＳ１００９へ移行する。Ｓ１００９では、タッチ座標は、指をタッチしてから一度も移動フラグを立てず、且つ、所定時間以上動かさずにホールドしたものであることから、タッチアンドホールドイベント送信処理を行ってＳ１０１０に進む。タッチアンドホールドイベントが発生すると、図５（Ｌ）に示すように、最新のポインティング情報の座標値をジェスチャイベント処理部２２００へ渡す。
【００６７】
Ｓ１０１０では、移動中フラグが立っているタッチ座標があるかどうかを判定し、あればＳ１０１１へ移行し、なければＳ１０１２へ移行する。Ｓ１０１１では、直前のポインティング情報のポインティング情報番号、タッチ入力発生時刻を変更し、全てのタッチ座標の移動中フラグを外したポインティング情報を作成してＳ１０１２に進む。例えば、直前のポインティング情報が図３（Ｃ）のポインティング情報Ｐ3であった場合、ポインティング情報Ｐ3を参照して、図３（Ｄ）のポインティング情報Ｐ4を新たに作成する。図３（Ｄ）の網掛け部分が図３（Ｃ）との相違部分である。具体的には、図３（Ｄ）で、ポインティング情報番号を「４」に、タッチ入力発生時刻を「３″００５０」に変更し、移動中フラグを「ＦＡＬＳＥ」にセットする。ここでタッチ入力発生時刻が「３″００５０」になっているのは、例えばタイマ割込が５０ミリ秒間隔で発生していると仮定しているためである。
【００６８】
次にＳ１０１２に進み、タッチ座標の解除時刻から所定の時間が経過しているタッチ座標があるかどうかを判定し、あればＳ１０１３へ移行し、なければタイマ割込に伴う処理を終了する。ステップ１０１３では、直前のポインティング情報のポインティング情報番号を変更し、解除時刻から所定時間が経過したタッチ座標を削除したポインティング情報を作成する。例えば、直前のポインティング情報が図３（Ｆ）のポインティング情報Ｐ6である場合、ポインティング情報Ｐ6を参照して、図３（Ｇ）のポインティング情報Ｐ7を新たに作成する。図３（Ｇ）の網掛け部分が図３（Ｆ）との相違部分である。具体的には、ポインティング情報番号を「７」に変更し、図３（Ｆ）のタッチ座標２を削除する。以上の処理を以て、タイマ割込に伴う処理を終了する。
【００６９】
次に図１１を参照して、実施形態１で実現する操作の一例を説明する。
【００７０】
図１１は、情報処理装置１０００のタッチＵＩ１５００上の表示オブジェクト１１２３を、両手（左手１１２１、右手１１２２）を用いて分割する様子を表す図である。ここで、単にオブジェクトと言ったときは、ＰＤＦファイルなどの文書の各ページのオブジェクトの実態を表し、表示オブジェクトと言った時はプレビュー表示している際の各ページのプレビュー画像などのことを示す。ただし、オブジェクトの定義は特にこれに限定されるものではない。
【００７１】
図１１（Ａ）は、タッチＵＩ１５００上に、表示オブジェクト１１２３を含む表示オブジェクトが表示されている様子を表す。ここで両手（１１２１，１１２２）のそれぞれの３本以上の指（合計６本以上の指）を用いて表示オブジェクト１１２３にタッチし、左右の手をそれぞれ矢印１１２８，１１２９の方向へそれぞれを移動させる。こうして両手（１１２１，１１２２）をタッチパネル上にタッチした状態で相反する方向にそれぞれ所定の距離だけ移動させると、図１１（Ｂ）に示すように、表示オブジェクト１１２３は、２つの表示オブジェクト１１２５と１１２６とに分割される。
【００７２】
図１２は、実施形態において、タッチＵＩ１５００に表示する表示オブジェクトの位置を説明する図である。ここでは各表示オブジェクトの位置は、各表示オブジェクトを表す矩形の左上の頂点の位置としている。図１２では、タッチＵＩ１５００の左上の点（ｘ，ｙ）の座標を（０，０）とし、横軸をｘ軸、縦軸をｙ軸としている。座標ｃ１〜ｃ３は、各表示オブジェクトの位置を表わしている。また各表示オブジェクトのサイズは、横方向の長さがＸで縦方向の長さがＹであり、隣接する表示オブジェクトの位置の間隔をＤとしている。
【００７３】
図１３は、表示オブジェクト中に各オブジェクトの画像が、集約して表示されている様子を表す図である。図１３（Ａ）の１３０１〜１３０４、図１３（Ｂ）の１３０５〜１３０８は、表示オブジェクトを表す。
【００７４】
図１３（Ａ）は、各表示オブジェクト内に一つのオブジェクトの画像が表示されている、いわゆる１ｉｎ１が設定された表示オブジェクトであることを表している。
【００７５】
図１３（Ｂ）は、各表示オブジェクトに、異なる集約設定がなされている様子を表している。表示オブジェクト１３０５には、オブジェクト１の画像だけを表示する、１ｉｎ１が設定されている。表示オブジェクト１３０６には、オブジェクト２と３の画像が表示される２ｉｎ１が設定されている。また表示オブジェクト１３０７には、オブジェクト４〜５の画像が表示される４ｉｎ１が設定されている。更に表示オブジェクト１３０８には、オブジェクト８〜１３の画像が表示される６ｉｎ１が設定されている。
【００７６】
図１８は、本発明の実施形態に係る情報処理装置のソフトウェアである、分割処理モジュール１８０１の構成を示すブロック図である。
【００７７】
この分割処理モジュール１８０１は、図２のジェスチャイベント処理部２２００に存在し、タッチイベント（図５（Ａ））、タッチ解除イベント（図５（Ｈ））、３点以上の指移動イベント（図５（Ｍ））に対する処理を実行する。
【００７８】
タッチイベント処理部１８０２は、タッチイベントを処理する。タッチ解除イベント処理部１８０３は、タッチ解除イベントを処理する。３点以上の指移動イベント処理部１８０４は、３点以上の指移動イベントを処理する。３点以上の指移動イベント処理部１８０４中の破り処理部１８０５は、３点以上の指移動イベントのうち、図１１（Ｂ）に示すような両手による操作が行われた場合に、表示オブジェクトを分割する処理を実行する。
【００７９】
図１９は、実施形態において、表示オブジェクトとオブジェクトとを対応付け、表示オブジェクトの各種情報を管理するテーブルの一例を示す図である。これはＲＡＭ１１０７に保持されるデータであり、このテーブルは破り処理モジュール１８０５が読み書きすることができる。またテーブルの初期値は、破り処理を行うアプリケーションを起動した際に分割処理モジュール１８０１によって作成される。図２の描画部２３００は、このテーブルの情報を読み込み、この情報に従って描画処理を実行する。
【００８０】
図１９の表示オブジェクト番号は、タッチＵＩ１５００上に表示される表示オブジェクトを一意に決定する番号である。オブジェクト番号は、各オブジェクトを一意に決定できるオブジェクトのＩＤである。集約設定（横，縦）は、１つの表示オブジェクト番号につきオブジェクトがいくつ表示されるかに基づき決定される、（横，縦）それぞれの割り付け枚数を表す。例えば、（１，１）であれば横も縦も１枚ずつなので、１ｉｎ１の設定を表す。また（３，２）であれば、横３枚、縦２枚なので、３×２＝６ｉｎ１の設定を表す。また、集約設定は、常に横方向の長さが長くなるように分割処理モジュール１８０１が計算する。格納アドレスは、それぞれのオブジェクトがＲＡＭ１１０７に格納されているアドレスを表す。矩形座標は、各オブジェクトを表す矩形の左上の頂点が、タッチＵＩ１５００に表示される位置を表す座標である。選択フラグは、オブジェクトが選択状態にあるかどうかを表すフラグであり、選択状態の場合は「ＴＲＵＥ」、そうでない場合は「ＦＡＬＳＥ」となる。オブジェクト情報の最後には、オブジェクト情報の終端であることを示す「ＥＮＤＯＢＪ」が、オブジェクト番号に格納される。また、その場合のアドレスなどの各値は、全て「ＮＵＬＬ」に設定されている。
【００８１】
描画部２３００は、これらのオブジェクト情報を読み取り、それぞれの矩形領域にオブジェクトのプレビュー画像を表示する。その際、表示オブジェクト番号が同じオブジェクトを一つの表示オブジェクトに集約して表示する。このとき集約設定を参照して縦横の枚数を確定する。選択フラグが立っているオブジェクトは選択状態（例えば、色を反転させるなど）として表示する。
【００８２】
例として、図１９（Ａ）は、図１３（Ｂ）のように、表示オブジェクトが、オブジェクト番号が「１」のオブジェクトから順に、１ｉｎ１，２ｉｎ１，４ｉｎ１，６ｉｎ１に設定されているオブジェクト情報を表している。
【００８３】
図１４は、図１３（Ｂ）の表示オブジェクト１３０５を２つの表示オブジェクト１４０５と１４０６に分割する様子を表わした図である。尚、図１１と共通する部分は同じ記号で示している。
【００８４】
図１４（Ａ）は、両手１１２１，１１２２で表示オブジェクト１３０５にタッチした状態を示し、図１４（Ｂ）は、左右の手をそれぞれ矢印１１２７，１１２８の方向に移動することにより、２つのオブジェクト１４０５，１４０６に分割した状態を示す。
【００８５】
このときのオブジェクト情報の変化は、図１９（Ａ）（Ｂ）の変化に現れている（変化部分は、図１９（Ｂ）の網掛け部分である）。このときの変更内容の詳しい説明は後述する。
【００８６】
また、本実施形態においては、図１４（Ａ）から（Ｂ）への変化のように、表示オブジェクトを分割した後も、その表示形式は、横長のランドスケープで統一している。そのため、本実施形態では、分割した後の縦長のポートレートのオブジェクトを左方向へ９０度回転し、縦方向の長さを元の表示オブジェクト１３０５の長さに合わせるように拡大して表示するようにしている。しかし、必ずしもこの方式に従う必要はなく、分割後も回転や拡大をせずそのまま表示してもよい。
【００８７】
また図１５（Ａ）（Ｂ）は、図１３（Ｂ）の表示オブジェクト１３０６を、表示オブジェクト１５０５と１５０６とに分割する様子を表わす図である。尚、図１１と共通する部分は同じ記号で示している。このときのオブジェクト情報の変化は、図１９（Ａ）と（Ｃ）の変化に現れている（変化部分は、図１９（Ｃ）の網掛け部分である）。このときの変更内容の詳しい説明は図２２を参照して後述する。
【００８８】
また図１６（Ａ）〜（Ｃ）は、図１３（Ｂ）の表示オブジェクト１３０７を表示オブジェクト１６０５と１６０６に分割する様子を表わす図である。図１６（Ａ）は、オブジェクトが４ｉｎ１で配置された表示オブジェクトを示し、図１６（Ｂ）は、図１１（Ｂ）に示すようにして、表示オブジェクト１３０７が表示オブジェクト１６０５と１６０６とに分割された状態を示す。図１６（Ｃ）は、図１４（Ｂ）で説明したように、表示オブジェクトを分割した後も、その表示形式を横長のランドスケープで統一している。そのため、分割した後の横長のポートレートのオブジェクトを左方向へ９０度回転し、表示オブジェクト１６０５，１６０６のサイズを元の表示オブジェクト１３０７のサイズに合わせるように拡大して表示している。このときのオブジェクト情報の変化は、図１９（Ａ）と（Ｄ）の変化に現れている（変化部分は、図１９（Ｄ）の網掛け部分である）。このときの変更内容の詳しい説明は、図２２を参照して後述する。尚、図１６（Ｂ）から図１６（Ｃ）への表示の変化は、例えばオペレータが、タッチＵＩ１５００から指を離すことにより、なされても良い。
【００８９】
さらに、図１７（Ａ）（Ｂ）は、図１３（Ｂ）の表示オブジェクト１３０８を両手で分割しようとしても分割できないことを説明する図である。これは、横方向のオブジェクトの枚数が３であるため、真ん中で分割しないことを目的としている。
【００９０】
本実施形態では以下でも、表示オブジェクト内に配列して表示されるオブジェクトの横方向の枚数が、１以外の奇数の場合、分割処理を禁止しているが、特にこれに限定するものではない。オブジェクト同士の間の部分等、真ん中以外で２分割するようにしてもよいし、分割できる部分では全て分割するようにしてもよい。このとき、オブジェクト情報は変化しない。
【００９１】
以下、図１４〜図１７、図２０〜２２を参照して、本実施形態に係る表示オブジェクトの分割操作の詳細を説明する。尚、本実施形態では、この処理は情報処理装置１０００のソフトウェアにより実現されるが、ハードウェアモジュールで実現してもよい。
【００９２】
図２０は、本実施形態に係る情報処理装置における分割処理モジュール１８０１の処理の流れを説明するフローチャートである。この処理を実行するプログラムはＲＯＭ１１０６に記憶されており、このプログラムをＣＰＵ１１０１が実行することによりこの処理が実現される。
【００９３】
まずＳ２００１で、ＣＰＵ１１０１は、タイマイベントもしくはジェスチャイベントを受信しているかどうかを調べる。タイマイベントはＯＳが所定の時間毎に定期的に発生させるイベントのことを指す。タイマイベントもしくはジェスチャイベントを受信している場合はＳ２００２へ進み、受信していない場合はＳ２００１へ戻ってイベントの受信があるかどうかを再度確かめる。
【００９４】
Ｓ２００２でＣＰＵ１１０１は、検出したイベントがタッチイベントであるかどうかを判定する。タッチイベントである場合はＳ２００３へ、そうでない場合はＳ２００４へ移行する。Ｓ２００３でＣＰＵ１１０１は、オブジェクトの選択処理を実行する。この処理は分割処理モジュール１８０１のうち、タッチイベント処理部１８０２が実行する。オブジェクトの選択処理のフローチャートを図２１（Ａ）に示し、その説明は後述する。Ｓ２００３が終了すると、Ｓ２００１に戻る。
【００９５】
Ｓ２００２でタッチイベントでない場合はＳ２００４に進み、ＣＰＵ１１０１は、Ｓ２００１で検出したイベントがタッチ解除イベントであるかどうかを判定し、タッチ解除イベントであればＳ２００５へ、そうでない場合はＳ２００６へ移行する。Ｓ２００５でＣＰＵ１１０１は、オブジェクトの選択解除処理を実行する。この処理は分割処理モジュール１８０１のうち、タッチ解除イベント処理部１８０３が実行する。この処理のフローチャートを図２１（Ｂ）に示し、その説明は後述する。こうしてＳ２００５が終了するとＳ２００１に戻る。
【００９６】
またＳ２００６でＣＰＵ１１０１は、検出したイベントが、３点以上の指移動イベントかどうかを判定する。そうである場合はＳ２００７へ進み、そうでない場合はＳ２００１に戻ってイベントの受信を待つ。Ｓ２００７でＣＰＵ１１０１は、３点以上の指移動イベントに含まれる情報から、タッチ座標数が６点以上かどうかを判定する。そうであればＳ２００８へ進み、そうでない場合はＳ２００１に戻ってイベントの受信を待つ。Ｓ２００８でＣＰＵ１１０１は、表示オブジェクトの破り処理を実行する。この処理は、分割処理モジュール１８０１のうち、３点以上の指移動イベント処理部１８０４の中の破り処理部１８０５が実行する。この処理のフローチャートを図２２に示し、その説明は後述する。こうしてＳ２００８の処理が終了するとＳ２００１に戻る。
【００９７】
上記処理を繰り返し実行することで、ジェスチャイベント発生部２１００が送信したイベントのうち、本実施形態で必要なイベントを処理することができる。
【００９８】
図２１（Ａ）は、本実施形態に係る情報処理装置における、図２０のＳ２００３のオブジェクトの選択処理を説明するフローチャートである。このフローチャートは、タッチイベント処理部１８０２による処理に相当している。
【００９９】
まずＳ３００１で、ＣＰＵ１１０１は、それぞれの矩形座標について、オブジェクトの表示領域内に、タッチ座標が６点以上あるか否かを調べる。オブジェクトの表示領域とは、先に述べた矩形座標を左上とし、横Ｘ、縦Ｙの長さの矩形領域のことである。タッチ座標は、タッチイベントの付加情報として取得できる、最新のタッチ座標のことを表す。タッチ座標が６点以上あればＳ３００２に進み、ＣＰＵ１１０１は、表示領域内にタッチ座標が３点以上あったオブジェクトのオブジェクト情報の選択フラグを「ＴＲＵＥ」に設定する。そしてＳ３００３に進み、その表示オブジェクトの表示状態を更新して、この処理を終了する。尚、Ｓ３００１でタッチ座標が６点以上なければ、この処理を終了する。
【０１００】
図２１（Ｂ）は、図２０のＳ２００５のオブジェクトの選択解除を説明するフローチャートである。このフローチャートは、タッチ解除イベント処理部１８０３による処理に相当している。
【０１０１】
まずＳ３００４でＣＰＵ１１０１は、全てのオブジェクトについて、選択フラグが「ＴＲＵＥ」であるオブジェクトがあるかどうかを調べる。ある場合はＳ３００５へ、ない場合は、この処理を終了する。Ｓ３００５でＣＰＵ１１０１は、Ｓ３００４で選択フラグが立って（ＴＲＵＥ）いたオブジェクト毎に、矩形座標を頂点とする矩形領域内に、タッチ座標が６点以上あるか否かを調べる。選択フラグが立っていた全てのオブジェクトのタッチ座標が６点以上であれば、この処理を終了する。一方、選択フラグが立っていたオブジェクトで、タッチ座標が６点以上でないオブジェクトがあればＳ３００６へ移行する。Ｓ３００６でＣＰＵ１１０１は、その矩形領域内にタッチ座標が３点以上なかったものの選択フラグを「ＦＡＬＳＥ」、即ち、非選択にする。そしてＳ３００７に進み、ＣＰＵ１１０１は、描画部２３００に表示画像の更新を依頼する。
【０１０２】
図２２は、本実施形態に係る情報処理装置１０００による破り処理を説明するフローチャートである。この処理は、破り処理部１８０５による処理に相当している。この処理を実行するプログラムはＲＯＭ１１０６に記憶されており、このプログラムをＣＰＵ１１０１が実行することによりこの処理が実現される。この処理は、図１１で示すように、両手（１１２１，１１２２）を用いて表示オブジェクト１１２３を破るようにして分割する処理を詳しく説明したものである。
【０１０３】
まずＳ２２０１でＣＰＵ１１０１は、一つの表示オブジェクトが選択状態であるか否かを判定する。これは、例えば図１９に示すオブジェクト情報において、一種類の表示オブジェクトの選択フラグ欄だけが「ＴＲＵＥ」になっているかどうかにより判定すればよい。一つの表示オブジェクトだけが選択されていればＳ２２０２に進み、そうでないときは、この処理を終了する。Ｓ２２０２でＣＰＵ１１０１は、最新の重心座標から、それぞれの最新のタッチ点までの距離の平均値を計算する。最新のタッチ座標と最新の重心座標は、３点以上の指移動イベントから取得できる。
【０１０４】
いま現時点ｔにおける、最新の各タッチ座標をＦｉ（ｔ）（ｉ：１〜Ｎ、Ｎは最新のタッチ座標の数）とし、それらから計算した最新の重心座標をＧ（ｔ）とすると、最新の重心から各タッチ座標までの距離の平均値ａｖ（ｔ）は、次の式で表わされる。
【０１０５】
ａｖ（ｔ）＝Σｉ（｜Ｆｉ（ｔ）−Ｇ（ｔ）｜）／Ｎ    …式（１）
ここで、｜Ｆｉ（ｔ）−Ｇ（ｔ）｜は、２座標間の距離を表し、Σｉは、｜Ｆｉ（ｔ）−Ｇ（ｔ）｜のｉ＝１からｉ＝Ｎまでの合計を表す。
【０１０６】
次にＳ２２０３に進み、ＣＰＵ１１０１は、式（１）で求めた最新の重心から各タッチ座標までの距離の平均値が、所定距離より大きいかどうかを判定する。所定距離より大きい場合はＳ２２０４へ進み、同じかそれ以下の場合は処理を終了する。これは図１１や図１５に示すように、オペレータが両手の指を広げた状態で表示オブジェクトにタッチしているかどうかを判定しているもので、その場合は本実施形態の破り処理を行なおうとしており、そうでないときは破り処理でないと判断している。
【０１０７】
Ｓ２２０４でＣＰＵ１１０１は、オブジェクト情報を確認し、選択フラグが立っているオブジェクトの集約設定（横，縦）の横方向の値が偶数かどうかを判定する。これは表示オブジェクトに集約されるオブジェクトの横方向の枚数によって、分割処理を行うか、行わないかを決定するためである。横方向の枚数が偶数である場合はＳ２２０５へ移行し、横方向の枚数が奇数である場合はＳ２２０６へ移行する。Ｓ２２０５でＣＰＵ１１０１は、オブジェクト情報の更新を行う。その際、選択中の表示オブジェクトの上から半分と残り半分のオブジェクトで表示オブジェクト番号を異なるものにする。そしてＳ２２０７に進んで、ＣＰＵ１１０１は、描画部２３００に表示画像の更新を依頼する。
【０１０８】
例えば、前述したように、図１５（Ａ）のように２ｉｎ１に設定されている表示オブジェクト１３０６に対してここまでの処理を実行した場合、オブジェクト情報は図１９（Ａ）から図１９（Ｃ）へと変更される。この場合の変更は、図１９（Ａ）での表示オブジェクト番号２が、図１９（Ｃ）では表示オブジェクト番号２−１，２−１とそれぞれ異なるオブジェクト番号に振り直されている。また、集約設定は、図１９（Ａ）での（２，１）から（１，１）へ、矩形座標もｃ２から、それぞれｃ２−１とｃ２−２へと変更されている。
【０１０９】
また図１６（Ａ）のように４ｉｎ１に設定されている表示オブジェクトに対してここまでの処理を実行した場合は図１６（Ｃ）のようになり、オブジェクト情報は図１９（Ａ）から図１９（Ｄ）に変更される。この場合は、図１９（Ａ）でオブジェクト番号４〜７の表示オブジェクト番号が全て「３」であったのを、上半分、つまりオブジェクト番号４，５については表示オブジェクト番号が３−１に変更されている。更に残りの下半分、つまりオブジェクト番号６，７については、表示オブジェクト番号３−２に変更されている。また、集約設定は図１９（Ａ）での（２，２）から（２，１）へ、矩形座標もｃ３からｃ３−１とｃ３−２へと変更されている。ここで集約設定が（１，２）ではなく（２，１）となっているのは、先に述べたように、ランドスケープで表示するためである。
【０１１０】
また、特筆すべき点として、割付順番の変更がある。図１６（Ａ）に示すように、本実施形態での４ｉｎ１の割付順番は左上→右上→左下→右下の順（Ｚ順）に４→５→６→７と並ぶ構成をとっている。しかし、これを左右に分割した場合、４→６と５→７という、不連続なオブジェクト順で分割後の表示オブジェクトにそれぞれに割り付けられてしまう。これを図１６（Ｂ）のように、４→５と６→７の連続したオブジェクト順で分割後の表示オブジェクトのそれぞれに割りつけるようにした。これは、オブジェクト情報で管理している表示オブジェクト番号とオブジェクト番号を、描画部２３００が管理するＺ順などの割り付け規則に従って表示するだけで実現できる。
【０１１１】
一方、Ｓ２２０６ではＣＰＵ１１０１は、オブジェクト情報を確認し、選択中の表示オブジェクトの集約設定の横方向の枚数が「１」かどうかを確認する。「１」であればＳ２２０８へ進み、「１」以外の奇数の場合は、この処理を終了する。「１」以外の奇数の場合は、例をあげれば、前に説明した図１７の場合であり、これは図１９（Ａ）の表示オブジェクト４の場合に該当している。Ｓ２２０８でＣＰＵ１１０１は、例えば前述の図１４に示すように、１つの表示オブジェクトを２つの表示オブジェクトに分割してオブジェクト情報を更新する。その際、選択中の表示オブジェクトの下に、新たな表示オブジェクトの行を追加する。
【０１１２】
前述したとおり、図１４（Ａ）のように１ｉｎ１に設定されている表示オブジェクト１３０５に対してここまでの処理を実行した場合、オブジェクト情報は図１９（Ａ）から図１９（Ｂ）に変更される。この場合の変更は、図１９（Ａ）での表示オブジェクト番号が「２」だったものに変えて、図１９（Ｃ）では表示オブジェクト番号２−１、２−１とそれぞれ異なるオブジェクト番号に振りなおされている。また、集約設定は新しく作られたものでどちらも（１，１）に設定され、矩形座標はｃ２から、それぞれｃ２−１とｃ２−２へ変更されている。そしてＳ２２０７に進み、ＣＰＵ１１０１は、描画部２３００に対して、オブジェクト情報に基づいた表示画像の変更を依頼する。
【０１１３】
上記処理を繰り返し実行することで、ＵＩ１５００上で、両手で紙を破るような操作を行うことにより、表示オブジェクトを分割することが可能となる。
【０１１４】
また、こうして分割された各表示オブジェクトに配置されるオブジェクトを、元の表示オブジェクトにおける各オブジェクトの属性、例えば集約設定されているオブジェクトの順番、等に従って決定する。これにより、例えば集約設定されているオブジェクトからなる表示オブジェクトを２つの表示オブジェクトに分割した場合、分割された各表示オブジェクトに含まれるオブジェクトを、例えばページが連続したオブジェクトにできる。また分割された各表示オブジェクトに含まれるオブジェクトを、相互に関連するオブジェクトにすることができる。
【０１１５】
（その他の実施形態）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2014038383.tif 000003
【図２】
2014038383.tif 000004
【図３】
2014038383.tif 000005
【図４】
2014038383.tif 000006
【図５】
2014038383.tif 000007
【図６】
2014038383.tif 000008
【図７】
2014038383.tif 000009
【図８】
2014038383.tif 000010
【図９】
2014038383.tif 000011
【図１０】
2014038383.tif 000012
【図１１】
2014038383.tif 000013
【図１２】
2014038383.tif 000014
【図１３】
2014038383.tif 000015
【図１４】
2014038383.tif 000016
【図１５】
2014038383.tif 000017
【図１６】
2014038383.tif 000018
【図１７】
2014038383.tif 000019
【図１８】
2014038383.tif 000020
【図１９】
2014038383.tif 000021
【図２０】
2014038383.tif 000022
【図２１】
2014038383.tif 000023
【図２２】
2014038383.tif 000024