(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0010】
以下、図面を参照して、本発明の実施形態を詳細に説明する。
【0011】
図4を参照して、本発明に係る情報処理装置の機能構成について説明する。
図4は、本発明に係る情報処理装置の機能構成を示すブロック図である。
図4を用いて、本実施形態の装置の機能について説明する。
【0012】
情報処理装置400は、操作受付部401、画像表示部402、操作検知位置特定部403、操作方向判定部404、オブジェクト特定部405、子オブジェクト存否判定部406、操作種別判定部407、選択処理実行部408、移動処理実行部409等を備えている。
【0013】
操作受付部401は、ユーザからの情報処理装置400への操作を受け付ける。例えば
図5のキーボード509やマウス510(
図5を参照して後述)によって入力された操作を受け付ける(つまり、表示制御手段で表示したオブジェクトに対する操作を受け付ける操作受付手段)。
【0014】
画像表示部402は、ディスプレイ511(
図5を参照して後述)に画像であるオブジェクト、指示カーソル、移動カーソル等を表示し、操作に応じて画像の表示の切り替えを行う。
【0015】
操作検知位置特定部403は、前記画像表示部402に表示されたオブジェクトの選択処理、範囲選択処理、移動処理等を実行するにあたり、前記処理を行うための操作が開始された位置を特定する特定部である。
【0016】
操作方向判定部404は、操作検知位置特定部で特定した操作検知位置から、いずれの方向に向かって操作が実行されたかを判定する判定部である。例えば、ユーザによるカーソルを用いた押下指示の開始位置から、押下指示を継続したまま、カーソルがどの方向に移動したかを判定する。
【0017】
オブジェクト特定部405は、前記操作検知位置特定部403で判定した操作位置の座標を基に、前記操作位置にオブジェクトがある場合に、該オブジェクトを特定する。子オブジェクト存否判定部406は、前記オブジェクト特定部405で特定したオブジェクト上に、子オブジェクトが存在するか否かを判定する。
【0018】
子オブジェクトとは、あるオブジェクトと重なって位置する別のオブジェクトであって、少なくとも一部が前記あるオブジェクトに重なって位置し、且つ、前記別のオブジェクト角であって、前記あるオブジェクトに重なった角の対角の頂点が、表示画面上に表示されている背景以外の場所にある前記別のオブジェクトのことである。
【0019】
ここでいう背景とは、例えば、オブジェクトの選択、移動を用いた編集作業の為に表示画面に表示された作業用域のことである。また、前記あるオブジェクトに重なった角の対角の頂点が他のオブジェクトと重なっている場合は、前記あるオブジェクトに重なった角の対角の頂点が背景以外の場所にあるものと判断する。
【0020】
子オブジェクトは前記あるオブジェクトを前記子オブジェクトに対する親オブジェクトとし、CPU501は前記子オブジェクトを前記親オブジェクトに所属するオブジェクトとする。
【0021】
操作種別判定部407は、操作方向判定部404で判定した操作方向、子オブジェクト判定部で判定した判定結果に基づいて、オブジェクトの範囲選択、単一選択、移動操作の操作種別を変更するか否かを判定する。
【0022】
選択処理実行部408は、前記操作種別判定部407で判定した判定結果に基づいて、オブジェクトの選択処理の操作の受付を開始し、受け付けた操作に従ってオブジェクトの選択処理を実行する。
【0023】
移動処理実行部409は、前記操作種別判定部407で判定した判定結果に基づいて、オブジェクトの移動処理の操作の受付を開始し、受け付けた操作に従ってオブジェクトの移動処理を実行する。以上が
図4の、本発明に係る情報処理装置の機能についての説明である。
【0024】
次に、
図5を参照して本発明における端末のハードウエア構成について説明する。
図5は、本発明の実施形態における端末のハードウエア構成を示す図である。
【0025】
CPU501は、RAM502やROM503に格納されているプログラムやデータを用いて、システムバス504に接続される各デバイスやコントローラを統括的に制御する。
【0026】
RAM502は、外部メモリ512からロードされたプログラムやデータを一時的に記憶するためのエリアを有するとともに、CPU501が各種処理を行うために使用するワークエリアを備える。
【0027】
ROM503は、コンピュータのブートプログラムやBIOS等の各種プログラムを記憶している。外部メモリ512は、OS(オペレーティングシステム)や、情報処理装置400が行う後述の処理をCPU501に実行させるためのプログラムやデータ等を記憶しており、これらは必要に応じてCPU501の制御によりRAM502に読み出され実行されることになる。
【0028】
また、ROM503あるいは外部メモリ512には、CPU501の制御プログラムであるBIOS(Basic Input / Output System)やオペレーティングシステムプログラム(以下、OS)や、各PCの実行する機能を実現するために必要な各種プログラム等が記憶されている。RAM502は、CPU501の主メモリ、ワークエリア等として機能する。
【0029】
CPU501は、処理の実行に際して必要なプログラム等をRAM502にロードしてプログラムを実行することで、各種動作を実現するものである。
また、入力コントローラ(入力C)505は、キーボード509やマウス510等のポインティングデバイスからの入力を制御する。
【0030】
ビデオコントローラ(VC)506は、ディスプレイ511等の表示器への表示を制御する。表示器は液晶ディスプレイ(LCD)でも、CRTディスプレイでも構わない(つまり、複数のオブジェクトを含む表示画面を前記表示部に表示する表示制御手段)。
【0031】
メモリコントローラ(MC)507は、ブートプログラム、ブラウザソフトウエア、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種データ等を記憶するハードディスク(HD)やフロッピー(登録商標)ディスク(登録商標 FD)或いはPCMCIAカードスロットにアダプタを介して接続されるコンパクトフラッシュ(登録商標)メモリ等の外部メモリ512へのアクセスを制御する。
【0032】
通信I/Fコントローラ(通信I/FC)508は、ネットワークを介して、外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。
【0033】
なお、CPU501は、例えばRAM502内の表示情報用領域へアウトラインフォントの展開(ラスタライズ)処理を実行することにより、ディスプレイ511上での表示を可能としている。また、CPU501は、ディスプレイ511上の不図示のマウスカーソル等でのユーザ指示を可能とする。
【0034】
本発明を実現するためのプログラムは外部メモリ512に記憶されており、必要に応じてRAM502にロードされることによりCPU501によって実行されるものである。
以上が
図5の情報処理装置のハードウエア構成についての説明である。
【0035】
次に
図6を参照して、情報処理装置400に記憶されている、情報処理装置400がオブジェクトに対する操作の切り替えを行うために用いるデータのデータ構成について説明する。
【0036】
オブジェクト情報610は、オブジェクトの位置や大きさの情報を保持する。オブジェクトID611は、オブジェクトを一意に特定するために用いられる。X座標612とY座標613はオブジェクトの左上端のX座標とY座標を表し、幅615と高さ616とともにオブジェクトの占める範囲を特定するために用いられる。
【0037】
親ID617は、別オブジェクトのオブジェクトID611を値に設定する。これにより、CPU501は親ID617を有するオブジェクトを、親ID617と同一の値をオブジェクトID611に有するオブジェクトを親オブジェクトとし、該オブジェクトID611を親ID617にとるオブジェクトを、前記親オブジェクトに所属する子オブジェクトとする。
【0038】
親ID617は、子オブジェクトが所属する親オブジェクトがあること、またその親オブジェクトを特定するために用いられる。
【0039】
X座標612とY座標613とZ座標614は、それぞれの座標を有するオブジェクトが他のオブジェクトとグループ化されている場合には、グループ化されている全てのオブジェクトを含む最少の矩形の各座標に対する相対座標を表し、ない場合は絶対座標を表す。請求項中のグループオブジェクト特定手段に該当する。
【0040】
Z座標614はオブジェクトの奥行き方向の並び順を表し、カーソルの下にある最前面のオブジェクトを特定するために用いられるだけでなく、他のオブジェクトの占有領域に含まれるかの判定にも用いられる。
【0041】
カーソル情報620は、操作中のカーソルの情報を保持する。起点X座標621と起点Y座標622、開始時間623は指示ボタンが押下されたときのカーソルのX座標とY座標、時間を表し、終点X座標624と終点Y座標625は指示ボタン押下後のカーソルのX座標とY座標を表す。終点X座標624と終点Y座標625には初期値としてそれぞれ起点X座標621と起点Y座標622と同じ値が設定される。
【0042】
状態626は値なし(初期値)または”移動”と“範囲選択”のいずれかを値にとり、移動操作を受け付けるのか範囲選択操作を受け付けるのかの確認に用いられる。確定627は“未確定”(初期値)と“確定”のいずれかの値をとり、状態626とともに受け付ける操作を確定するために用いられる。
【0043】
CPU501は
図6に示すオブジェクト情報610、カーソル情報620、及び、後述する選択オブジェクト情報630中の必要な情報を用いてユーザ所望の操作を推測し、処理を実行する。詳細は
図8の説明にて後述する。
【0044】
選択オブジェクト情報630は、選択中のオブジェクトを特定する情報を保持する。選択番号631はオブジェクトの選択順を表し、選択オブジェクトID632は選択中のオブジェクトのオブジェクトID611を値として、カーソル下のオブジェクトが選択中であるか確認するのに用いられる。
【0045】
オブジェクトを選択したときにそのオブジェクトID611を追加し、選択を解除したときに消去する。後述するフローチャートの説明では、CPU501によるRAM502に記憶している選択オブジェクト情報630に対する処理の説明は省略する。以上が
図6の、情報処理装置400に記憶されている、情報処理装置400がオブジェクトに対する操作の切り替えを行うために用いるデータのデータ構成についての説明である。
【0046】
次に
図7、8、9を参照して情報処理装置400が行う処理の詳細について説明する。
【0047】
図7、
図8、
図9は、情報処理装置400が行う処理の流れを示すフローチャートである。詳細については各図の説明にて後述する。各図の説明を行うにあたり、まず該処理の前提について説明する。
【0048】
図7、
図8、
図9の各フローチャートの処理は、情報処理装置400のCPU501が外部メモリ512に記憶されているプログラムの制御に従って行うものである。CPU501はプログラムをRAM502にロードするとともに、外部メモリ512に記憶されているプログラムの処理に必要な情報をRAM502にロードし、カーソルの移動他、ユーザ操作の監視を開始する。
【0049】
プログラムを終了するとき、CPU501はRAM502に記憶されたウィンドウおよび表示領域の情報を外部メモリ512に記憶するとともにRAM502から消去し、ユーザ操作の監視を終了して、プログラムをRAM502から消去する。
【0050】
図7を参照して情報処理装置400が行う処理の流れの概要を説明する。
図7は、情報処理装置400が行う処理の流れの概要を示すフローチャートである。
【0051】
情報処理装置400のCPU501は、カーソル指示操作の受付状態において指示ボタンが押下されたことを受けてカーソル情報620をRAM502に記憶する(ステップS701)。指示ボタンの押下を受け付けた時点でのカーソルの位置、つまり、指示を受け付けた位置を操作開始位置とし、当位置を特定して記憶する(請求項中の操作開始位置特定手段に該当)。
【0052】
RAM502に記憶してあるカーソル情報620とオブジェクト情報610から、カーソルの下にオブジェクトがあるか確認する(ステップS702)。
【0053】
カーソルの下にオブジェクトがない場合(ステップS702でNO)、既知の範囲選択操作を受け付けて実行する(ステップS706)。カーソルの下にオブジェクトがある場合(ステップS702でYES)、カーソル下のオブジェクトを特定し、カーソル下のオブジェクトに対する処理を受け付けるハンドルがあるか確認する(ステップS703)。ここでいうハンドルとは、オブジェクトを選択したときに表示するオブジェクトの大きさ変更等を受け付けるためのつまみのことである。
【0054】
カーソルの下にハンドルがある場合(ステップS703でYES)、そのハンドルに対する操作を受け付けて実行する(ステップS707)。カーソルの下にハンドルがなければ(ステップS703でNO)目的を推測して操作を受け付ける(ステップS704)。すなわち、ユーザがカーソル下のオブジェクトを移動したいのか、カーソル位置を起点として範囲選択を行いたいのかをCPU501が推測して受け付けた操作を処理することである。
【0055】
情報処理装置400のCPU501は、
図6に示すオブジェクト情報610、カーソル情報620、選択オブジェクト情報630中、必要な情報を用いて操作を推測し、処理する。詳細は
図8の説明にて後述する。
【0056】
情報処理装置400のCPU501はステップS704、S706、S707の各操作の受付と実行を終えると、RAM502に記憶しているカーソル情報620を消去し、カーソル指示操作の受付前の状態に戻る(ステップS705)。以上が
図7の、ポインティングデバイスによって操作を切り替える処理の流れを示すフローチャートについての説明である。
【0057】
次に
図8を参照して目的操作を推測して受け付ける処理について説明する。
図8は、ユーザの目的を推測して操作種別を切り替える処理の詳細を示すフローチャートである。
【0058】
CPU501は、RAM502に記憶している選択オブジェクト情報630から、カーソルの下にあるオブジェクトが選択状態であるか確認する(ステップS801)。ステップS801においてカーソル下のオブジェクトが選択済みである場合(ステップS801でYES)、処理をステップS806に移行し、カーソル情報620の状態626を“移動”に設定して、カーソルを移動カーソルに変更し、該移動カーソル下のオブジェクトを移動する操作を受け付ける状態にする(ステップS806)。
【0059】
その後、ユーザからのカーソルの移動指示を受け付け、カーソル情報620の終点X座標624と終点Y座標625を更新し、さらに確定627を“確定”にして既知の移動操作を実行する(ステップS807)。
【0060】
一方、カーソル下のオブジェクトが選択状態でない場合(ステップS801でNO)、RAM502に記憶してあるオブジェクト情報610から、そのオブジェクトが子オブジェクトをもつか確認する(ステップS802)。
【0061】
前記オブジェクトが子オブジェクトをもたないと判定した場合(ステップS802でNO)、処理をステップS805に移行し、カーソルの下に位置するオブジェクトを選択する(ステップS805)。これは、請求項中のオブジェクト選択操作に該当する。そして、処理をステップS806に移行する。
【0062】
前記オブジェクトが子オブジェクトをもつと判定した場合(ステップS802でYES)、カーソルが子オブジェクトの方向に移動したか否かを判定する(ステップS803)。
【0063】
尚、ステップS8
03の判定の対象とする子オブジェクトは、押下指示の受付時開始時の位置を起点とした範囲選択の選択領域に含めることが可能な子オブジェクトである。
【0064】
つまり、子オブジェクト全体を含む最小の矩形領域の角であって、前記押下指示の受付時開始時の位置に最も近い角の対頂角を含む矩形領域である対頂角領域内に、前記押下指示の受付時開始時の位置がある場合に、当該子オブジェクトをステップS803の判定の対象とするものである。これは、請求項中の領域判定手段に該当する。
【0065】
対頂角領域とは、例えば
図10の対頂角領域1010のような領域である。対頂角領域1010は子オブジェクト1004に対応する対頂角領域である。子オブジェクト1004、対頂角領域1010については、
図10の説明にて後述する。
【0066】
カーソルが子オブジェクトの方向に移動していないと判定した場合(ステップS803でNO)、処理をステップS805に移行し、カーソルの下に位置するオブジェクトを選択する(ステップS805)。そして、処理をステップS806に移行する。
【0067】
なお、カーソル下のオブジェクトと前記子オブジェクトが同一のグループに属している場合、前記子オブジェクトの方向にカーソルが移動した場合であっても、ステップS805に処理を移行するようにしてもよい。同一のグループに属している場合とは、例えば他のオブジェクトとグループ化されている場合である。
【0068】
カーソルが子オブジェクトの方向に移動したと判定した場合(ステップS803でYES)、カーソルを範囲選択カーソルに切り替え、カーソル情報620の状態626を“範囲選択”に、確定627を“確定”に設定して、範囲選択処理を実行する(ステップS804)範囲選択処理(ステップS804)の詳細は
図9の説明にて後述する。ステップS803の判定は、請求項中の決定手段に該当する。またその判定結果による各処理への移行は、切替手段に該当する。以上が
図8の、目的操作を推測して受け付ける処理の流れを示すフローチャートについての説明である。
【0069】
次に
図9を参照して範囲選択操作を受け付けて実行する処理(
図8のステップS805)の詳細について説明する。
図9は、
図8の範囲選択操作を受け付けて実行する処理(
図8のステップS804)の流れの詳細を示すフローチャートである。
【0070】
CPU501は、指示ボタンを離す操作を受け付け(ステップS901)、起点と終点を対角とする矩形範囲にオブジェクトが含まれているか否かを判定する(ステップS902)。
【0071】
前記矩形範囲にオブジェクトが含まれていると判定した場合(ステップS902でYES)、当該矩形範囲に含まれるオブジェクトをすべて選択する(ステップS903)。前記矩形範囲にオブジェクトが含まれていないと判定した場合(ステップS902でNO)、処理を終了する。以上が
図9の、範囲選択操作を受け付けて実行する処理の流れを示すフローチャートについての説明である。
【0072】
次に
図10を参照して、本発明における情報処理装置が操作を受け付けて実行する、カーソルの移動方向に応じて操作種別を切り替える処理の実施例について説明する。
図10は、本発明における情報処理装置が操作を受け付けて実行する、カーソルの移動方向に応じて操作種別を切り替える処理の実施例の一例を示す図である。
【0073】
情報処理装置400のCPU501は、親オブジェクト1002上の、指示カーソル1001の位置でユーザからの押下指示を受け付ける。そして、受け付けた押下指示が継続されたまま、当該指示カーソルが移動した場合、当該移動を検知する。
【0074】
情報処理装置400のCPU501は、当該指示カーソル1001の移動した方向が、子オブジェクト1204に近付く方向であるか否かを判定する。
【0075】
例えば、指示カーソル1001が、範囲選択カーソル1009のような位置に移動したかを判定する。当該指示カーソル1001の移動した方向が、子オブジェクト1204に近付く方向であると判定した場合、操作種別を範囲選択に切り替え、指示カーソルを範囲選択カーソルに切り替える。
【0076】
尚、情報処理装置400のCPU501は、当該指示カーソル1001の移動した方向が、子オブジェクト1203に近付く方向であるか否かは、操作種別の切り替えには関係がないものとする。該指示カーソル1001の移動した方向が、子オブジェクト1203に近付く方向であったとして、操作種別を範囲選択に切り替えたとしても、子オブジェクト1203を範囲選択の選択領域内に含めることが出来ないからである。
【0077】
つまり、押下指示の受付開始時のカーソルの位置が、子オブジェクトを含む最小の矩形領域の角であって、押下指示の受付開始時のカーソルの位置に近い角の対頂角を含む領域内である場合に、当該子オブジェクトに近付く方向に当該カーソルが移動したか否かを判定し、当該判定結果に応じて、操作種別を切り替えるものである。
【0078】
情報処理装置400のCPU501は、押下指示の終了を以て範囲選択処理を終了し、当該範囲選択処理終了時のカーソルの位置であって、例えば範囲選択カーソル1005の位置と、押下指示開始時のカーソルの位置である指示カーソル1001の位置とを頂点とし、対角とする矩形内に含まれるオブジェクトを全て選択する。
【0079】
一方、情報処理装置400のCPU501は、当該指示カーソル1001の移動した方向が、子オブジェクト1204に近付く方向でないと判定した場合、例えば、移動カーソル1007のような位置に向かってカーソルが移動を開始した場合、操作種別を移動操作に切り替え、押下指示開始時の位置にあったオブジェクトの選択処理、及び、移動処理を実行する。
【0080】
尚、指示カーソル1001は、当該指示カーソル1001の移動した方向が、子オブジェクト1204に近付く方向でないと判定した段階で、移動カーソルに切り替わるものとする。以上が
図10の、本発明における情報処理装置が操作を受け付けて実行する、カーソルの移動方向に応じて操作種別を切り替える処理の実施例についての説明である。
【0081】
以上のように、本発明によれば、オブジェクトの単一選択とオブジェクトの範囲選択を容易に切り替えることが出来る情報処理装置、その制御方法及びプログラムを提供することが出来る。
【0082】
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
【0083】
また、本発明の実施例においては、カーソルの下に子オブジェクトを有するオブジェクトがある状態で押下指示を受け付けた場合に、カーソルの移動方向によって操作種別を切り替える実施形態を記載したが、本発明の実施形態は必ずしもこれに限るものではない。
【0084】
例えば、カーソルの下に子オブジェクトを有さないオブジェクトがある状態で指示ボタンの押下を受け付けた場合であっても、当該押下指示を受け付けた際のカーソルの位置が、カーソル下のオブジェクトではない他のオブジェクトの前記対頂角領域内に含まれている場合、当該カーソルの移動方向によって操作種別を切り替えるようにしてもよい。
【0085】
つまり、前記カーソルが前記他のオブジェクトに近付くように移動した場合に範囲選択処理を開始し、前記カーソルが前記他のオブジェクトに近付くように移動しなかった場合に選択処理を実行して移動処理を開始するようにしてもよい。
【0086】
更に、前記子オブジェクト、乃至前記他のオブジェクトが別のオブジェクトと同一のグループに属している場合には、前記子オブジェクト乃至他のオブジェクトの属するグループのオブジェクト全体を含む矩形の角であって、押下指示受付開始時の位置に最も近い角の対頂角を含む領域である対頂角領域に、前記押下指示受付開始時の位置が含まれている場合、カーソルの移動方向によって、実行する操作種別を切り替えるようにしてもよい。
【0087】
更に、本発明の実施例を示す
図10においては、子オブジェクト1003及び子オブジェクト1004の全体が、親オブジェクト1002に完全に包含される形を取っているが、本発明の実施形態は必ずしもこれに限るものではない。
【0088】
例えば、子オブジェクトの全体が親オブジェクトに包含されているわけではないが、表示画面に背景が表示されていない場合や、また、前記子オブジェクトの一部が背景の外にはみ出している場合で、親オブジェクト上で指示ボタンの押下を受け付けた場合に、カーソルの移動方向によって、実行する操作種別を切り替えるようにしてもよい。
【0089】
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施態様をとることが可能であり、具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【0090】
前述した実施形態の機能を実現するプログラムを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【0091】
この場合、記録媒体から読み出されたプログラム自体が本発明の新規な機能を実現することになり、そのプログラムを記憶した記録媒体は本発明を構成することになる。
【0092】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、DVD−ROM、磁気テープ、不揮発性のメモリカード、ROM、EEPROM、シリコンディスク、ソリッドステートドライブ等を用いることができる。
【0093】
また、コンピュータが読み出したプログラムを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0094】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0095】
さらに、本発明を達成するためのプログラムをネットワーク上のサーバ、データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
なお、上述した各実施形態およびその変形例を組み合わせた構成も全て本発明に含まれるものである。