以下に、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがってそれらについての詳細な説明は繰返さない。
[第1の実施の形態]
本発明にかかるコンテンツ処理装置としては、具体的には電子書籍ビューワ、パーソナルコンピュータ、携帯電話、およびPDA(Personal Digital Assistants)などが該当するが、本発明にかかるコンテンツ処理装置はこれらの装置に限定されない。本実施の形態においては、コンテンツ処理装置を電子書籍ビューワ(以降、ビューワと略する)であるものとして説明を行なう。
図1は、本実施の形態にかかるビューワ100の構成の具体例を示す図である。図1に示される構成は、ビューワ100に備えられるCPU(Central Processing Unit)が、ROM(Read Only Memory),RAM(Random Access Memory),DRAM(Dynamic Random Access Memory)などのメモリデバイスやCPUに内蔵されるメモリなどから構成される主記憶装置に記憶されているプログラムを読出して実行することで発揮される機能構成である。
図1を参照して、本実施の形態にかかるビューワ100は、ユーザの操作入力を受付ける操作部104と、電子書籍データを表示する表示部106と、無線や有線通信を行なって外部の装置からデータを受信するデータ受信部101と、HDD(Hard Disc Drive),メモリカードなどの着脱可能な記録媒体などから構成される外部記憶部102と、電子書籍データを記憶する電子書籍データ記憶部103と、文字属性記憶部107と、状態遷移表を記憶する状態遷移表記憶部108と、状態遷移表を用いて制御を行なう制御部105とを含んで構成される。
ビューワ100においては、挿入されたメモリカードなどの外部記憶部102から電子書籍データが読込まれ、あるいはデータ受信部101においてネットワークを介して他の装置から電子書籍データが取得され、電子書籍データ記憶部103に格納される。
操作部104は、上下左右キーおよび決定キーを含んで構成されるキーボードやタッチペンなどから構成され、ユーザの操作入力を受付けると入力信号を制御部105に対して出力する。
制御部105は、操作部104から入力された入力信号に基づいて電子書籍データ記憶部103に記憶された所定の電子書籍データを読出して表示データを生成する。その際、電子書籍データに含まれる各文字の属性に関する情報である文字属性情報を生成し、文字属性記憶部107に記憶する。
図2に、文字属性記憶部107に記憶される文字属性情報の具体例を示す。図2を参照して、文字属性情報は、電子書籍データに含まれる各文字について、リンクが付加されていることや、マスクが付加されていることなどを示す情報である。
より具体的には、図4には、文字列「この鎌倉幕府は1192年に、今の神奈川県…」について、文字列「1192」の各文字にリンクが付加されており、文字列「鎌倉幕府」に1つの連続したマスクが付加されていることが示されている。
制御部105は、制御信号と共に生成した表示データを表示部106に対して出力し、表示部106で電子書籍データを表示させる。
また、制御部105は、操作部104から入力された入力信号に基づいて状態遷移表記憶部108に記憶される状態遷移表を用いて処理を行なう。
状態遷移表記憶部108に記憶される状態遷移表は、キー入力を受付けるカーソルモードまたはペン入力を受付けるペンモードなどの操作入力手段の有効状態を示す入力モードと、マスクやマーカーを作成する範囲の開始位置選択中、終了位置選択中などの操作状態を示す状態モードとを含むモード、発生した操作入力を示す操作イベント、および操作イベントの対象となる要素の3パラメータに基づいて遷移結果を特定する、テーブル形式の情報である。ここで、カーソルモードでの操作イベントとしては、上下左右キーの押下と、決定キーの押下とが挙げられる。また、ペンモードでの操作イベントとしては、ペンダウン、ペンドラッグ(微小移動)、ペンドラッグ(大移動)、およびペンアップとが挙げられる。なお、ペンドラッグ(微小移動)とは、ある要素内にペンダウンした後にペンが移動する操作イベントであって、ペンダウン位置から現在のペン位置までの距離が微小である操作イベントを指す。「微小距離」の定義は様々考えられるが、たとえば、要素の縦または横の小さい方のサイズの半分を超えるかどうかで判断する、などの定義が挙げられる。また、ペンドラッグ(大移動)は、ペンダウンした要素から別の要素内にペン位置が移動する、あるいは、微小ではない距離を移動するイベントを指すなどの定義が挙げられる。
図3は、カーソルモードでマスクを作成する際に用いられる状態遷移表の具体例であって、図4は、ペンモードでマスクを作成する際に用いられる状態遷移表の具体例である。
詳しくは、カーソルモードでマスク作成を行なう際、開始位置選択中モードで上下左右キーが押されてONマスクが付加された(マスクで隠された)文字上にカーソル移動が指示されると、図3に示される状態遷移表より、マスクが付加された文字列が一括して選択状態となり、一文字ずつカーソル移動はなされないことが特定される。その位置で決定キーが押されると、実行する処理として、かかる位置にマスクが作成できない旨のダイアログの表示処理が特定され、表示状態として、変化させない(マスクにカーソルがある表示のままである)ことが特定され、次に移行するモードとして開始位置選択中モードを続行することが特定される。
上下左右キーでOFFマスクが付加された(マスクで隠されていない)文字上にカーソル移動が指示されたときには一文字ずつカーソル移動が実行されることが特定される。その位置で決定キーが押されたときも同様に、実行する処理として、かかる位置にマスクが作成できない旨のダイアログの表示処理が特定され、表示状態として、変化させないことが特定され、次に移行するモードとして開始位置選択中モードを続行することが特定される。
上下左右キーでリンク等のマスク以外の機能が付加された文字やアクションイベント、画像にカーソル移動が指示されたときも一文字ずつカーソル移動が実行されることが特定される。その位置で決定キーが押されると、実行する処理として、当該文字等に一致したマスクを作成する処理が特定され、表示状態としてマスク表示が特定され、次に移行するモードとして開始位置選択中モードを続行することが特定される。
上下左右キーでその他の通常文字上にカーソル移動が指示されたときも一文字ずつカーソル移動が実行されることが特定される。その位置で決定キーが押されると、実行する処理として当該文字を開始位置に設定する開始位置設定処理が特定され、表示状態として反転表示が特定され、次に移行するモードとして終了位置選択中モードが特定される。
次に、終了位置選択中モードで上下左右キーが押されてその他の通常文字上にカーソル移動が指示されると、一文字ずつカーソル移動が実行され、文字列中に回込んだ画像が選択範囲に含まれる場合には、当該画像をまたいでカーソル移動が実行されることが特定される。その位置で決定キーが押されると、実行する処理として、選択範囲である反転部分にマスクを作成する処理が特定され、表示状態として、当該部分のマスク表示が特定され、次に移行するモードとして開始位置選択中モードが特定される。
終了位置選択中モードにおいて上下左右キーでマスクが付加された文字やマスク以外の機能が付加された文字やアクションイベント、画像上にカーソル移動が指示された場合、つまり、通常文字からこれらの文字等に向かってカーソル移動が指示された場合は、その直前でカーソル移動が止まり、当該文字等へのカーソル移動が実行されないことが特定される。そのため、その位置で決定キーがおされた場合の遷移結果は特定されていない。
なお、電子書籍データに含まれるテロップや線や余白など、マスクを付加する対象ではない要素にはカーソルが移動しないため、図3に示される状態遷移表において、これらの項目については遷移結果が特定されていない。
また、ペンモードでマスク作成を行なう際、開始位置選択中モードでマスクが付加された文字にペンダウンされると、図4に示される状態遷移表より、実行する処理として、かかる位置にマスクが作成できない旨のダイアログの表示処理が特定され、表示状態として、変化させないことが特定され、次に移行するモードとして開始位置選択中モードを続行することが特定される。また、テロップや線や余白など、マスクを付加する対象ではない要素にペンダウンされた場合も同様である。このことによって、終了位置選択中モードにおいて、マスクが付加された文字およびマスクを付加する対象ではない要素上で、ペンドラッグ(微小移動)や、自身を開始位置とするペンドラッグ(大移動)が発生しないため、図4に示される状態遷移表において、これらの項目については遷移結果が特定されていない。
リンク等のマスク以外の機能が付加された文字やアクションイベント、画像にペンダウンされると、当該文字等を一括して開始位置に設定する開始位置設定処理が特定され、表示状態として当該文字等に一致した範囲の反転表示が特定され、次に移行するモードとして終了位置選択中モードが特定される。
電子書籍データに含まれるテロップや線や余白など、マスクを付加する対象ではない要素にペンダウンされた場合には、エラーダイアログの表示処理が特定され、表示状態として、変化させないことが特定され、次に移行するモードとして開始位置選択中モードを続行することが特定される。
なお、開始位置選択中モードにおいては、ペンによる操作入力としてペンダウン以外の操作(ペンドラッグ(微小移動)、ペンドラッグ(大移動)、ペンアップ)は発生しないため、図4に示される状態遷移表において、これらの項目については遷移結果が特定されていない。終了位置選択中モードにおいても、ペンによる操作入力としてペンダウンは発生しないため、図4に示される状態遷移表において、当該項目については遷移結果が特定されていない。
終了位置選択中モードにおいてリンク等のマスク以外の機能が付加された文字やアクションイベント、画像上で、ペンドラッグ(微小移動)や、自身を開始位置とするペンドラッグ(大移動)が発生すると、開始位置選択中モードでペンダウンされたときに実行される当該文字等に一致した範囲の反転表示を続行するものと特定される。
マスクが付加された文字や、リンク等のマスク以外の機能が付加された文字やアクションイベント、画像上に、自身を開始位置としないペンドラッグ(大移動)が発生すると、表示状態として当該文字等の直前までの反転表示が特定される。なお、文字列中に回込んだ画像画像上に自身を開始位置としないペンドラッグ(大移動)が発生した場合、ペンドラッグに対応して当該画像をまたいで反転表示が続行されてもよい。
その他の通常文字上にペンドラッグ(微小移動)が発生した場合、通常文字内のペンドラッグ(微小移動)はユーザの誤操作である可能性が高いので、処理を実行しないと特定される。ペンドラッグ(大移動)が発生した場合には、表示状態として指定範囲の反転表示が特定される。なお、当該ペンドラッグが自身を開始位置としないペンドラッグ(大移動)である場合、指定範囲の文字列中にマスクやアクションイベントなどのマスクが付加できない要素がある場合には、当該要素の直前まで反転表示を行ない、回込んだ画像がある場合には、当該画像をまたいで反転表示を行なう。
その位置でペンアップされると、実行する処理として、選択範囲である反転部分にマスクを作成する処理が特定され、表示状態として、当該部分のマスク表示が特定され、次に移行するモードとして開始位置選択中モードが特定される。なお、反転部分がない場合には、処理は実行されない。
制御部105での状態遷移表を用いた処理として、具体的に、図3に示される状態遷移表を用いてカーソルモードでマスクを作成する処理を、図5のフローチャートを用いて説明する。
図5を参照して、始めに、ステップS101において、制御部105の制御によって初期状態として開始位置選択モードにモードが移行され、ステップS103で操作部104からのキー入力信号を待機する。
ステップS103で上下左右キーが押された場合(S103でYES、S105でNO、かつS115でYES)、現在のモードが開始位置選択モードであって、指定された方向にある要素がマスク可能な要素であるならば(S117でYES、かつS119でYES)、図3に示される状態遷移表からこれらのパラメータで特定される処理、表示状態、および次のモードが読出されて、ステップS129で当該要素にカーソルが移動し、指定された方向にある要素がマスク可能な要素でないならば(S117でYES、かつS119でNO)、ステップS121で当該方向にあるマスク可能な次の要素までカーソルが移動し、ステップS103に処理が戻って次のキー入力を待機する。この際、カーソルの移動先がONマスクの付加された文字である場合には、ステップS129では当該ONマスクの付加された文字列全体が選択表示される。
ステップS103で決定キーが押された場合(S103でYES、かつS105でYES)、現在のモードが開始位置選択モードであって、カーソルが通常文字上にあるときには(S107でYES、かつS109でYES)、図3に示される状態遷移表からこれらのパラメータで特定される処理、表示状態、および次のモードが読出され、ステップS111で当該カーソルのある通常文字がマスクの開始位置に設定されて、終了位置選択モードに移行する。そして、ステップS123で、当該カーソルのある通常文字が指定範囲であることがわかるよう反転表示(選択表示)され、ステップS103に処理が戻って次のキー入力を待機する。
カーソルが通常文字以外の上にあるときには(S107でYES、かつS109でNO)、すなわち、マスクが付加された文字やマスク以外の機能が付加された文字やアクションイベント、画像上にあるとき、ステップS113において当該文字等の先頭がマスク開始位置に、末尾がマスク終了位置に設定され、これらの範囲でマスクが作成されて処理が終了する。
ステップS103で上下左右キーが押された場合であって現在のモードが終了位置選択モードである場合(S103でYES、S105でNO、S115でYES、かつS117でNO)、ステップS111でマスクの開始位置が設定された後に上下左右キーが押された場合であるので、図3に示される状態遷移表からこれらのパラメータで特定される処理、表示状態、および次のモードが読出されて、ステップS125で、指定された方向にある文字にカーソルが移動し、ステップS111で設定されたマスクの開始位置から当該文字までの間の文字が指定範囲であることがわかるよう反転表示(選択表示)される。そして、ステップS103に処理が戻って次のキー入力を待機する。なお、指定された方向にある要素が文字でない場合には、その直前の文字でカーソル移動が止まり、該要素が文字列に回込んだ画像である場合には、その画像をまたいで次の文字にカーソルが移動する。
ステップS103で決定キーが押された場合であって現在のモードが終了位置選択モードである場合(S103でYES、S105でYES、かつS107でNO)、ステップS111でマスクの開始位置が設定された後に決定キーが押された場合であるので、図3に示される状態遷移表からこれらのパラメータで特定される処理、表示状態、および次のモードが読出され、ステップS127で、現在カーソルのある文字がマスクの開始位置に設定されて、ステップS125またはステップS123で反転表示された指定範囲にマスクが作成され、処理が終了する。
制御部105では、ペンモードでマスクを作成する場合にも、同様の状態遷移表を用いた処理が実行される。また、マスクに限らず、マーカー等の他の属性を付加する際も同様の処理が実行される。
図6〜図9に、アクションイベントとしてリンクを含む文字列の一部に、属性としてマスクを作成する際の状態遷移例を示し、制御部105での処理を具体的に説明する。なお、マーカー等の他の属性を付加する処理も同様であるため、ここでの説明を繰返さない。
カーソルモードでマスクを作成する場合、開始位置選択中モードで上下左右キーの指示を受付けて文字列上をカーソル移動させ(図6(A),図6(B))、リンクが付加された文字列においても、一文字ずつカーソル移動させる(図6(C))。そして、図6(C)に示される、リンク内の文字上にカーソルがあるときに決定キーが押されると、リンクが付加された文字列の先頭文字をマスク開始位置、最終文字をマスク終了位置と設定し、リンク全体にマスクを作成する(図6(D))。
ペンモードでマスクを作成する場合、開始位置選択中モードで、図7(A)に示されるリンクが付加された文字列内のいずれの文字にペンダウンされても(図7(B))、リンクが付加された文字列の先頭文字をマスク開始位置、最終文字をマスク終了位置と設定して、当該リンクが付加された文字列と完全に一致した範囲を選択範囲とする。そして、ペンアップされると選択範囲にマスクを作成する(図7(C))。
このような処理を行なうことで、マスクやマーカー等の属性をアクションイベントの範囲に完全に一致して作成することができる。
なお、上のペンモードでマスクを作成する具体例は図4に示される状態遷移表を用いてマスクを作成する具体例であって、ペンアップを受付けて選択範囲にマスクを作成するものとしたが、ペンアップされなくても、ペンダウンされてリンク範囲に完全に一致した選択範囲が設定された時点で自動的にマスクを作成してもよい。
また、カーソルモードでマスクを作成する場合、開始位置選択中モードで上下左右キーの指示を受付けて文字列上をカーソル移動させ(図8(A)〜図8(C))、図8(C)に示されるように通常文字において決定キーの指示を受付けると、当該通常文字をマスク開始位置と設定し、モードを終了位置選択中モードに遷移させる。終了位置選択中モードで上下左右キーの指示を受付けると、図8(D)〜図8(G)に示されるように、文字列上をカーソル移動させつつ、マスク開始位置から現在のカーソル位置までを選択範囲とする。図8(G)に示される状態でさらに右方向に上下左右キーの指示を受付けた場合、つまり通常文字からリンクが付加された文字に向かってカーソル移動を指示されると、カーソル移動をリンクが付加された文字列の直前の文字までとし、リンク内にはカーソル移動させない。そのため、選択範囲はマスク開始位置の文字からリンク直前の文字までとなり、決定キーが押されると、リンク直前までの当該選択範囲にマスクを作成する。
ペンモードでマスクを作成する場合、開始位置選択中モードで、図9(A)に示されるリンクを含む文字列の内の通常文字にペンダウンされ(図9(B))、当該通常文字からリンクが付加された文字を含んでペンドラッグされたとき、図9(C)に示されるように、当該通常文字をマスク開始位置、リンクが付加された文字列の直前の通常文字をマスク終了位置と設定して、当該通常文字からリンクが付加された文字列の直前の通常文字までを選択範囲とし、リンク内の文字は選択範囲としない。図9(D)に示されるように、当該通常文字からリンクが付加された文字を含んでペンドラッグされた後にペンアップされても、図9(E)に示されるように、当該通常文字からリンクが付加された文字列の直前の通常文字までの選択範囲にマスクを作成する。
このような処理を行なうことで、アクションイベントを含む文字列にマスクやマーカー等の属性を付加するとき、アクションイベントの範囲をはみ出した範囲に属性を作成しないようにできる。
なお、リンク等のアクションイベントのみではなく、テロップや線や余白などの属性を付加する対象ではない要素が文字列に含まれている場合も同様である。
すなわち、図10を参照して、属性を付加する対象ではない要素(図10中に四角で示されている)を含む文字列の一部にカーソルモードでマスクを作成する場合、開始位置選択中モードで上下左右キーの指示を受付けて文字列上をカーソル移動させ(図10(A)〜図10(C))、図10(C)に示されるように通常文字において決定キーの指示を受付けると、当該通常文字をマスク開始位置と設定し、モードを終了位置選択中モードに遷移させる。終了位置選択中モードで上下左右キーの指示を受付けると、図10(D)〜図10(G)に示されるように、文字列上をカーソル移動させつつ、マスク開始位置から現在のカーソル位置までを選択範囲とする。図10(G)に示される状態でさらに右方向に上下左右キーの指示を受付けた場合、つまり属性を付加する対象ではない要素に向かってカーソル移動を指示されると、カーソル移動を当該要素の直前の文字までとし、当該要素にはカーソル移動させない。そのため、選択範囲はマスク開始位置の文字から属性を付加する対象ではない要素直前の文字までとなり、決定キーが押されると、当該要素直前までの選択範囲にマスクを作成する。
また、図11を参照して、属性を付加する対象ではない要素(図11中に四角で示されている)を含む文字列の一部にペンモードでマスクを作成する場合、開始位置選択中モードで、図11(A)に示される通常文字にペンダウンされ(図11(B))、当該通常文字から属性を付加する対象ではない要素を含んでペンドラッグされたとき、図11(C)に示されるように、当該通常文字をマスク開始位置、当該要素の直前の通常文字をマスク終了位置と設定して、当該通常文字から当該要素の直前の通常文字までを選択範囲とし、当該要素は選択範囲に含まない。図11(D)に示されるように、当該通常文字から属性を付加する対象ではない要素を含んでペンドラッグされた後にペンアップされても、図11(E)に示されるように、当該通常文字から当該要素の直前の通常文字までの選択範囲にマスクを作成する。
ビューワ100の制御部105でこのような状態遷移表を用いた処理が実行されることで、アクションイベントを含む文字列に属性を付加する際、属性の範囲をアクションイベントの範囲に完全に一致させることができる。そのため、フォーカス移動のパターン数を格段に減少させることができ、フォーカス移動処理を容易にできる。それに伴って、フォーカスの各位置において決定キーが押された場合に実行されるアクションの候補も格段に減少させることができ、プログラムを簡略化させることができる。また、ユーザの操作性も格段に高まる。
具体的には、図33に示された具体例と同様の具体例を図12に示すと、文字列「次ページへ」のリンクを含む範囲にマスクを付加しようとした場合であっても、リンク範囲と完全に一致した範囲「ページ」にマスクが付加される。そのため、図12(ABD)に示されるように、考えられるフォーカス移動のパターンが1パターンに絞られ、図33(A),(B),(D)に示されたリンク範囲とマスクとが不一致の場合のフォーカス移動のパターン(計13パターン)と比較して、その数が格段に減少する。また、フォーカス移動した後決定キーを押したときに実行されるアクションの候補も、図13(ABD)に示されるように1つに絞られ、図34,35(A),(B)、図36,37(D)に示されたリンク範囲とマスクとが不一致の場合のアクションの候補(計13アクション)と比較して、その数が格段に減少する。
同様に、文字列「次ページへ」の一部分にマスクを付加しようとした場合であっても、リンク範囲と完全に一致した範囲「次ページへ」にマスクが付加される。そのため、図12(CE)に示されるように、考えられるフォーカス移動のパターンが1パターンに絞られ、図33(C),(E)に示されたリンク範囲とマスクとが不一致の場合のフォーカス移動のパターン(計10パターン)と比較して、その数が格段に減少する。また、フォーカス移動した後決定キーを押したときに実行されるアクションの候補も、図13(CE)に示されるように1つに絞られ、図36,37(C),(E)に示されたリンク範囲とマスクとが不一致の場合のアクションの候補(計10アクション)と比較して、その数が格段に減少する。
図14〜図19に、アクションイベントとして画像を含む文字列の一部に、属性としてマスクを作成する際の状態遷移例を示し、制御部105での処理を具体的に説明する。
図3の状態遷移表を用いてカーソルモードでマスクを作成する場合、開始位置選択中モードで上下左右キーの指示を受付けて文字列上をカーソル移動させ(図14(A),図14(B))、画像においても、画像を1つの文字と同様に扱って、画像上にカーソル移動させる(図14(C))。そして、図14(C)に示される、画像上にカーソルがあるときに決定キーが押されると、当該画像をマスク開始位置およびマスク終了位置と設定し、画像にマスクを作成する(図14(D))。
図4の状態遷移表を用いてペンモードでマスクを作成する場合、開始位置選択中モードで、図15(A)に示される文字列内の画像にペンダウンされると(図15(B))、当該画像をマスク開始位置およびマスク終了位置と設定し、当該画像を選択範囲とする。そして、ペンアップされると選択範囲にマスクを作成する(図15(C))。
このような処理を行なうことで、マスクやマーカー等の属性を画像であるアクションイベントの範囲に完全に一致して作成することができる。
なお、上のペンモードでマスクを作成する具体例は図4に示される状態遷移表を用いてマスクを作成する具体例であって、ペンアップを受付けて選択範囲にマスクを作成するものとしたが、ペンアップされなくても、ペンダウンされて画像に完全に一致した選択範囲が設定された時点で自動的にマスクを作成してもよい。
また、カーソルモードでマスクを作成する場合、開始位置選択中モードで上下左右キーの指示を受付けて文字列上をカーソル移動させ(図16(A),図16(B))、図16(B)に示されるように通常文字において決定キーの指示を受付けると、当該通常文字をマスク開始位置と設定し、モードを終了位置選択中モードに遷移させる。終了位置選択中モードで上下左右キーの指示を受付けると、図16(B),図16(C)に示されるように、文字列上をカーソル移動させつつ、マスク開始位置から現在のカーソル位置までを選択範囲とする。図16(C)に示される状態でさらに右方向に上下左右キーの指示を受付けた場合、つまり通常文字から画像に向かってカーソル移動を指示されると、カーソル移動を画像の直前の文字までとし画像にはカーソル移動させない。そのため、選択範囲はマスク開始位置の文字から画像直前の文字までとなり、決定キーが押されると、画像直前までの当該選択範囲にマスクを作成する。
ペンモードでマスクを作成する場合、開始位置選択中モードで、図17(A)に示される画像を含む文字列の内の通常文字にペンダウンされ(図17(B))、当該通常文字から画像を含んでペンドラッグされたとき、図17(C)に示されるように、当該通常文字をマスク開始位置と設定して当該通常文字から画像の直前の通常文字までを選択範囲とし、画像は選択範囲に含めない。図17(D)に示されるように、当該通常文字から画像を含んでペンドラッグされた後にペンアップされても、図17(E)に示されるように、当該通常文字から画像の直前の通常文字までの選択範囲にマスクを作成する。
このような処理を行なうことで、アクションイベントが画像である場合であっても、アクションイベントを含む文字列にマスクやマーカー等の属性を付加するとき、アクションイベントの範囲をはみ出した範囲に属性を作成しないようにできる。
なお、電子書籍データに含まれる画像としては、図14〜図17に示されるような文字列の中に配置されるもの(インライン)と、図18に示されるような文字が回込んだもの(回込み)とがある。そこで、図18,図19に、アクションイベントとして文字の回込んだ画像を含む文字列の一部に、属性としてマスクを作成する際の状態遷移例を示す。
カーソルモードでマスクを作成する場合、開始位置選択中モードで上下左右キーの指示を受付けて文字列上をカーソル移動させ(図18(A),図18(B))、図18(B)に示されるように通常文字において決定キーの指示を受付けると、当該通常文字をマスク開始位置と設定し、モードを終了位置選択中モードに遷移させる。終了位置選択中モードで上下左右キーの指示を受付けると、図18(B),図18(C)に示されるように、文字列上をカーソル移動させつつ、マスク開始位置から現在のカーソル位置までを選択範囲とする。図18(C)に示される状態でさらに右方向または下方向に上下左右キーの指示を受付けた場合、図18(D),図18(E)に示されるように画像をまたいで画像以降の通常文字に次行にわたってカーソル移動させ、マスク開始位置から画像を抜いた現在のカーソル位置までを選択範囲とする。そして、図18(E)に示される状態で決定キーが押されると、当該選択範囲にマスクを作成する。
ペンモードでマスクを作成する場合、開始位置選択中モードで、図19(A)に示される画像を含む文字列の内の通常文字にペンダウンされ(図19(B))、当該通常文字から行をまたいでペンドラッグされたとき、図19(C)に示されるように、当該通常文字をマスク開始位置と設定して、当該通常文字から画像をまたいで画像以降の通常文字も選択範囲とし、画像は選択範囲に含めない。そして、図19(D)に示されるように、当該通常文字から画像を含んで次行にわたってペンドラッグされた後にペンアップされると、図19(E)に示されるように、当該選択範囲にマスクを作成する。
ビューワ100の制御部105でこのような状態遷移表を用いた処理が実行されることで、画像であるアクションイベントを含む文字列に属性を付加する際においても、属性の範囲を画像であるアクションイベントの範囲に完全に一致させることができる。そのため、フォーカス移動のパターン数を格段に減少させることができ、フォーカス移動処理を容易にできる。それに伴って、フォーカスの各位置において決定キーが押された場合に実行されるアクションの候補も格段に減少させることができ、プログラムを簡略化させることができる。また、ユーザの操作性も格段に高まる。
具体的には、図38に示された具体例と同様の具体例を図20に示すと、画像を一部に含む範囲にマスクを付加しようとした場合であっても、画像と完全に一致した範囲にマスクが付加される。そのため、図20(AB)に示されるように、考えられるフォーカス移動のパターンが1パターンに絞られ、図38(A),(B)に示された画像とマスクとが不一致の場合のフォーカス移動のパターン(計10パターン)と比較して、その数が格段に減少する。また、フォーカス移動した後決定キーを押したときに実行されるアクションの候補も1つに絞られ、図39(A),(B)に示された画像とマスクとが不一致の場合のアクションの候補(計10アクション)と比較して、その数が格段に減少する。
以上の説明はマスクやマーカー等の属性を付加する際の制御部105の処理の具体的な説明であるが、すでに付加されているマスクやマーカー等の属性を削除する場合も同様の処理が実行される。
具体的には、図21を参照して、カーソルモードでマスクを削除する場合、削除モードで上下左右キーの指示を受付けて文字列上をカーソル移動させると、図21(A)に示される位置から図21(B)に示される位置までは通常文字の連続のため一文字ずつカーソル移動させ、ONマスク上にカーソルがきたときには、当該ONマスクの付加された文字列を1つの文字として一括してカーソル位置として表示し、カーソル移動させる(図21(C))。この状態で決定キーが押されると、当該マスクを削除する。
図22を参照して、ペンモードでマスクを削除する場合、削除モードで、図22(A)に示される文字列内のONマスクにペンダウンされると(図22(B))、当該画像を削除開始位置と設定する。その状態でペンドラッグされた場合であっても、ペンドラッグに応じて一文字ずつ選択するのではなく、当該ONマスクの付加された文字列を一括して選択し、当該ONマスク末尾の文字まで選択範囲とする(図22(C))。なお、このときのペンドラッグは距離が0(すなわちペンタップのみ)であってもよい。そして、ペンアップされると(図22(D))、当該選択範囲に付加されているマスクを削除する(図22(E))。
なお、このように、ONマスクにカーソルを移動させる際、またはペンダウンやペンドラッグされた際に一文字ずつカーソルや選択状態を示す表示を移動させるのではなく、ONマスクの付加されている文字列を一括して選択状態とすることで、ONマスクの背後に隠されている文字数が明らかとなることがなく、ONマスクの意義が活かされたまま選択することができる。そこで、第2の実施の形態として、第1の実施の形態にかかるビューワと同様のビューワ100において、ONマスクの意義を活かしつつ機能を付加する制御部105での処理について説明する。
[第2の実施の形態]
図23,図24は、第2の実施の形態にかかるビューワ100の状態遷移表記憶部108に記憶される状態遷移表の具体例を示す図であって、図23は、カーソルモードでマスクを作成する際に用いられる状態遷移表の具体例であって、図24は、ペンモードでマスクを作成する際に用いられる状態遷移表の具体例である。
詳しくは、カーソルモードでマスク作成を行なう際、開始位置選択中モードで上下左右キーが押されてONマスクが付加された文字上にカーソル移動が指示されると、図23に示される状態遷移表より、ONマスクが付加された文字列が一括して選択状態となり、一文字ずつカーソル移動はなされないことが特定される。また、その位置で決定キーが押されると、実行する処理として、当該ONマスクが付加された文字列先頭の文字を開始位置に設定する処理が特定され、表示状態として反転表示処理、次に移行するモードとして終了位置選択中モードが特定される。
上下左右キーでOFFマスクが付加された文字上にカーソル移動が指示されたときには一文字ずつカーソル移動が実行されることが特定される。その位置で決定キーが押されたときは、実行する処理として、カーソル位置の文字を開始位置に設定する処理が特定され、表示状態として反転表示処理、次に移行するモードとして終了位置選択中モードが特定される。また、リンク等のマスク以外の機能が付加された文字やアクションイベント、画像にカーソル移動が指示されたときも同様である。
終了位置選択中モードにおいて上下左右キーが押されてONマスクが付加された文字上にカーソル移動が指示されると、マスクが付加された文字列が一括して選択状態となり、一文字ずつカーソル移動はなされないことが特定される。また、その位置で決定キーが押されると、実行する処理として、当該ONマスクが付加された文字列末尾の文字を終了位置に設定して選択範囲にマスクを作成する処理が特定され、表示状態としてマスク表示処理、次に移行するモードとして開始位置選択中モードが特定される。
上下左右キーでOFFマスクが付加された文字上にカーソル移動が指示されたときには一文字ずつカーソル移動が実行されることが特定される。その位置で決定キーが押されたときは、実行する処理として、カーソル位置の文字を終了位置に設定して選択範囲にマスクを作成する処理が特定され、表示状態としてマスク表示処理、次に移行するモードとして開始位置選択中モードが特定される。また、リンク等のマスク以外の機能が付加された文字やアクションイベント、画像にカーソル移動が指示されたときも同様である。
上下左右キーでその他の通常文字上にカーソル移動が指示されたときについては、第1の実施例にかかる状態遷移表と同様である。
また、ペンモードでマスク作成を行なう際、開始位置選択中モードでONマスクが付加された文字にペンダウンされると、図24に示される状態遷移表より、実行する処理として、ONマスクが付加された文字列先頭の文字を開始位置に設定する処理が特定され、一文字ずつ選択されて開始位置に設定されないことが特定される。また、表示状態としてONマスクが付加された文字列を一括して反転表示する処理、次に移行するモードとして終了位置選択中モードが特定される。
OFFマスクが付加された文字にペンダウンされると、実行する処理として、ペンダウンされた文字を開始位置に設定する処理が特定され、表示状態として変化がないこと、次に移行するモードとして終了位置選択中モードが特定される。また、リンク等のマスク以外の機能が付加された文字やアクションイベント、画像にペンダウンされたときも同様である。
終了位置選択中モードにおいてONマスクが付加された文字上にペンドラッグ(微小移動)や、自身を開始位置とするペンドラッグ(大移動)が発生すると、ONマスクが付加された文字列末尾の文字を終了位置に設定する処理が特定され、一文字ずつ選択されて終了位置に設定されないことが特定される。また、表示状態としてONマスクが付加された文字列を一括して反転表示する処理が特定される。
OFFマスクが付加された文字上に自身を開始位置とするペンドラッグ(大移動)が発生すると、文字にペンダウンされると、実行する処理として、ペンドラッグされた文字を反転表示する処理が特定される。自身を開始位置としないペンドラッグ(大移動)が発生した場合には、実行する処理として、ペンドラッグの範囲内にマスク作成できない要素があるときにはその直前の要素までを反転表示する処理が特定され、そうでない場合には、ペンドラッグの範囲内の要素を反転表示する処理が特定される。また、リンク等のマスク以外の機能が付加された文字やアクションイベント、画像にペンダウンされたときも同様である。
その位置でペンアップされると、実行する処理として、選択範囲である反転部分にマスクを作成する処理が特定され、表示状態として、当該部分のマスク表示が特定され、次に移行するモードとして開始位置選択中モードが特定される。なお、反転部分がない場合には、処理は実行されない。
上下左右キーでその他の通常文字上にカーソル移動が指示されたときについては、第1の実施例にかかる状態遷移表と同様である。
第2の実施の形態にかかるビューワ100の制御部105で、図23,図24に示されるような状態遷移表を用いて処理が実行されることで、先に図21,図22に示されたようにONマスクは一括して選択され、または一文字としてカーソル位置とされ、その背後に隠されている文字列の文字数が明らかとならない。
なお、本実施の形態にかかるビューワ100では、マスクが付加されている文字列を含む範囲についてマスクを付加されてもよい。すなわち、図25(A)に示される文字列に、複数のマスクが一致しない範囲(文字列「1992」および文字列「鎌倉幕府は1192年に、」)で重なって付加されてもよい。図25(B)は両マスクがOFFマスクである状態、図25(C)は両マスクがONマスクである状態、図25(D),図25(E)は一方のマスクがONマスクであり他方のマスクがOFFマスクである状態の表示の具体例を示す図である。
さらに、図26(A)に示されるように、異なるサイズの文字を含む文字列にマスクを付加する際、図26(B)に示されるように一文字ずつ各文字サイズに応じたマスクを付加するとマスク背後に隠された文字の見当がつき、ONマスクの意義が薄れてしまう。また、図26(C)に示されるように異なる文字サイズのうちの小さなサイズに応じたマスクを付加するとサイズの大きな文字はマスク画像よりも大きく、ONマスクの意義が薄れてしまう。そのため、図26(D)に示されるように、異なる文字サイズのうちの最も大きなサイズに応じたマスクを付加することが好ましい。これは、マスクに限定されず、マーカー等の他の属性を付加する場合も同様である。また、ONマスクを付加する要素は文字に限定されず、画像などの他の要素に付加する際も同様である。このようなマスクを付加するときの制御部105における処理について、図27のフローチャートおよび図28,図29の具体例を用いて説明する。
図27を参照して、始めに、ステップS201で上述のマスクを作成する処理と同様の処理を行なって開始位置に設定されたマスク先頭の第1文字が取得され、ステップS203で変数(minX,minY),(maxX,maxY)が初期化される。
ステップS203では、minXが第1文字の左上位置のx座標、minYが第1文字の左上位置のy座標、maxXが第1文字の右下位置のx座標、maxYが第1文字の右下位置のy座標に初期化される。より具体的には、図28に示されるように、サイズの異なる文字列「A,B,C」がマスク範囲である場合、第1文字である文字「A」の左上点A1(Xa1,Ya1)および右下点A2(Xa2,Ya2)より、変数が
(minX,minY)=(Xa1,Ya1)
(maxX,maxY)=(Xa2,Ya2)
に初期化される。
次の第2文字もマスク範囲に含まれる文字である場合(ステップS205でYES)、ステップS207で第2文字の左上点(leftTop.x,leftTop.y)と右下点(rightBottom.x,rightBottom.y)とが取得される。図28に示される例の場合、第2文字である文字「B」の左上点B1(Xb1,Yb1)および右下点B2(Xb2,Yb2)より、
(leftTop.x,leftTop.y)=(Xb1,Yb1)
(rightBottom.x,rightBottom.y)=(Xb2,Yb2)
が取得される。
次に、ステップS209でleftTop.yとminYとが比較され、minYがleftTop.yより大なる場合(ステップS209でYES)、すなわち、第2文字の方が第1文字よりも高い場合、ステップS211で変数minYがleftTop.yに設定される。そうでない場合には(ステップS209でNO)、すなわち、第2文字の方が第1文字よりも低い場合、変数minYが保持される。
さらに、ステップS213でrightBottom.xとmaxXとが比較され、maxXがrightBottom.xより小なる場合(ステップS213でYES)、すなわち、第2文字の方が第1文字よりも右にある場合、ステップS215で変数maxXがrightBottom.xに設定される。そうでない場合にはステップS213ででNO)、すなわち、第2文字の方が第1文字よりも右にない場合、変数maxXが保持される。
以上のステップS205〜S215の処理がマスク範囲に含まれるすべての文字に対して実行されて(ステップS205でNO)、ステップS217において、そのときの変数(minX,minY)を左上点、変数(maxX,maxY)を右下点とするマスク領域が決定される。すなわち、上述の処理がマスク範囲に含まれるすべての文字に対して実行されることで、図28に示される例の場合には、文字列の左上点のx座標と最も高い文字のy座標とからなる点M1(Xa1,Yc1)、および最も右の文字のx座標と文字列の右下点のy座標とからなる点M2(Xc1,Yc1)で定まる領域(図29)がマスク領域に決定される。
なお、今回開示した例では横書き文章の例が示されているが、縦書き文章でも同様にして対応できることは言うまでもない。
さらに、上述のコンテンツ処理装置で実行される処理方法を、プログラムとして提供することもできる。このようなプログラムは、コンピュータに付属するフレキシブルディスク、CD−ROM(Compact Disc-Read Only Memory)、ROM(Read Only Memory)、RAM(Random Access Memory)およびメモリカードなどのコンピュータ読取り可能な記録媒体にて記録させて、プログラム製品として提供することもできる。あるいは、コンピュータに内蔵するハードディスクなどの記録媒体にて記録させて、プログラムを提供することもできる。また、ネットワークを介したダウンロードによって、プログラムを提供することもできる。
提供されるプログラム製品は、ハードディスクなどのプログラム格納部にインストールされて実行される。なお、プログラム製品は、プログラム自体と、プログラムが記録された記録媒体とを含む。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
100 ビューワ、101 データ受信部、102 外部記憶部、103 電子書籍データ記憶部、104 操作部、105 制御部、106 表示部、107 文字属性記憶部、108 状態遷移表記憶部。