以下に、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがってそれらについての詳細な説明は繰返さない。
本発明にかかるコンテンツデータ表示装置としては、図1に示されるような電子書籍ビューワ、パーソナルコンピュータ、PDA(Personal Digital Assistants)、携帯電話機、およびゲーム機などが該当し、本実施の形態においては、主に電子書籍ビューワであるものとして説明を行なう。しかし、本発明は具体的にこれらの装置に限定されず、同様の機能を備える他の装置も含み得る。
本実施の形態においては、図1に示されるように、操作入力手段としてタブレットペンと、上下キー、決定キー、およびキャンセルキーからなるキーとが備えられるものとする。
図2は、一般的なコンテンツデータ表示装置のハードウェア構成の具体例を示す図である。
図2を参照して、本実施の形態にかかるコンテンツデータ表示装置は、全体を制御するCPU(Central Processing Unit)70、第1の操作入力手段であるタブレット73、マウス72、第2の操作入力手段であるキーボード78、情報表示手段であり、タブレット73と対になって第3の操作入力手段となるディスプレイ71、第4の操作入力手段ともなるマイク76、スピーカ80、CPU70で実行されるプログラムなどを記憶するROM(Read Only Memory),RAM(Random Access Memory),DRAM(Dynamic Random Access Memory)などのメモリデバイスやCPU70に内蔵されるメモリなどから構成される主記憶装置74、HDD(Hard Disc Drive),メモリカードなどの着脱可能な記録媒体などから構成される外部記憶装置75、およびネットワークを介して他の装置と通信を行なう通信デバイス77を含んで構成され、これらがバス79を介して接続されている。
本実施の形態にかかるコンテンツデータ表示装置は、図2に示されるハードウェア構成のうち、操作入力手段としてタブレット73およびディスプレイ71と、キーボード78との2種類の操作入力手段を備える装置であるものとして以降の説明を行なうが、本発明にかかるコンテンツデータ表示装置は上記2種類に限定されない2以上の複数種類の操作入力手段を備える装置である。
本実施の形態にかかるコンテンツデータ表示装置において操作入力に対応する処理を行なうときの機能構成の具体例を図3に示す。図3に示される機能は、コンテンツデータ表示装置のCPU70が主記憶装置74に記憶されているプログラムを読出して実行することで実現される機能である。
図3を参照して、本実施の形態にかかるコンテンツデータ表示装置の機能は、キーボード78に該当するキー入力部1と、ディスプレイ71およびタブレット73に該当するペン入力部5と、ディスプレイ71に該当する表示部14と、キー入力部1でのキーイベント(操作入力)を取得するキーイベント取得部2と、ペン入力部5でのペンイベントを取得するペンイベント取得部6と、キーイベントの対象である要素を探索するキーイベント対象要素探索部3と、ペンイベントの対象である要素を探索するペンイベント対象要素探索部7と、モード設定部4と、状態遷移に伴う処理を実行する状態遷移処理部8と、状態遷移に伴う処理のためのプログラムを記録する処理記録部15と、状態遷移表を記録する状態遷移表記録部9と、コンテンツデータ上に付加された属性であるユーザデータを記録するユーザデータ記録部11と、表示するコンテンツデータを読込むコンテンツデータ読込部10と、表示部14で表示するためのデータであるレイアウトデータを生成するレイアウトデータ生成部12と、表示部14で表示するレイアウトデータを記録する表示用メモリであるレイアウトデータ記録部13とを含んで構成される。
状態遷移表記録部9に記録される状態遷移表は、モードとイベントとイベントの対象となる要素との3つのパラメータから、実行すべき処理と次に移行するモードとを特定する、テーブル形式の情報である。
モードは、マーク作成中、開始位置選択中、終了位置選択中、通常状態などの操作状態を示す状態モードに応じたものであり、さらに、本実施の形態にかかるコンテンツ表示装置のように複数の操作入力手段を備える装置の場合には、カーソルモードまたはペンモードなどの操作入力手段の有効状態を示す入力モードが含まれる。状態遷移表は、モードごとにイベントとイベントの対象となる要素とで実行すべき処理と次に移行するモードとを特定する。
イベントとは操作入力手段において発生した操作入力の内容を示し、状態遷移表のパラメータであるイベントは、モードに関わらず各モードに共通する。本実施の形態にかかるコンテンツ表示装置のように複数の操作入力手段を備える装置の場合、状態遷移表のパラメータであるイベントには、当該複数の操作入力手段の各々で発生するイベントすべてが含まれることが好ましい。同様に、状態遷移表のパラメータである要素も、モードおよびイベントに関わらず各モードに共通し、コンテンツデータを構成するすべての要素が含まれることが好ましい。なお、状態遷移表については後に具体例を挙げて説明する。
キーイベント取得部2およびペンイベント取得部6は、各々、キー入力部1およびペン入力部5からの入力信号を受信し、キーイベントおよびペンイベントを取得する。そして、該入力信号に対応して、各々、キーイベント取得信号およびペンイベント取得信号をキーイベント対象要素探索部3およびペンイベント対象要素探索部7に入力する。または、受信した該入力信号が入力モードを設定するのための操作入力を示す入力信号である場合には、キーイベント取得信号およびペンイベント取得信号をモード設定部4に入力する。
キーイベント対象要素探索部3およびペンイベント対象要素探索部7は、キーイベント取得信号およびペンイベント取得信号に基づいて、コンテンツデータの中からキーイベントの対象である要素、つまりキー入力部1で指定された要素、およびペンイベントの対象である要素、つまりペン入力部5で指定された要素を探索し、該要素を示す要素信号を状態遷移処理部8に入力する。
また、モード設定部4は、キーイベント取得信号およびペンイベント取得信号に基づいて、操作入力を有効とする操作入力手段がキー入力部1であるカーソルモード、またはペン入力部5であるペンモードに、入力モードを設定し、該入力モードを示すモード信号を状態遷移処理部8に入力する。
状態遷移処理部8は、入力された要素信号、入力モードを示すモード信号、および現在の状態モードに基づいて、状態遷移表記録部9に記録されている状態遷移表を参照して実行するべき処理を特定する。該処理に必要なプログラムを処理記録部15から読出して実行し、ユーザデータを生成する。生成されたユーザデータは、ユーザデータ記録部11に記録される。
ユーザデータの一例としては、図4に示されるように、ユーザ操作によって要素に付加された属性ごとのユーザデータ300,301からなり、マークやマスクなどの属性の種類を示す種類、属性を一意に特定するためのID、電子データ中で属性を付加する要素を特定する情報である開始バイト位置およびバイトサイズ、マークやマスクの色などの情報を含む。なお、上記IDは、メモリ上のアドレスやファイルのアドレスなどであってもよい。
また、状態遷移処理部8は、状態遷移表を参照して次に移行する状態モードを読取り、該状態モードにて次の処理を待機する。
コンテンツデータ読込部10は、主記憶装置74や外部記憶装置75、通信デバイス77を介した通信先などから図5に示されるような必要なコンテンツデータを読込む。図5に示されるコンテンツデータは図1の画面に表わされたコンテンツに該当するHTML(Hypertext Markup Language)形式のコンテンツデータの具体例であって、その他の、XML(Extensible Markup Language)形式などのテキスト形式や、バイナリ形式などのデータであってもよい。
レイアウトデータ生成部12は、コンテンツデータ読込部10で読込まれたコンテンツデータと、ユーザデータ記録部11に記録されているユーザデータとに基づいて該コンテンツを表示するためのレイアウトデータを生成する。具体的には、図6および図7に示されるような、要素データおよび行データのような形式のレイアウトデータが生成される。図6および図7は、図1の画面に表わされたコンテンツに該当するコンテンツデータと、図4に示されたユーザデータとに基づいて生成される要素データおよび行データの具体例である。
要素データは、図6に示されるように、コンテンツに含まれる各文字や各画像の要素データ120〜128からなり、文字や画像などの要素種類を示す種類、電子データ中の開始位置を示す開始バイト、必要なデータ量を示すバイトサイズ、行内での位置を示すオフセットX,オフセットY、幅、高さ、文字色、背景色、リンクやマスクなどの選択されることでアクションが実行される属性であるイベント、および内容などの情報を含む。これらの情報のうち、文字色、背景色やイベントなどの情報は、ユーザデータでの指定に基づいて生成される場合もある。その場合、イベントにおいてはユーザデータに含まれるID情報が含されている。なお、図1に示されるように、イベントが付加されている要素である文字列(「リンク」)には下線が付されてもよいし、要素データに、さらに下線の有無を示す情報が含まれてもよい。
行データは、図7に示されるように、表示行ごとの行データ200,201からなり、行高さ、下の行との間隔である下行間、当該行の開始要素を配置可能な位置を示す配置可能開始位置、当該行の終了要素を配置可能な位置を示す配置可能終了位置、当該行に含まれる要素の数である要素数、および当該行における要素の配列を特定する要素配列などの情報を含む。
表示部14は、レイアウトデータ記録部13に記録されたレイアウトデータを読出して表示する。
図8を用いて、本実施の形態にかかるコンテンツデータ表示装置において範囲指定操作が行なわれたときに実行される範囲指定処理について説明する。図8に示される処理は、CPU70が主記憶装置74に記憶されるプログラムを読出して実行し、図3に示される各部を機能させることによって実現される。
なお、範囲指定とは、たとえば表示中の文字列に下線や打消し線やマーク(該範囲の情報の色を変更して強調する機能)やマスク(該範囲の情報を塗りつぶして隠す機能)などの属性を付加/削除するときなどに行なう操作であって、該当する範囲の開始位置と終了位置とを指定することで、その間の範囲を指定する操作を指す。
図8を参照して、始めに、ステップS1において、表示対象となるコンテンツデータがコンテンツデータ読込部10によって読込まれ、表示部14において表示される。そして、CPU70においては、ステップS2で、予めデフォルト設定されている初期モードが設定される。
なお、ステップS2では、デフォルト設定されている初期モードに替えて、ユーザ操作によって指定されたモードに切替えてもよい。具体的には、図9および図10に示されるように、アイコン指定を受付けてペンモードまたはカーソルモードに入力モードを切替えてもよいし、メニュー指定を受付けて入力モードを切替えてもよい。あるいは、状態モードが通常状態やマーク/マスク開始位置決定モード時に、キーイベントやペンイベントを取得すると自動的に入力モードを切替えてもよい。状態モードも同様に切替えてもよい。なお、上記の切替え処理は、以下のステップS3からステップS8のループ処理の説明では特に説明していないが、必要に応じて処理を追加してもよい。
ステップS3で、キーイベント取得部2および/またはペンイベント取得部6でキー入力部1および/またはペン入力部5からの入力信号を受信してイベントが取得される。ステップS3で取得されたイベントがキーイベントである場合には(ステップS4でY)、処理はポイントP2−1に進み、ステップS5でキーイベント対象要素探索部3において表示部14に表示されているレイアウトデータの中からキーイベントの対象要素が探索される。なお、ステップS5での処理については、後にさらにフローチャートを用いて説明する。
また、ペンイベントである場合には(ステップS4でN)、処理はポイントP2−2に進み、ステップS6でペンイベント対象要素探索部3においてペンイベントの対象要素が探索される。なお、ステップS6での処理についても、後にさらにフローチャートを用いて説明する。
その後、処理はポイントP3に進み、ステップS7で、状態遷移処理部8において、現在のモード、ステップS3で取得されたイベント、およびステップS5またはステップS6で探索されたイベント対象要素に基づいて状態遷移表記録部9に記録される状態遷移表に従って処理が特定され、実行される。また、次の状態モードが設定される。ここでの処理の結果は、ユーザデータとしてユーザデータ記録部11に記録される。
ステップS7で設定された状態モードが処理終了モードになるまで(ステップS8でN)、処理はポイントP1に戻されてステップS3〜ステップS7が繰返され、範囲指定が行なわれる。そして、ステップS7で設定された状態モードが処理終了モードになると(ステップS8でY)、ステップS9で、状態遷移処理部8において終了処理が実行され、範囲指定が完了する。処理終了とは、たとえば、別のコンテンツデータの表示に差替える処理や、コンテンツデータ表示プログラムやコンテンツデータ表示装置を終了させる処理などがある。
上記ステップS5での処理について、図11のフローチャートを用いて説明する。
図11を参照して、キーイベントの対象要素を求める場合、表示中にカーソルまたはフォーカス(選択状態表示)が存在する状態で決定キーが押された場合(ステップS5−1でY、かつステップS5−2でY)、そのカーソルまたはフォーカス位置にある要素を取得し(ステップS5−3)、その要素を対象要素として処理をポイントP3へ返す(ステップS5−8)。
一方、表示中にカーソルまたはフォーカスが存在する状態で上下左右キーが押された場合(ステップS5−1でY、かつステップS5−2でN)、上下左右キーで指定された方向に要素が存在したら(ステップS5−4でY)その方向の要素を取得し(ステップS5−5)、その要素を対象要素として処理をポイントP3へ返す(ステップS5−8)。上下左右キーで指定された方向に要素が存在しないときには(ステップS5−4でN)、カーソルまたはフォーカス位置にある要素を取得し(ステップS5−3)、その要素を対象要素として処理をポイントP3へ返す(ステップS5−8)。
なお、表示中にカーソルもフォーカスも存在しない場合には(ステップS5−1でN)、対象要素を「無効要素」として(ステップS5−2)処理をポイントP3へ返す。
上記ステップS6での処理について、図12のフローチャートを用いて説明する。
図12を参照して、タッチされているペン位置に要素が存在する場合(ステップS6−1でY)、そのペン位置にある要素を取得し(ステップS6−2)、その要素を対象要素として処理をポイントP3へ返す(ステップS6−6)。
一方、タッチされているペン位置に要素が存在しない場合(ステップS6−1でN)、ペン位置が余白である場合には(ステップS6−3でY)、ペン位置に最も近い位置に存在する要素を取得し(ステップS6−4)、その要素を対象要素として処理をポイントP3へ返す(ステップS6−6)。ペン位置が余白でない場合には(ステップS6−3でN)、対象要素を「無効要素」として(ステップS6−5)処理をポイントP3へ返す。
次に、状態遷移表記録部9に記録される状態遷移表のうち、ペンモードでマーク作成のための範囲指定を行なう際に用いる状態遷移表の具体例を図13,14に挙げる。なお、説明の便宜上、状態遷移表の具体例を図13,14の2図に分けて示しているが、これらの表は連続した1つの表であってよい。また、本実施の形態においては、状態遷移表をテーブル形式の情報であるものとしているが、以降に説明するように、所定数のパラメータで次の状態遷移が特定できる情報であればテーブル形式に限定されず、その他の形式の情報であってよい。
先述のように、状態遷移表は、モードと取得されたイベントとイベント対象要素との3つのパラメータから実行すべき処理、および次に移行するモードを特定する表であって、図13,14に示される状態遷移表は、モード「マーク作成・開始位置選択中モード」,「マーク作成・終了位置選択中モード」の各モードに応じた状態遷移表である。すなわち、図13は、状態モード「マーク作成・開始位置選択中モード」、入力モード「ペンモード」に応じたモードに対応する状態遷移表の具体例であって、図14は、状態モード「マーク作成・終了位置選択中モード」、入力モード「ペンモード」に応じたモードに対応する状態遷移表の具体例である。
パラメータの1つである「イベント」にはモードに関わらず各入力手段(ペン、キーボード)での操作入力内容のすべてが含まれ、ここでは、ペンダウンと、ペンドラッグ(微小移動)と、ペンドラッグ(大移動)と、ペンアップと、上下左右キーと、決定キーとの6イベントが含まれる。なお、ペンドラッグ(微小移動)とは、ある要素内にペンダウンした後にペンが移動するイベントであって、ペンダウン位置から現在のペン位置までの距離が微小であるイベントを指す。「微小距離」の定義は様々考えられるが、たとえば、要素の縦または横の小さい方のサイズの半分を超えるかどうかで判断する、などの定義が挙げられる。また、ペンドラッグ(大移動)は、ペンダウンした要素から別の要素内にペン位置が移動するイベントを指す。
パラメータの1つである「要素」にはモード・イベントに関わらずコンテンツを構成するすべての要素が含まれ、ここでは、通常文字と、マークと、マスクと、リンクと、画像との5要素が含まれる。
モードがペンモードでマーク作成・開始位置選択中モードである場合、最初に有効なイベントはマーク作成のための開始位置を指定するペンダウンであり、有効な要素はマーク作成が許されている通常文字のみである。そのため、マーク作成・開始位置選択中モードにおいて通常文字にペンダウンされると、図13を参照して、モード「ペンモード」,「マーク作成・開始位置選択中モード」、イベント「ペンダウン」、および要素「通常文字」の3つのパラメータで、状態遷移表において実行すべき処理および次に移行するモードが開始位置決定処理およびマーク終了位置選択中モードと特定される。より詳しくは、状態遷移表において、実行すべき処理に対応するプログラムが格納されているアドレス、および次のモードに移行させるために実行されるプログラムが格納されているアドレスが特定されることで、これらの処理およびモードが特定される。
その他のペンイベント(ペンドラッグ、ペンアップ)は発生することがないため、イベント「ペンドラッグ」,「ペンアップ」では、特定される状態が定義されていない。また、要素が、マーク作成が許されていないマーク、マスク、リンク、および画像である場合には、実行すべき処理が、エラーダイアログ表示処理と特定される。このとき、移行する次のモードが指定されていないので、現在のモードを継続すると特定される。
モードがペンモードでマーク作成・終了位置選択中モードに移行したときには開始位置として決定された通常文字にペンダウンされた状態であるので、有効なイベントはペンドラッグおよびペンアップである。また、ペンドラッグ(微小移動)は、ドラッグの開始が通常文字であるために、通常文字以外の要素では発生しない。そのため、図14を参照して、イベント「ペンダウン」のパラメータのときと、イベント「ペンドラッグ(微小移動)」および要素「通常文字」以外のパラメータのときとは、状態遷移表においては特定される状態が定義されていない。また、通常文字内のペンドラッグ(微小移動)はユーザの誤操作とみなして処理を行なわないものと予め定めると、イベント「ペンドラッグ(微小移動)」および要素「通常文字」のパラメータでは、状態遷移表においては実行すべき処理がないと指定されている。また、移行する次のモードが指定されていない。より詳しくは、状態遷移表において、実行すべき処理に対応するプログラムが格納されているアドレスとして処理が空のアドレスが特定されることで実行すべき処理がないことが特定される。また、および次のモードに移行させるために実行されるプログラムが格納されているアドレスとして処理が空のアドレスが特定されることで、次のモードを指定せずに現在のモードを継続することが特定される。
マークの作成は通常文字列に許可され通常文字列以外の要素に許可されていないので、マーク作成・終了位置選択中モードにおいて通常文字からペンドラッグ(大移動)されると、図14を参照して、モード「ペンモード」,「マーク作成・終了位置選択中モード」、イベント「ペンドラッグ(大移動)」、および要が「通常文字」の3つのパラメータで、状態遷移表において実行すべき処理が反転表示処理と特定される。また、要素が通常文字以外のパラメータで、実行すべき処理実行すべき処理が該要素の直前までの反転表示処理と特定される。なお、ここでいう「直前」とは、指定範囲に最初に含まれなくなる要素の直前という意味である。
モードがマーク作成・終了位置選択中モードである場合、指定中の範囲からペンアップされたときに、該指定範囲がマークを付加する範囲と決定される。そのため、マーク作成・終了位置選択中モードにおいてペンアップされると、図14を参照して、モード「ペンモード」,「マーク作成・終了位置選択中モード」、およびイベント「ペンアップ」で、要素がいずれの要素のときも、その3つのパラメータで、状態遷移表において実行すべき処理および次に移行するモードが反転部分のマーク作成処理および処理終了モードと特定される。
なお、イベント「ペンモード」で有効なイベントでないキーイベント(上下左右キー、決定キー)のときには、図13,14に示される状態遷移表において実行すべき処理がないと指定されている。また、移行する次のモードが指定されていない。
状態遷移表においてこのように指定することで、ペンモードのときにキーイベントを取得しても処理が実行されず、動作上はペンモードとカーソルモードとを排他的にすることができる。このことより、複数の操作入力手段を備えるコンテンツデータ表示装置において、操作を容易にでき、誤作動・誤入力を防止できる。
かかる状態遷移表において特定される処理に対応するプログラムは処理記録部15に記憶されている。状態遷移処理部8は状態遷移表にしたがって処理を特定し、対応するプログラムを処理記録部15から読出して実行する。
図13,14に示される状態遷移表を用いてペンモードでマーク作成のための範囲指定を行なう操作および表示部14に表示される画面の遷移を、具体例を挙げて説明する。
始めに、図15に示されるように、ペンモードでマーク作成・開始位置選択中モードであるときに、ペンイベント取得部6において表示中のコンテンツの通常文字部分にペンダウンされたことが取得されると、モード「ペンモード」,「マーク作成・開始位置選択中」、イベント「ペンダウン」、および要素「通常文字」であるので、状態遷移処理部8において、図13に示される状態遷移表より、この3つのパラメータより処理「開始位置決定処理」と、次に移行するモード「マーク終了位置選択中モード」とが特定され、必要なプログラムが処理記録部15より読出されて実行される。その結果、ペンダウンされた要素である文字がマーク開始位置に決定される。
ペンモードでマーク作成・開始位置選択中モードであるときに、ペンイベント取得部6において表示中のコンテンツの画像にペンダウンされたことが取得されると、モード「ペンモード」,「マーク作成・開始位置選択中」、イベント「ペンダウン」、および要素「画像」であるので、状態遷移処理部8において、図13に示される状態遷移表より、この3つのパラメータより処理「エラーダイアログ表示処理」が特定され、必要なプログラムが処理記録部15より読出されて実行される。また、移行する次のモードが指定されていないので、現在のマーク作成・開始位置選択中モードを継続する。つまり、これは、マークは通常文字上のみに付加が許可されているときに、マーク開始位置として画像を指定した場合であって、図16に示されるように、エラーダイアログが表示される。なお、これは、マークが付加された要素、マスクが付加された要素、およびリンクが付加された要素のいずれの要素が指定されたときも同様であって、「エラーダイアログ表示処理」のためのプログラムであって、画像が指定されたときに実行されるプログラムと共通したプログラムが処理記録部15より読出されて実行され、同様のエラーダイアログが表示される。
また、ペンダウンした位置において要素内でユーザがドラッグを意図しない程度の微小長さペンドラッグしてしまった場合、つまりイベントとしてペンドラッグ(微小移動)が取得された場合、モード「ペンモード」,「マーク作成・終了位置選択中」、イベント「ペンドラッグ(微小移動)」、および要素「通常文字」であるので、状態遷移処理部8において、図14に示される状態遷移表より、この3つのパラメータより実行すべき処理がないと特定される。その結果、ペン入力特有のユーザの意図しない移動による誤入力を容易に防ぐことできる。
次に、図17,18に示されるように、ペンモードでマーク作成・終了位置選択中モードであるときに、ペンイベント取得部6において表示中のコンテンツの通常文字部分がペンドラッグ(大移動)されたことが取得されると、モード「ペンモード」,「マーク作成・終了位置選択中」、イベント「ペンドラッグ(大移動)」、および要素「通常文字」であるので、状態遷移処理部8において、図14に示される状態遷移表より、この3つのパラメータより処理「反転表示処理」が特定され、必要なプログラムが読出されて実行される。また、移行する次のモードが指定されていないので、現在のモードを継続すると特定される。
「反転表示処理」は、たとえば、開始位置の要素から終了位置の要素までの各要素に対して、文字色と背景色とを反転させればよい。開始位置の要素から終了位置の要素までの各要素は、開始位置の要素が含まれる行データの要素配列において、開始位置の要素から順方向に見ていき、終了位置の要素に至るまでの要素となる。選択範囲が複数行に及ぶ場合は、順に次の行データの要素配列を見ていけばよい。
図19に示されるように、行間がペンドラッグされた場合、ペン位置は行間なのでどの要素内にも位置しないが、図12のステップS6−4の処理が実行され、ペン位置から一番近い要素がイベント対象要素として取得されて、同様に反転表示処理が実行される。このため、先に述べたようなペンダウンを行なうことなくペンドラッグから範囲指定操作が開始されている状態が回避され、処理や操作が複雑になるのを防ぐことができる。つまり、文字間や行間、周囲はいずれかの要素に含まれるとすることで、このような状態が回避できる効果がある。
また、図20に示されるように、余白がペンダウン/ペンドラッグされた場合に、エラーダイアログを表示してもよい。同様に、文字間や行間などがペンドラッグされた場合に、エラーダイアログを表示してもよい。これは、図13,14に示される状態遷移表の要素の列に文字間、行間、余白などの列を追加して、イベントがペンダウン/ペンドラッグであるときにエラーダイアログ表示処理が特定されるようにすることで容易に実現できる。または、ステップS6の対象要素を求める処理において、ステップS6−4,S6−5でエラーダイアログ表示処理を実行することでも実現できる。このようにしても、先に述べたようなペンダウンを行なうことなくペンドラッグから範囲指定操作が開始されている状態が回避され、処理や操作が複雑になるのを防ぐことができる。
同様に、ステップS6の対象要素を求める処理においてステップS6−5でペン位置が不適当な場合に対象要素が「無効要素」とされて、以降の範囲指定処理でその対象要素が考慮されないものとしているが、図13,14に示される状態遷移表の要素の列に「無効要素」の列を追加することで、その対象要素を他の要素に置換えるようにしてもよい。あるいは、対象要素が「無効要素」であるときにエラーダイアログを表示する、などの何らかの処理が実行される場合には、該処理が特定される他の要素(たとえば、マークなど)に置換えるようにしてもよい。
そのままペンモードでマーク作成・終了位置選択中モードにおいてペンドラッグが継続し、ペンイベント取得部6において画像がドラッグされたことが取得されると、モード「ペンモード」,「マーク作成・終了位置選択中」、イベント「ペンドラッグ(大移動)」、および要素「画像」であるので、状態遷移処理部8において、図14に示される状態遷移表より、この3つのパラメータから処理「反転表示処理」が特定されて、必要なプログラムが処理記録部15より読出されて実行される。その結果、図21に示されるように、画像の直前の通常文字まで反転表示処理が実行される。これは、画像を含む、通常文字以外の他の要素であっても同様である。
これは入力モードがカーソルモードのときも同様であって、図22に示されるように、カーソルモードでマーク作成・終了位置選択中モードにおいて右キーや下キーが押されても、画像の直前の通常文字まで反転表示処理が実行され、画像以降に反転表示が進まない。
そして、ペンモードでマーク作成・終了位置選択中モードであるときに、ペンイベント取得部6において表示部14からペンアップされたことが取得されると、モード「ペンモード」,「マーク作成・終了位置選択中」、イベント「ペンアップ」であるので、要素がいずれの要素であっても、状態遷移処理部8において、図14に示される状態遷移表より、3つのパラメータより処理「マーク作成処理」が特定され、必要なプログラムが処理記録部15より読出されて先の反転表示処理で反転された部分にマークを付加するマーク作成処理が実行される。そして、作成されたマークの情報を含むユーザデータが生成され、ユーザデータ記録部11に記録される。また、移行する次のモードが処理終了モードと特定される。なお、マークなどの属性の付加が完了したとき、図23に示されるように、その旨を通知するダイアログを表示することで、現在のモードが終了位置選択中であるのか処理終了であるのかが容易に判別され、操作性が高められる。通知処理は、状態遷移表で特定される各処理で行なってもよいし、通知するかどうかの情報や通知する内容などの情報を状態遷移表で保持して一括処理してもよい。
以上のペンモードでのマーク作成の状態遷移を図24,図25に表形式で示す。図24,図25において、順番1〜に示されるユーザ操作(イベント)にしたがって、太枠で示された状態に遷移する。すなわち、通常文字の上にペンダウンされるとマーク開始位置決定処理が実行されて、マーク終了位置選択中モードに移行する。その状態でペンドラッグ(微小移動)が発生しても処理は実行されず、ペンドラッグ(大移動)が発生した場合に、ドラッグされた連続する通常文字に対して反転表示処理が実行される。そして、ペンアップされると、ペンドラッグ(大移動)に伴って反転表示された部分にマークを付加するマーク作成処理が実行され、処理終了モードに移行する。
なお、ペンドラッグ(大移動)された要素中に画像が含まれる場合には、図25を参照して、その直前の通常文字まで反転表示処理が実行される。
カーソルモードでの範囲指定も、ペンモードでの範囲指定と同様に実行される。図26,27に、状態遷移表記録部9に記録される状態遷移表のうち、カーソルモードでマーク作成のための範囲指定を行なう際に用いる状態遷移表の具体例を示す。図26,27に示される状態遷移表もまた、モード「マーク作成・開始位置選択中モード」,「マーク作成・終了位置選択中モード」の各モードに応じた状態遷移表である。すなわち、図26は、状態モード「マーク作成・開始位置選択中モード」、入力モード「カーソル入力」に応じたモードに対応する状態遷移表の具体例であって、図27は、状態モード「マーク作成・終了位置選択中モード」、入力モード「カーソル入力」に応じたモードに対応する状態遷移表の具体例である。
モードがカーソルモードでマーク作成・開始位置選択中モードにおいては、上下左右キーでマーク作成・開始位置の通常文字にカーソルを移動させ、決定キーで開始位置に決定する。また、通常文字以外の要素にはカーソルに替えてフォーカスが存在するため、上下左右キーを押下してカーソルの移動先として通常文字以外を指定した場合であっても、その要素にカーソルを移動させることができない。
これらのことより、上下左右キーが押下されて通常文字にカーソルが移動された場合には、図26を参照して、モード「カーソルモード」,「マーク作成・開始位置選択中モード」、イベント「上下左右キー」、および要素「通常文字」の3つのパラメータで、状態遷移表において実行すべき処理がカーソル移動処理と特定される。また、移行する次のモードが指定されていないため、現在のマーク作成・開始位置選択中モードを継続すると特定される。また、上下左右キーが押下されて通常文字以外にカーソルが移動された場合、つまり要素が通常文字以外のパラメータでは、状態遷移表においてカーソル移動処理不可と特定される。
通常文字にカーソルがあるときに決定キーが押下されると、図26を参照して、モード「カーソルモード」,「マーク作成・開始位置選択中モード」、イベント「決定キー」、および要素「通常文字」の3つのパラメータで、状態遷移表において実行すべき処理および次のモードが開始位置決定処理およびマーク終了位置選択中モードと特定される。なお、要素が通常文字以外のパラメータでは、特定される状態が定義されていない。
モードがカーソルモードでマーク作成・終了位置選択中モードに移行したときには開始位置として決定された通常文字にカーソルが存在している。マークの作成は通常文字列に許可され通常文字列以外の要素に許可されていないので、マーク作成・終了位置選択中モードにおいて通常文字から上下左右キーが押下されると、図27を参照して、モード「カーソルモード」,「マーク作成・終了位置選択中モード」、イベント「上下左右キー」、および要素「通常文字」の3つのパラメータで、状態遷移表において実行すべき処理がカーソル移動処理および反転表示処理と特定される。また、移行する次のモードが指定されていないため、現在のマーク作成・開始位置選択中モードを継続すると特定される。上下左右キーが押下されて通常文字以外にカーソルが移動された場合、つまり「要素」が通常文字以外のパラメータでは、状態遷移表においてカーソル移動処理不可と特定される。
マーク作成・終了位置選択中モードにおいて選択中の通常文字で決定キーが押下されたときに、該通常文字までの指定範囲がマークを付加する範囲と決定される。そのため、マーク作成・終了位置選択中モードにおいて通常文字で決定キーされると、図27を参照して、モード「カーソルモード」,「マーク作成・終了位置選択中モード」、イベント「決定キー」、および要素「通常文字」の3つのパラメータで、状態遷移表において実行すべき処理および次に移行するモードが反転部分のマーク作成処理および処理終了モードと特定される。また、要素が通常文字以外のパラメータでは、特定される状態が定義されていない。
なお、イベントがカーソルモードで有効なイベントでないペンイベント(ペンダウン、ペンドラッグ、ペンアップ)のとき、図26,27に示される状態遷移表において実行すべき処理がないと指定されている。また、移行する次のモードが指定されていない。
状態遷移表においてこのように指定することで、カーソルモードのときにペンイベントを取得しても処理が実行されず、動作上はペンモードとカーソルモードとを排他的にすることができる。このことより、複数の操作入力手段を備えるコンテンツデータ表示装置において、操作を容易にでき、誤作動・誤入力を防止できる。
かかる状態遷移表において特定される処理に対応するプログラムもまた処理記録部15に記憶されている。状態遷移処理部8は状態遷移表にしたがって処理を特定し、対応するプログラムを処理記録部15から読出して実行する。開始位置決定処理や、反転表示処理など、カーソルモードにおいてもペンモードと同様の処理が特定され、対応するプログラムを共通のものとすることができる。
カーソルモードでのマーク作成の状態遷移を図28,図29に表形式で示す。図28,図29において、順番1〜に示されるユーザ操作(イベント)したがって、太枠で示された状態に遷移する。すなわち、通常文字にカーソルが存在する状態で決定キーが押下されるとマーク開始位置決定処理が実行されて、マーク終了位置選択中モードに移行する。その状態で通常文字以外に向かって上下左右キーが押下されもカーソル移動処理は実行されず、通常文字に向かって上下左右キーが押下された場合に、指定方向にある連続する通常文字にカーソルを移動させる処理が実行され、さらに、該通常文字に対して反転表示処理が実行される。そして、通常文字にカーソルが存在する状態で決定キーが押下されると、反転表示された部分にマークを付加するマーク作成処理が実行され、処理終了モードに移行する。
なお、上下左右キーで画像にカーソル移動が指定された場合には、図29を参照して、その直前の通常文字まで反転表示処理が実行される。このように、ペンモードでもカーソルモードでも、図要素などは範囲指定できないようにしているため、ペンアップや決定キーでマークやマスクを付加するための指定範囲を行なう際、どちらのモードであるかを意識することなく、単純に範囲指定を行なうことができる。
以上の具体例は操作入力に対応する処理としてマーク作成のための範囲指定処理であるが、マスク作成のための範囲指定処理も同様である。マスク作成においては、マーク作成において許可されていなかった画像を範囲指定に含めることが許可されているものとする。そこで、ペンモードでマスク作成のための範囲指定を行なう際に用いる状態遷移表の具体例を図30,31、カーソルモードにおける状態遷移表の具体例を図32,33とすると、マーク作成の際に用いられる状態遷移表と比較して、「要素」が画像であるときにも他の要素と同様に範囲指定のための処理が特定されている。
次に、本実施の形態にかかるコンテンツデータ表示装置において操作入力手段を用いた通常の指示操作が行なわれたときに実行される処理について説明する。なお、「通常の指示操作」とは、マークなどの属性を付加するための属性作成モードでの操作ではなく、コンテンツ閲覧時の通常状態での操作を指す。
状態遷移表記録部9に記録される状態遷移表のうち、ペンモードで通常状態における指示操作に対する処理を行なう際に用いる状態遷移表の具体例を図34に挙げる。図34は、状態モード「通常状態モード」、入力モード「ペンモード」に応じたモードに対応する状態遷移表の具体例である。
図34を参照して、範囲指定を行なわない通常状態でのペンモードでは、有効なイベントはペンダウンとペンアップとであり、その他のイベントでは状態遷移表において実行すべき処理がないと指定されている。
選択されることでアクションが実行される属性であるマスクやリンクにペンダウンされた場合に、モード「ペンモード」,「通常状態モード」、イベント「ペンダウン」、および要素「マスク」または要素「リンク」の3つのパラメータで、状態遷移表において実行すべき処理がフォーカス移動処理と特定される。このとき、移行する次のモードが指定されていないので、現在のモードを継続すると特定される。
また、マスクやリンクからペンアップされた場合に、モード「ペンモード」,「通常状態モード」、イベント「ペンアップ」、および要素「マスク」または要素「リンク」の3つのパラメータで、状態遷移表において実行すべき処理がマスク反転表示処理またはリンクジャンプ処理と特定される。
ここでマスクには、付加された背後のコンテンツがマスク画像(ここでは暗色矩形)で隠されて表示されないONマスクと、マスク画像が非表示となり背後のコンテンツが表示されいるOFFマスクとの2種類の状態があり、マスク反転表示とは、ONマスクをOFFマスクに反転、あるいはOFFマスクをONマスクに反転させる表示を指す。
かかる状態遷移表において特定される処理に対応するプログラムは処理記録部15に記憶されている。状態遷移処理部8は状態遷移表にしたがって処理を特定し、対応するプログラムを処理記録部15から読出して実行する。
図34に示される状態遷移表を用いてペンモードにおいて通常状態で操作入力された場合の画面の遷移を、具体例を挙げて説明する。
図35に示されるような、ONマスクを含むコンテンツが表示された画面状態においてマスク要素にペンダウンされたことが取得されると、モード「ペンモード」,「通常状態モード」、イベント「ペンダウン」、および要素「マスク」であるので、状態遷移処理部8において、図34に示される状態遷移表よりフォーカス移動処理が特定され、必要なプログラムが処理記録部15より読出されて実行される。その結果、図36に示されるように、ペンダウンされた要素であるONマスクにフォーカスが移動される。なお、ONマスクにフォーカスが存在している状態を、図36では白抜きの選択枠を描画することで表わしている。この時、フォーカスの表示だけでなく、フォーカス位置の情報もこのマスクの要素データに移動させておくことが好ましい。
この状態からペンアップされたことが取得されると、モード「ペンモード」,「通常状態モード」、イベント「ペンアップ」、および要素「マスク」であるので、状態遷移処理部8において、図34に示される状態遷移表より、この3つのパラメータよりマスク反転表示処理が特定され、必要なプログラムが処理記録部15より読出されて実行される。その結果、図37に示されるように、ペンアップされた要素であるONマスクが解除されてOFFマスクとなって、下の「マスク」という文字が読めるようになっている。フォーカスはマスク上に存在したままなので、フォーカス表示で「マスク」は反転表示されている。
同様に、状態遷移表記録部9に記録される状態遷移表のうち、カーソルモードで通常状態における指示操作に対する処理を行なう際に用いる状態遷移表の具体例を図38に挙げる。図38は、状態モード「通常状態モード」、入力モード「ペンモード」に応じたモードに対応する状態遷移表の具体例である。入力モードがカーソルモードで、状態モードが通常状態モードであるときの状態遷移表の具体例である。
図38を参照して、範囲指定を行なわない通常状態でのカーソルモードでは、有効なイベントは上下左右キーの押下と決定キーの押下とであり、その他のイベントでは状態遷移表において実行すべき処理がないと指定されている。
表示されたコンテンツ上のカーソルを移動させるために上下左右キーが押下された場合に、モード「カーソルモード」,「通常状態モード」、イベント「上下左右キー」、および要素がいずれの要素であるときも、この3つのパラメータで、状態遷移表において実行すべき処理が(移動可能なら)指定方向のマスクまたはリンクへのフォーカス移動処理と特定される。このとき、移行する次のモードが指定されていないので、現在のモードを継続すると特定される。
また、マスクやリンクにフォーカスが存在する状態で決定キーが押下された場合に、モード「カーソルモード」,「通常状態モード」、イベント「決定キー」、および要素「マスク」または要素「リンク」の3つのパラメータで、状態遷移表において実行すべき処理がマスク反転表示処理またはリンクジャンプ処理と特定される。
図34に示される状態遷移表を用いてペンモードにおいて通常状態で操作入力された場合の画面の遷移を、具体例を挙げて説明する。
かかる状態遷移表において特定される処理に対応するプログラムもまた処理記録部15に記憶されている。状態遷移処理部8は状態遷移表にしたがって処理を特定し、対応するプログラムを処理記録部15から読出して実行する。フォーカス移動処理やマスク反転表示処理やリンクジャンプ処理など、カーソルモードにおいてもペンモードと同様の処理が特定され、異なる操作入力手段からの操作入力であっても同様の処理が特定されて対応するプログラムを共通化とすることができる。
図38に示される状態遷移表を用いてカーソルモードにおいて通常状態で操作入力された場合の画面の遷移を、具体例を挙げて説明する。すなわち、図37に示されるOFFマスクであるマスク要素にフォーカスが存在する画面状態において下キーまたは右キーが押下されたことが取得されると、モード「カーソルモード」,「通常状態」、イベント「上下左右キー」であるので、状態遷移処理部8において、図38に示される状態遷移表より(移動可能なら)指定方向のマスクまたはリンクへのフォーカス移動処理が特定され、必要なプログラムが処理記録部15より読出されて実行される。その結果、図39に示されるように、フォーカスの存在したマスク要素の次のマスクまたはリンクであるリンク要素にフォーカスが移動される。
なお、図39においてOFFマスクは下線が付されて表示されており、フォーカスの無いリンク要素と同様の表示方法となっている。これはフォーカス移動の対象要素としてOFFマスクもリンクも同様に扱われるからであるが、OFFマスクとリンクとで異なる表示方式とすると、マスクかリンクかユーザが区別可能である利点がある。異なる表示方式としては、たとえば、下線の幅を変えたり、一方の下線を点線にしたり、背景色や文字色を変えたり、枠線を引いたり、などが考えられる。
本実施の形態にかかるコンテンツデータ表示装置は、具体例として表形式の状態遷移表に示されたように、操作入力に応じた処理および状態遷移がモードとイベントとイベント対象要素とのパラメータで特定され、特定された処理に対応するプログラムおよび状態遷移に対応するプログラムを読込んで実行する。
そのため、操作入力に応じた処理および状態遷移を特定するステップから当該処理の実行および当該状態への遷移までを1つのプログラムで制御する制御方法に比べて処理を平易にすることができる。また、状態遷移表がこのような構成であるため、装置の制御を変更する必要が生じた場合であっても、状態遷移表を変更することで容易に対応できる。なお、上述の具体例では、複数の操作入力手段を備える装置において状態遷移表を用いて制御を行なっているが、言うまでもなく1つの操作入力手段を備える装置においても状態遷移表を用いた制御が可能であって、同様の効果を奏する。
さらに、本実施の形態のように複数の操作入力手段を備える装置において状態遷移表を用いて制御を行なう場合、複数種類の操作入力手段に応じて複数のプログラムを用意する必要なく、構成を容易にできる。また、状態遷移表において実行すべき処理がないと指定することで各操作入力手段からの操作入力を排他的にできるため、イベントを受付けるか否かの判断処理を行なうことなく単純に状態遷移表に従って処理でき、機械的にペンやカーソルのイベント自体を受付けない構成に比べて処理が簡単になるという効果もある。
なお、上述のように各操作入力手段での入力を排他的にすることなく、状態遷移表を用いていずれの操作入力手段で操作を行なった場合でも共通の処理が実行されるようにすることもできる。
状態遷移表記録部9に記録される状態遷移表のうち、通常状態におけるいずれの操作入力手段での指示操作にも対応する処理を行なう際に用いる状態遷移表の具体例を図40に挙げる。図40に示される状態遷移表は、先に図34に示されたペンモードで通常状態における指示操作に対する処理を行なうために用いる状態遷移表と、図38に示されたカーソルモードで通常状態における指示操作に対する処理を行なうために用いる状態遷移表とが組合された状態遷移表となっている。
いずれの操作入力手段でも指示操作可能な場合、フォーカスがすでにONマスクの位置に移動している図36に示される状態で決定キーが押下されたことが取得されると、モード「通常状態モード」、イベント「決定キー」、および要素「マスク」であるので、状態遷移処理部8において、図40に示される状態遷移表より、この3つのパラメータよりマスク反転表示処理が特定され、ペンモードにおいてマスクでペンアップした場合と同様にONマスクが解除されて反転表示される。このようにペンとカーソルとで同じ処理が特定され、対応する同じプログラムが実行されるので、ユーザはどちらのモードであるかを意識することなく操作入力を行なうことができて利便性が高められる。
さらに、上述のコンテンツデータ表示装置で実行されるこれらの処理方法を、プログラムとして提供することもできる。このようなプログラムは、コンピュータに付属するフレキシブルディスク、CD−ROM(Compact Disc-Read Only Memory)、ROM、RAMおよびメモリカードなどのコンピュータ読取り可能な記録媒体にて記録させて、プログラム製品として提供することもできる。あるいは、コンピュータに内蔵するハードディスクなどの記録媒体にて記録させて、プログラムを提供することもできる。また、ネットワークを介したダウンロードによって、プログラムを提供することもできる。
提供されるプログラム製品は、ハードディスクなどのプログラム格納部にインストールされて実行される。なお、プログラム製品は、プログラム自体と、プログラムが記録された記録媒体とを含む。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
1 キー入力部、2 キーイベント取得部、3 キーイベント対象要素探索部、4 モード設定部、5 ペン入力部、6 ペンイベント取得部、7 ペンイベント対象要素探索部、8 状態遷移処理部、9 状態遷移表記録部、10 コンテンツデータ読込部、11 ユーザデータ記録部、12 レイアウトデータ生成部、13 レイアウトデータ記録部、14 表示部、15 処理記録部、70 CPU、71 ディスプレイ、72 マウス、73 タブレット、74 主記憶装置、75 外部記憶装置、76 マイク、77 通信デバイス、78 キーボード、79 バス、80 スピーカ、120〜128 要素データ、200,201 行データ、300,301 ユーザデータ。