以下、図面を参照しつつ本発明の一実施の形態に係るレイアウト装置として機能する表示装置について説明する。なお、以下の説明に用いる図面では、同一の部品に同一の符号を付してある。それらの名称及び機能も同一である。したがって、それらについての詳細な説明は繰返さない。
まず、本実施の形態に係る表示装置によるレイアウト及び表示の対象となるコンテンツ及びメモについて、概要を説明する。図1にコンテンツ及びメモの一例を示す。図1を参照して、コンテンツ40は、文字、文字列、及び画像等の要素(以下、この要素を「表示対象要素」と呼ぶ。)42A,42B,…の集まりである。図1に示す例では、コンテンツ40は表示対象要素42A,42B,…からなる文字列「このあたりの記述は大事な箇所ですので必ずチェックをお願いします。・・・・」である。
表示対象要素42A,42B,…が所定の順序等にしたがいレイアウトされ表示されると、コンテンツ40はユーザにとって視覚的に利用可能な情報になる。コンテンツを表示させる媒体(以下、この媒体を「出力媒体」と呼ぶ。)上での表示対象要素42A,42B,…の位置は、出力媒体に応じて定められる条件及びユーザによる文字サイズ等の指定によって決まる。出力媒体に応じて定められる条件とは、例えば当該出力媒体において表示対象要素42A,42B,…を表示させることができない端の部分、ウィンドウ枠等の表示に使われるためコンテンツ40の表示に使えない部分、及びコンテンツ40を見やすくするために定められた余白部分等である。本明細書では、出力媒体に応じて定められるこれらの制限がない部分、すなわち表示対象要素42A,42B,…を表示できる部分を「レイアウト可能範囲」と呼ぶ。
コンテンツ40は、それを表示する際の設定等により異なる態様で表示される。例えば、コンテンツ40のレイアウト可能範囲、文字のサイズ及びフォント、表示対象要素42A,42B,…同士の間隔、並びに改行位置等の設定によりコンテンツ40の表示態様が変更される。本明細書では、コンテンツ40をレイアウトし表示させる範囲を、「(コンテンツの)レイアウト範囲」と呼ぶ。一般に、レイアウト範囲は、レイアウト可能範囲と同じ範囲、又はレイアウト可能範囲より上下左右に余白を取った分だけ狭い範囲となる。
メモ44は、コンテンツ40に対してユーザが入力する目印、注釈等の情報である。メモ44は、文字列、画像、図形、及び手書き入力の筆跡等の要素(以下、メモの要素を「メモ要素」と呼ぶ。)からなる。図1に示す例では、メモ44は、コンテンツ40中の「大事な箇所」という部分を丸く囲むように手書き入力された目印である。メモ44はコンテンツと独立した情報であるが、多くの場合、コンテンツを構成する表示対象要素の一部又は全部と対応関係にある。
メモ44は、コンテンツ40の表示態様が変更された後の表示においても、コンテンツ40の関連する部分「大事な箇所」を強調するように表示されることが望ましい。すなわち、メモ44は、コンテンツ40を構成する表示対象要素に対し変更前と同じ位置関係にあることが望ましい。
そこで、本実施の形態に係る表示装置は、メモ44をコンテンツ40の表示対象要素42A,42B,…に関連付けるとともに、メモ44と関連付けられた表示対象要素42A,42B,…のメモ44に対する相対位置を特定する。また、メモ44を、メモ要素を示すメモ要素データ、並びにメモ44と関連付けられた表示対象要素及びその相対位置を示す関連付けデータとを含むメモデータとして記録する。メモ44を表示する際には、記録した関連付けデータに基づき、表示対象要素42A,42B,…のレイアウトに応じた位置にメモをレイアウトする。さらに、コンテンツ40の表示態様の変更等がなされ、メモ44を表示対象要素42A,42B,…と関連付けるのが困難なレイアウトとなった場合には、コンテンツ40との関連性が維持されるように、メモを加工する。
図2に、メモの加工例を概略的に示す。図2を参照して、本実施の形態に係る表示装置は、コンテンツとの関連性が維持されるように、メモ44Aの「サイズ変更」、「分割」、及び「複製」を行なう。
「サイズ変更」は、加工前のメモ44Aの幅及び高さの少なくとも一方を変更する加工である。サイズ変更は、メモ44Aに関連付けられた表示対象要素が出力媒体上で占める領域の幅又は高さが変化した場合に行なわれる。メモ44Aをサイズ変更すると、メモ44Aは、メモ44Aとは異なるサイズのメモ44Bに変化する。
「分割」は、それぞれメモ44Aのメモ要素の一部分からなる、新たな分割メモ44C及びメモ44Dを作成する加工である。分割は、例えばメモ44Aに関連付けられている文字列が途中で改行された場合等、レイアウトの変更により、メモ44Aに関連付けられた表示対象要素が出力媒体上で占める領域が、互いに所定の関係を有する複数の領域に分離した場合に行なわれる。
「複製」は、メモ44Aとは別に、加工前のメモ44Aと同様な複製メモ44Eを作成する加工である。複製は、例えばメモ44Aに関連付けられた表示対象要素の表示媒体上での位置関係にずれが生じたり、分離したりしたために、メモ44Aのサイズ変更、及び分割のいずれを行なってもメモ44Aとコンテンツとの相対的な位置関係が維持できない場合に行なわれる。
本実施の形態に係る表示装置は、メモ44Aの表示位置及びサイズ変更、分割、及び複製を組合せてメモ44Aを変更し、コンテンツと併せて表示することにより、コンテンツとメモとの関係を維持する。
図3に、本実施の形態に係る表示装置の構成をブロック図形式で示す。図3を参照して、表示装置50は、図1に示すコンテンツ40、メモ44、及びそれらの表示の際に参照すべきデータを記憶する記憶部60と、コンテンツ40及びその表示態様の変更、並びにメモ44の作成、追加、削除、及び変更等を表示装置50に指示するためのユーザによる操作を受けて、その操作に応じた操作信号を発生する操作部62と、操作部62が発生した操作信号に応じて、記憶部60に記憶されたデータに基づくコンテンツ40及びメモ44のレイアウトの決定、コンテンツ40及びメモ44を表示するための出力信号の生成、並びに記憶部60へのデータの記録及び更新を行なうデータ処理部64と、本実施の形態における出力媒体であり、データ処理部64により生成された出力信号を受けて表示する表示パネル66とを含む。
記憶部60が記憶するデータは、コンテンツ40を構成する表示対象要素42A,42B,…、及びそれらのレイアウトを示すコンテンツデータ70と、メモ44を構成するメモ要素及びメモ要素のレイアウトを示すデータ、並びにメモ44と関連付けられた表示対象要素及びその相対位置を示す関連付けデータを含むメモデータ72と、表示パネル66上のコンテンツ40及びメモ44のレイアウト可能範囲、文字のサイズ及びフォント、表示対象要素42A,42B,…同士の間隔、並びに改行位置等、コンテンツ40の表示に関する設定を示す表示設定データ74とを含む。
表示装置50はさらに、制御部80に接続され、制御部80が外部の記憶装置及びプリンタ等とデータ処理部64との間でコンテンツデータ70等の授受を仲介するインタフェース部68を含む。
操作部62及び表示パネル66は、グラフィカル・ユーザ・インタフェース(GUI)を実現する装置及びソフトウェアの組合せを含む。図4に、操作部62及び表示パネル66の一例を示す。図4を参照して、表示パネル66は、液晶表示パネルを含む。操作部62は、表示パネル66と一体に構成されたタッチパネル100及びタッチパネル上の任意の点を示すための入力ペン102によって構成されたポインティングデバイス、並びに当該ポインティングデバイスと表示パネル66との組合せによりGUIを実現するソフトウェアを含む。操作部62はさらに、上記したポインティングデバイスと同様にGUIを実現する図示しないマウス及びソフトウェアの組合せ、並びに文字等を入力するための図示しないキーボードを含む。
再び図3を参照して、データ処理部64は、操作部62に対する操作をユーザに促すためのメッセージの生成、操作信号に基づく表示設定データ74の変更、及びメモデータ72の編集を行なうとともに、表示装置50の各機能部に対して所定の手順でコンテンツデータ70及びメモデータ72の集配信を行ない、表示装置50の各機能部を制御する制御部80と、制御部80からコンテンツデータ70の配信を受け、表示設定データ74に基づきコンテンツデータ70により示される各表示対象要素の表示パネル66上でのレイアウトを決定するコンテンツレイアウト部82とを含む。
データ処理部64はさらに、制御部80からコンテンツデータ70及びメモデータ72を受けて表示対象要素とメモ要素との対応関係を特定し、メモをどの表示対象要素に対応するようにレイアウトして表示すべきかを示す関連付けデータを作成してメモデータ72に付与し記憶部60に格納する記録部84と、制御部80からコンテンツデータ70及びメモデータ72を受け、コンテンツデータ70及びメモデータ72に付与された関連付けデータに基づきメモ44の加工を行ない、メモ44の表示パネル66上でのレイアウトを決定するメモレイアウト部86と、コンテンツレイアウト部82及びメモレイアウト部86によりそれぞれ決定されたコンテンツ40のレイアウト及びメモ44のレイアウトに基づき、表示パネル66に対する出力信号を生成して表示パネル66に供給する表示制御部88を含む。なお、表示制御部88は、制御部80により出力されるメッセージを出力信号に変換して表示パネル66に供給する機能も有する。
以下、図3に示すコンテンツデータ70について説明する。図5に、コンテンツデータ70の一例を示す。図5を参照して、コンテンツデータ70は、表示対象要素ごとの表示対象要素データ120A,120B,120C,…を含む。これらはいずれも同様のデータ構造を有する。例えば、表示対象要素データ120Aは、表示対象要素の「種類」122と、表示対象要素を識別するための「データ位置」132と、表示対象要素自体を示す「内容」134とを含む。表示対象要素データ120Aはさらに、表示対象要素の位置を示す座標値「X」124及び座標値「Y」126、表示対象要素の大きさを示す幅「W」128及び高さ「H」130を含む。
「種類」122は、表示対象要素の種類を、文字(TEXT)、画像(IMAGE)等の所定の文字列によって示す。「データ位置」132は、表示対象要素が互いに識別可能となるように付与された番号等の情報である。本実施の形態では、「データ位置」132は、コンテンツの表示時に左上から数えた順序を示す。「内容」134は、表示対象要素自体を示す。例えば、「種類」が文字(TEXT)の表示対象要素において「内容」134は、文字コード、フォント、及び色等の情報を含む。種類が画像(IMAGE)の表示対象要素において「内容」134は、その画像の画素データ等を含む。座標値「X」124及び座標値「Y」126は表示対象要素の位置を示す。本実施の形態では、表示対象要素の位置は表示対象要素に外接する矩形領域の左上端部の位置を示す。幅「W」128及び高さ「H」130はそれぞれ、上記した矩形領域の幅及び高さを示す。なお本明細書では、「種類」122、「データ位置」132、並びに「内容」134をまとめて「(表示対象要素の)構成要素データ」と呼ぶ。また、座標値「X」124、座標値「Y」126、幅「W」128、及び高さ「H」130をまとめて、「(表示対象要素の)レイアウトデータ」と呼ぶ。
コンテンツは、予め定められた構造によりレイアウトされることがある。例えば、図1に示すコンテンツ40は、行を単位とする行構造によりレイアウトされている。このように行構造を有するコンテンツ40に対応するコンテンツデータ70は、表示対象要素データ120A,120B,120C,…に加えて、コンテンツ40のレイアウトの構造を示す、行単位のレイアウトデータ(以下、「行レイアウトデータ」と呼ぶ。)140を含む。図6に、行レイアウトデータ140の一例を示す。図6を参照して、行レイアウトデータ140は、行ごとの行要素データ142A,142B,142C,…を含む。これらはいずれも同様のデータ構造を有する。例えば行要素データ142Aは、行を構成する表示対象要素を示す表示対象要素配列152と、表示パネル66において行を構成する表示対象要素に外接する矩形領域の位置を示す座標値「X」144及び座標値「Y」146、並びに当該外接する矩形領域のサイズを示す幅「W」148及び高さ「H」150とを含む。
表示対象要素配列152は、行を構成する表示対象要素の図5に示す「データ位置」132を、行内での表示対象要素のレイアウト順に格納した配列である。例えば、行要素データ142Aが示す行は、「データ位置」が1番から5番までの表示対象要素により構成される。
以下、図3に示すメモデータ72について説明する。図7に、メモデータ72の一例を示す。図7を参照して、メモデータ72は、メモ要素ごとのメモ要素データ160A,160B,160C,…を含む。これらはいずれも同様のデータ構造を有する。例えばメモ要素データ160Aは、メモ要素の「種類」162と、メモ要素自体を示す「内容」172と、メモ要素の位置を示す座標値「X」164及び座標値「Y」166と、サイズを示す幅「W」168及び高さ「H」170とを含む。本明細書では、メモ要素の「種類」162及び「内容」172をまとめて「(メモ要素の)構成要素データ」と呼ぶ。また、座標値「X」164、座標値「Y」166、幅「W」168、及び高さ「H」170をまとめて、「(メモ要素の)レイアウトデータ」と呼ぶ。メモ要素データ160Aはさらに、当該メモ要素をコンテンツ40のどの表示対象要素に対応するように表示すべきかを示す関連付けデータ180を含む。
図8に、関連付けデータ180の一例を示す。図8を参照して、関連付けデータ180は、メモ要素と表示対象要素との相対的な位置関係を示す相対位置データ182と、表示対象要素の内、当該メモ要素と関連するものを示す関連表示対象要素リスト184とを含む。
相対位置データ182は、メモ要素に外接する矩形領域の左上、左下、右上、及び右下の各頂点に近接する表示対象要素をそれぞれ示す頂点要素データ186A,186B,186C,及び186Dを含む。これら頂点要素データはいずれも同じデータ構造を有する。例えば頂点要素データ186Aは、メモ要素に外接する矩形領域の左上頂点に近接する表示対象要素の「データ位置」190と、メモ要素に外接する矩形領域の左上端を原点とする局所座標系におけるその表示対象要素の位置を示す相対座標値「RX」192及び「RY」194と、その表示対象要素の幅「W」196及び高さ「H」198とを含む。相対座標値「RX」192及び「RY」194は局所座標系における表示対象要素の位置により決定される値であると同時に、表示対象要素の位置によってメモ要素に外接する矩形領域の頂点の位置を定義するものともなる。すなわち、これらの相対座標値は、表示対象要素に対するメモの外接矩形領域の相対位置を示すものとなる。
関連表示対象要素リスト184は、行ごとのエントリ200A,200B,…を含む。これらエントリはいずれも同じデータ構造を有する。例えばエントリ200Aは、関連表示対象要素リスト184において行を識別するための「行番号」202と、その行を構成する表示対象要素の「データ位置」を格納した表示対象要素配列204とを含む。表示対象要素配列204に格納される「データ位置」に対応する表示対象要素はそれぞれ、メモ要素に外接する矩形領域と重なる領域に表示される表示対象要素である。
図3に示す表示設定データ74は、表示パネル66のレイアウト可能範囲、コンテンツを構成する表示対象要素の文字サイズ等に関する設定情報を含む。これらの設定情報は、表示パネル66の性能等に基づき予め定められ記憶部60に記憶される。又は、ユーザによる指示にしたがい制御部80により更新され、記憶部60に記憶される。
以下、図3に示すデータ処理部64の各機能部の詳細な構成を示す。
図9に、図3に示す制御部80の構成を示す。図9を参照して、制御部80は、記憶部60、インタフェース部68、コンテンツレイアウト部82、記録部84、及びメモレイアウト部86の間でコンテンツデータ70の集配を行ない、各機能部に対しコンテンツデータ70の処理を要求するコンテンツデータ集配部220と、記憶部60、記録部84、及びメモレイアウト部86の間でメモデータ72の集配を行ない、各機能部に対しメモデータ72の処理を要求するメモデータ集配部222と、図3に示す操作部62に接続され、操作信号を受けてその操作内容を解析する操作信号解析部224と、操作信号解析部224による解析結果に応じて記憶部60内の表示設定データ74を更新してコンテンツレイアウト部82に与える表示設定処理部226と、操作信号解析部224による解析結果に応じてメモデータを生成し、メモデータを記録部84に与えるメモデータ編集部228と、メモデータ集配部222、操作信号解析部224、及びメモデータ編集部228による処理の状況に応じて、ユーザに対して操作を促すメッセージを生成して表示制御部88に与えるメッセージ生成部230とを含む。
メモデータ編集部228は、操作信号を、図7に示すメモデータ72の「内容」172に格納すべきデータに変換する。例えば、図4に示すポインティングデバイス100及び102によるユーザの入力に応じて、操作信号を指示点の位置及び軌跡を示すストロークデータに変換する。さらに、必要に応じて、ストロークデータを手書き文字認識してテキストデータに変換する。さらに、キーボード等から得られる文字、又は文字認識したテキストデータに対し仮名漢字変換を行ない、仮名漢字混じりのテキストデータに変換する。
図10に、図3に示すコンテンツレイアウト部82の構成を示す。図10を参照して、コンテンツレイアウト部82は、コンテンツデータ70及び表示設定データ74を取得し、コンテンツデータ70及び表示設定データ74に基づいてレイアウト可能範囲及びレイアウト範囲を特定するレイアウト範囲特定部242と、表示対象要素の表示パネル66上でのレイアウトを決定してコンテンツデータ70のレイアウトデータ124,…,128(図5参照)及び行レイアウトデータ140(図6参照)を更新し、図3に示す制御部80及び表示制御部88に出力するレイアウト決定部244とを含む。
図11に、図3に示す記録部84の構成を示す。図11を参照して、記録部84は、制御部80よりコンテンツデータ70の表示対象要素データ120A,…(図5参照)及びメモデータ72をもとに、メモに関連付けるべき表示対象要素を特定し関連表示対象要素リスト184(図8参照)を生成するメモ関連表示対象要素取得部260と、メモデータ72とメモ関連表示対象要素取得部260によりメモに関連付けられた表示対象要素の表示対象要素データ120A,…とをもとに、メモに対する表示対象要素の相対位置を算出し相対位置データ182(図8参照)を生成する相対位置算出部262と、生成された関連表示対象要素リスト184(図8参照)、及び相対位置データ182をもとに関連付けデータ180を生成し、メモデータ72に付与して記憶部60に記憶させる関連付けデータ記録部264とを含む。
図12に、図3に示すメモレイアウト部86の構成を示す。図12を参照して、メモレイアウト部86は、記憶部60、制御部80、及びコンテンツレイアウト部82に接続され、コンテンツデータ70及びメモデータ72を取得する取得部280と、取得部280により取得されたコンテンツデータ70及びメモデータ72を受け、メモデータ72の関連付けデータ180(図8参照)に示されるメモと表示対象要素との関係にしたがってメモを表示することが可能か否かを判定し、メモの加工方法を決定する判定部282とを含む。
メモレイアウト部86はさらに、判定部282による決定にしたがい、取得部280が取得したコンテンツデータ70及びメモデータ72をもとに、メモ要素が分割された状態で表示されるよう分割メモを作成し、メモデータ72を変更する分割メモ作成部284と、判定部282による決定にしたがい、取得部280が取得したコンテンツデータ70及びメモデータ72をもとに、メモ44が複製された状態で表示されるよう複製メモを作成しメモデータ72を変更する複製メモ作成部286とを含む。
メモレイアウト部86はさらに、判定部282、分割メモ作成部284、及び複製メモ作成部286の少なくとも1つからメモデータを受け、取得部280により取得されたコンテンツデータ70に基づいてメモ44の表示パネル66における表示位置を算出してメモデータを更新するメモ表示位置算出部288と、メモ表示位置算出部288が更新したメモデータを受け、取得部280により取得されたコンテンツデータ70に基づいてメモの表示パネル66における表示サイズを算出しメモデータ72を更新し、図3に示す制御部80及び表示制御部88に出力するメモ表示サイズ算出部290とを含む。
本実施の形態は、コンピュータハードウェアと、そのコンピュータハードウェアにより実行されるプログラムと、コンピュータハードウェアに格納されるデータとにより実現される。図13に、表示装置50の機能を実現するコンピュータハードウェアの構成を示す。
図13を参照して、コンピュータ300は、表示パネル66と、図4に示すタッチパネル100及び入力ペン102からなるポインティングデバイス301、キーボード302、マウス304からなる入力デバイス群306と、表示パネル66に接続され、内部にグラフィックメモリ308を有するグラフィックサブシステム310と、CPU(中央処理装置)312とを含む。コンピュータ300はさらに、グラフィックサブシステム310、入力デバイス群306の各デバイス、及びCPU312に接続されたバス316と、バス316に接続されたメモリデバイス318を含む。メモリデバイス318は、ブートアッププログラム等を記憶する読出専用メモリ(Read−Only Memory:ROM)320、並びにプログラム命令、システムプログラム、及び作業データ等を記憶するDRAM(Dynamic Random Accesss Memory)322、並びにフラッシュメモリ324を含む。コンピュータ300はさらに、バス316並びにネットワーク及び外部機器に接続される外部インタフェース326とを含む。
コンピュータ300は、外部インタフェース326を介して、CD−ROM(Compact Disc Read−Only Memory)ドライブ330、FD(Flexible Disc)ドライブ332、及びハードディスクドライブ(HDD)334等の外部記憶装置、プリンタ336、並びに外部端末装置338に接続される。なお、これらの外部機器は、バス316に直接に接続されてもよい。また、外部インタフェース326は、ローカルエリアネットワーク(LAN)への接続を提供するネットワークアダプタボードを含んでもよい。なお、入力デバイス群306を構成する各装置は、上記した外部機器と同様に、外部インタフェース326を介してバス316に接続されてもよい。
コンピュータ300に表示装置50の機能を実現させるためのコンピュータプログラムは、外部インタフェース326に接続された外部記憶装置330、332、又は334に記憶され、メモリデバイス318に転送される。又は、プログラムは図示しないネットワークを通じてコンピュータ300に送信されメモリデバイス318に記憶されてもよい。プログラムは、実行の際にDRAM322にロードされる。外部インタフェース326に接続された外部記憶装置330、332、334から、又はネットワークを介して、直接にDRAM322にプログラムをロードしてもよい。
このプログラムは、コンピュータ300に本実施の形態の表示装置50の機能を実現させる複数の命令を含む。これらの機能を実現させるのに必要な基本的機能のいくつかはコンピュータ上で動作するオペレーティングシステム(OS)又はサードパーティのプログラム、若しくはコンピュータにインストールされる各種ツールキットのモジュールにより提供される。したがって、このプログラムはこの実施の形態の表示装置50の機能を実現するのに必要な機能全てを必ずしも含まなくてよい。このプログラムは、命令のうち、所望の結果が得られるように制御されたやり方で適切な機能又は「ツール」を呼出すことにより、上記した表示装置50の動作を実行する命令のみを含んでいればよい。コンピュータの動作は周知であるので、ここでは繰返さない。
図14に、コンピュータを表示装置50として動作させるプログラムの制御構造をフローチャートで示す。図14を参照して、プログラム360が開始されると、ステップ(以下、単に「S」と表記する。)362においてコンテンツデータ70を取得する。S364では、表示設定データ74に基づきコンテンツ40のレイアウトを決定しコンテンツデータ70を更新するコンテンツレイアウト処理を行なう。コンテンツレイアウト処理の詳細については図15を参照しつつ後述する。続くS366では、S364で決定されたレイアウトにしたがいコンテンツ40を表示パネル66に表示させる。S368では、メモデータ72の存在の有無を判定する。メモデータ72が存在すればS370に進む。さもなければS376に進む。
S370では、記憶されているメモデータ72を取得する。S372では、取得したメモデータ72をもとに、メモ44のレイアウトを決定するメモレイアウト処理を行なう。メモレイアウト処理の詳細については図16を参照しつつ後述する。続くS374では、S372で決定されたレイアウトにしたがいメモ44を表示パネル66に表示させる。
S376では、コンテンツ40の表示設定を変更するか否かをユーザによる指示に基づき判定する。ユーザより変更する旨の指示を得たならばS378に進む。さもなければS380に進む。S378では、変更する旨の指示にしたがい表示設定データ74を更新し、S364に戻る。
S380では、メモ44の記録を行なうか否かを、ユーザによる指示に基づき判定する。ユーザよりメモ44を記録する指示を得たならばS382に進む。さもなければS384に進む。S382では、S380で得た指示にしたがいメモデータ72を編集し、関連付けデータ180を付与してメモデータ72を記録するメモ記録処理を行なう。メモ記録処理の詳細については図17を参照しつつ後述する。S384では、プログラム360を終了するか否かを、ユーザによる指示に基づき判定する。終了する旨の指示を得たならばプログラム360を終了する。さもなければS368に戻る。
図15に、図14に示すS364で実行されるコンテンツレイアウト処理の制御構造を示す。図15を参照して、コンテンツレイアウト処理400が開始されると、S402では、表示設定データ74を取得し、その中から表示パネル66のレイアウト可能範囲を特定する。S404では、コンテンツデータ70及び表示設定データ74に基づき、コンテンツ40のレイアウト範囲を特定する。S406では、特定したレイアウト範囲をもとに、表示パネル66上でのコンテンツ40のレイアウトを決定し、コンテンツデータ70中のレイアウトデータ124、126、128、及び130(図5参照)並びに行レイアウトデータ140(図6参照)を更新し、コンテンツレイアウト処理400を終了する。
図16に、図14に示すS372で実行されるメモレイアウト処理の制御構造を示す。図16を参照して、メモレイアウト処理420が開始されると、S422において、メモデータ72内の関連付けデータ180(図7参照)から相対位置データ182を取得する。S424では、関連付けデータ180の関連表示対象要素リスト184を取得し、メモ44に関連付けられた表示対象要素を特定する。S426では、関連表示対象要素リスト184(図8参照)に示すエントリ200A,200B,…の中から処理対象となるエントリ(以下、「処理対象行」と呼ぶ。)を1行目と定め、処理対象行の表示対象要素配列204に格納されている、各表示対象要素EN(N=1,2,…)の「データ位置」を取得し、S428に進む。
S428からS436までの一連のステップでは、関連表示対象要素リスト184と行レイアウトデータ140とを照合し、処理対象行及びその前行のエントリにおける表示対象要素配列204を構成する各表示対象要素のコンテンツ40の行構造上での位置関係に基づき、メモ44を分割又は複製するか否かの判定を、以下のようにして行なう。
S428では、処理対象行を構成する表示対象要素が、行構造上複数の行にわたってレイアウトされている状態にあるか否かを次のようにして判定する。すなわち、まず、処理対象行に含まれる表示対象要素ENのうち、先頭に位置する表示対象要素E1の「データ位置」と、コンテンツデータ70の行レイアウトデータ140(図6参照)において表示対象要素E1を含む行要素L1とを特定する。次に、表示対象要素ENのうち処理対象行の2番目以降に位置するものの「データ位置」が、行要素L1の表示対象要素配列152に格納されているか否かを判定する。表示対象要素ENのうち行要素L1に含まれていないものがあるならば、処理対象行に含まれる表示対象要素が複数行にわたってレイアウトされていることになるため、判定結果はYESとなる。処理は後述するS438に進み、分割メモを作成する処理を行なう。さもなければ、処理対象行に含まれる表示対象要素が全て同一の行にレイアウトされていることになるため、判定結果はNOとなり、処理はS430に進む。
S430では、処理対象行の表示対象要素と、その前行のエントリにおける表示対象要素配列204を構成する表示対象要素とが、コンテンツ40の行構造上、同一の行に位置するものであるか否かを次のようにして判定する。すなわち、まず、関連表示対象要素リスト184における処理対象行の前行のエントリを参照し、当該前行のエントリにおける表示対象要素配列204の最後に位置する表示対象要素EP1の「データ位置」を取得する。次に、行レイアウトデータ140(図6参照)から、表示対象要素配列に表示対象要素EP1を含む行要素LP1を特定する。さらに、処理対象行に含まれる表示対象要素ENのうち、当該処理対象行の最後に位置する表示対象要素ED1の「データ位置」が、行要素LP1の表示対象要素配列152に含まれているか否かを判定する。表示対象要素ED1の「データ位置」が行要素LP1の表示対象要素配列152に含まれているならば、行要素L1と行要素LP1とは同一の行要素であることになるため、判定結果はYESとなり、処理はS432に進む。さもなければ、行要素LP1と行要素L1とは別の行要素となるため判定結果はNOとなり、処理はS434に進む。ただし、処理対象の行が関連表示対象要素リスト184における1行目である場合は、判定結果をNOとし、処理はS434に進む。
S432では、行要素L1(=LP1)の表示対象要素配列152を走査し、処理対象行及び関連表示対象要素リスト184における処理対象の前行を構成する表示対象要素が、行要素L1内で連続する位置にあるか否かを判定する。例えば、表示対象要素EP1の次の要素として処理対象行の先頭にある表示対象要素E1が格納されているならば、現在のレイアウトにおいて、処理対象行を構成する表示対象要素E1と前行のエントリにおける表示対象要素配列204を構成する表示対象要素とが、行要素L1内で連続する位置にあることになる。さもなければ、表示対象要素EP1と表示対象要素E1との間に、メモに関連付けられていない表示対象要素が挟まっていることになる。処理対象行及び関連表示対象要素リスト184における処理対象の前行を構成する表示対象要素の全てが連続する位置にあるならば、判定結果はYESとなる。処理は後述するS440に進み、複製メモを作成する処理を行なう。処理対象行及び関連表示対象要素リスト184における処理対象の前行を構成する表示対象要素のいずれかの間に、メモに関連付けられていない表示対象要素が挟まっているならば、判定結果はNOとなる。処理は後述するS438に進み、分割メモを作成する処理を行なう。
処理がS430からS434に進んだ場合、処理対象行の表示対象要素を含む行要素L1と、処理対象行の前行のエントリにおける表示対象要素配列204を構成する表示対象要素を含む行要素LP1とが、上記のとおり別の行であることになる。S434では、行レイアウトデータ140を走査し、現在のコンテンツのレイアウトにおいて行要素L1と行要素LP1との間に、他の行要素が挟まった状態にあるか否かを判定する。他の行要素が挟まった状態にあれば判定結果はYESとなり、処理は後述するS440に進み複製メモを作成する処理を行なう。さもなければ、行要素L1と行要素LP1とは互いに隣接する行を示すものであることになり、処理はS436に進む。ただし、処理対象が関連表示対象要素リスト184における1行目である場合は、判定結果をNOとし、処理はS436に進む。
S436では、処理対象行を構成する表示対象要素と、関連表示対象要素リスト184における前行のエントリにおける表示対象要素配列204を構成する表示対象要素とが、行要素L1及び行要素LP1において、行を横断する方向(以下、この方向を「列方向」と呼ぶ。)に連続する位置にあるか否かを次のようにして判定する。すなわち、まず、処理対象行の先頭に位置する表示対象要素E1の「データ位置」が行要素L1の表示対象要素配列152の何番目に格納されているかを特定し、その位置を示すインデックス値を取得する。また、関連表示対象要素リスト184における前行のエントリの表示対象要素配列204において先頭に位置する表示対象要素EP0を特定し、表示対象要素EP0の行要素LP1の表示対象要素配列152におけるインデックス値を取得する。次に、表示対象要素E1のインデックス値と表示対象要素EP0のインデックス値とを照合し、両者が一致するか否かを判定する。インデックス値が一致するならば、表示対象要素E1と表示対象要素EP0とは列方向に連続する位置にあることになる。すなわち処理対象行を構成する表示対象要素と、関連表示対象要素リスト184における前行のエントリにおける表示対象要素配列204を構成する表示対象要素とが列方向に連続する位置にあることになる。そのため判定結果はYESとなり、処理は後述するS444に進む。さもなければ、表示対象要素E1と表示対象要素EP0とは列方向に不連続な位置にあることになる。すなわち処理対象行を構成する表示対象要素が関連表示対象要素リスト184における前行のエントリにおける表示対象要素配列204を構成する表示対象要素に対して、行方向にずれた位置にあることになる。そのため、判定結果はNOとなり、処理は後述するS440に進み、複製メモを作成する処理を行なう。ただし、処理対象が関連表示対象要素リスト184における1行目である場合は、判定結果をYESとし、処理はS444に進む。
処理が、上記したS428又はS432からS438に進むと、S438では、複数行に分散された各表示対象要素のレイアウトデータと、関連付けデータ180の相対位置データ182とに基づき、次のようにして、処理対象行の表示対象要素に関連付けるための分割メモ(図2参照)を作成する。すなわち、まず、行レイアウトデータ140(図6参照)と関連表示対象要素リスト184(図8参照)とを照合し、コンテンツがどの位置で改行されているかを特定し、メモの分割位置を設定する。また、処理対象行に対してメモを表示した場合のメモの外接矩形領域を特定し、設定した分割位置で、特定したメモの外接矩形領域を分割する。続いて、分割前のメモの外接矩形領域にあわせて表示したメモを仮定し、当該メモのうち分割後の外接矩形領域において表示されるべき部分からなるメモ要素を、分割後の外接矩形領域ごとに作成し、それぞれ分割メモのメモ要素とする。また、各分割メモの外接矩形領域の表示パネル66上での位置及びサイズを特定する。このようにして作成された分割メモのメモ要素及び各分割メモの位置及びサイズをもとに、各分割メモのメモ要素データ160A,…(図7参照)を作成する。さらに、特定された改行位置に基づき各分割メモの関連表示対象要素リスト184を作成する。処理はS442に進む。
処理が上記したS432、S434、又はS436からS440に進むと、S440では、処理対象の行においてメモと関連付けられた各表示対象要素のレイアウトデータと、関連付けデータ180の相対位置データ182とに基づき、処理対象行の表示対象要素に関連付けるための複製メモ(図2参照)を作成する。すなわち、まず、新たなメモ要素データを準備し、メモ要素データ160A,…(図7参照)と同一の「内容」172を格納する。このメモ要素データが、複製メモについてのメモ要素データとなる。続いて、処理対象の前行を構成する一群の表示対象要素、及び当該前行の表示対象要素と連続する位置にある処理対象行の表示対象要素を、複製メモの関連表示対象要素とし、関連表示対象要素リスト184を作成する。処理はS442に進む。
S442では、S438又はS440で新たに作成された、分割メモ又は複製メモのメモ要素データ160A,…について、新たに作成された関連表示対象要素リスト184に基づいて頂点関連要素を特定して新たな相対位置データ182を作成する。関連表示対象要素リスト184と合せて関連付けデータ180を作成し、分割メモ又は複製メモのメモ要素データ160A,…に付与する。処理はS444に進む。
上記したS428からS442までの処理により、1つの処理対象行についてのメモ44の処理が完了する。処理が、上記したS436又はS442からS444に進むと、S444では、関連表示対象要素リスト184に、処理対象行の次行分のエントリが存在するか否かを判定する。次の行のエントリが存在するならばS446に進む。さもなければS448に進む。S446では、関連表示対象要素リスト184における次の行を処理対象に定め、処理対象に含まれる各表示対象要素の「データ位置」を取得してS428に戻る。
S448では、コンテンツデータ70内の各表示対象要素のレイアウトデータと、メモデータ72に付与された関連付けデータ180の相対位置データ182とに基づいて、メモの外接矩形領域の各頂点座標を算出する。
S450では、S448で算出した頂点座標をもとに、メモ44のサイズを変更する必要があるか否かを判定する。サイズ変更が必要であるならば、S452に進む。さもなければ、メモレイアウト処理420を終了する。S452では、S448で算出した頂点座標をもとに、コンテンツのその時点でのレイアウトに対応するメモ要素の幅及び高さを算出してメモ44のサイズを変更し、コンテンツレイアウト処理420を終了する。
図17に、図14に示すS382において実行されるメモ記録処理の制御構造を示す。図17を参照して、メモ記録処理480が開始されると、S482において、ユーザによる編集の指示を受けて、その操作信号を文字、画像、又は手書きデータ等に変換し、メモデータ72(図7参照)を更新する。
S484では、コンテンツデータ70に基づきメモ44に関連する表示対象要素を次のようにして特定し、それらの表示対象要素についての「データ位置」及びレイアウトデータを取得する。すなわち、まず、メモデータ72(図7参照)のレイアウトデータ164,…,170をもとに、メモの外接矩形領域を特定する。続いて、コンテンツデータ70(図5参照)に示される各表示対象要素のレイアウトデータ124,…,130をもとに、各表示対象要素の外接矩形領域を特定し、その外接矩形領域がメモの外接矩形領域と重なる表示対象要素を選び、それらの「データ位置」132(図5参照)を取得する。
S486では、S484で取得した「データ位置」及び表示対象要素のレイアウトデータをもとに、メモ44に対する表示対象要素の相対位置を次のようにして算出する。すなわち、まず、メモの外接矩形領域の各頂点の位置を特定する。次に、S484で選ばれた表示対象要素のうちそれら各頂点から最も近い位置にあるものを選び、それぞれメモの頂点関連要素とする。さらに、メモの外接矩形領域の左上頂点を原点とする相対座標系を設定し、コンテンツデータ70により示される頂点関連要素の位置を取得し、相対座標系における座標値に変換することにより、相対位置を得る。
S488では、S484で取得した「データ位置」及びレイアウトデータと、S486で算出した相対位置とをもとに、メモ44の関連付けデータ180(図8参照)を作成する。S490では、S482で更新したメモデータ72にS488で作成された関連付けデータ180を付与して記録する。
表示装置50は以下のように動作する。表示装置50の動作には、コンテンツデータ70に基づいてコンテンツ40のレイアウトを決定し当該コンテンツ40を表示する動作と、メモ44をコンテンツ40に関連付けてメモデータ72として記録する動作と、メモデータ72に基づきメモ44を表示する動作とがある。また、表示装置50は、ユーザに操作を促すメッセージを作成して表示し、ユーザからの指示操作を受けて次に行なうべき動作を決定する。
まず、表示装置50がコンテンツを表示させる動作について説明する。図9を参照して、制御部80のコンテンツデータ集配部220は、図3に示す記憶部60から又はインタフェース部68を介して外部の記憶装置等から、コンテンツデータ70を取得し図3に示すコンテンツレイアウト部82に与える。
図10を参照して、コンテンツデータ70は、コンテンツレイアウト部82のレイアウト範囲特定部242及びレイアウト決定部244に与えられる。レイアウト範囲特定部242は、コンテンツデータ70が与えられたことに応答して、図3に示す記憶部60から表示設定データ74を取得する。レイアウト範囲特定部242は、表示設定データ74に基づいて表示パネル66におけるレイアウト可能範囲を特定する。レイアウト範囲特定部242は、特定したレイアウト可能範囲、並びに表示設定データ74により示される1行の文字数、余白、及び文字サイズ等をもとに、コンテンツ40のレイアウト範囲を特定する。レイアウト範囲特定部242は、コンテンツのレイアウト範囲をレイアウト決定部244に通知する。
レイアウト決定部244は、与えられたコンテンツデータ70(図5参照)とレイアウト範囲の通知とをもとに、レイアウト範囲内での各表示対象要素42A,42B,…のレイアウトすなわち表示対象要素の位置とサイズとを決定する。レイアウト決定部244は、決定したレイアウトに基づき表示対象要素のレイアウトデータ124、126、128、及び130(図5参照)、並びに行レイアウトデータ140(図6参照)を生成又は更新する。レイアウト決定部244は、更新されたコンテンツデータ70を、図3に示す制御部80及び表示制御部88に与える。
図3を参照して、表示制御部88は、コンテンツレイアウト部82より与えられたコンテンツデータ70を出力信号に変換して表示パネル66に出力する。表示パネル66は、表示制御部88からの出力信号を表示する。以上の動作により、コンテンツ40の各表示対象要素42A,42B,…が、決定されたレイアウトにしたがって表示パネル66上に表示される。
図18(A)に、表示パネル66によるコンテンツ40の表示例を示す。図18を参照して、表示パネル66におけるコンテンツのレイアウト可能範囲500内に、レイアウト範囲502が定められる。さらに、レイアウト範囲502内に表示対象要素42A,42B,…が、行構造にしたがいレイアウトされ、表示される。
図9を参照して、制御部80のコンテンツデータ集配部220は、コンテンツレイアウト部82からコンテンツデータ70が与えられたことに応答して、当該コンテンツデータ70を記憶部60、記録部84、及びメモレイアウト部86(図3参照)に与え、処理が完了したことをメモデータ集配部222に通知する。記憶部60は、与えられたコンテンツデータ70を記憶する。記録部84及びメモレイアウト部86は、与えられたコンテンツデータ70を一時的に保持する。
以下に、メッセージを表示し、ユーザからの指示操作を受けて次に行なうべき動作を決定する動作を説明する。
上記したコンテンツデータ集配部220からの通知に応答して、メモデータ集配部222は、記憶部60からのメモデータ72の取得を試みる。メモデータ72の取得に成功した場合、メモデータ集配部222は、メモデータ72をメモレイアウト部86(図3参照)に与えてメモのレイアウトを決定し表示する動作を実行させ、その後にメッセージ生成部230に通知を与える。この動作については後述する。メモデータの取得に失敗した場合、メモデータ集配部222は、その時点でメッセージ生成部230に通知を与える。
メモデータ集配部222からの通知に応答して、メッセージ生成部230は、コンテンツ40の表示設定の変更指示をユーザに促すためのメッセージを表示制御部88(図3参照)に与える。表示制御部88は、与えられたメッセージを表示パネル66に表示させる。
ユーザが図3に示す操作部62を用いて、表示設定の変更を指示する操作を行なうと、操作部62はその操作に応じた操作信号を発する。図9に示す制御部80の操作信号解析部224は、発生した操作信号を解析し操作内容を特定する。操作内容が表示設定の変更を指示するものであることに応答して、操作信号解析部224は、その指示を表示設定処理部226に与え、表示設定の変更に伴う一連の動作を開始させる。表示設定の変更に伴う一連の動作については後述する。操作内容が表示設定の変更を行なわない旨の指示であることに応答して、操作信号解析部224は、メッセージ生成部230に通知を与える。
メッセージ生成部230は、操作信号解析部224からの通知に応答して、メモの作成又は更新をユーザに促すメッセージを表示制御部88(図3参照)に与える。表示制御部88は、コンテンツの表示に併せて、与えられたメッセージが表示されるよう出力信号を生成し、表示パネル66に表示させる。
ユーザが、表示されたメッセージに応じ、操作部62を用いてメモ44の入力操作を行なうと、操作部62は操作に応じた信号を発生する。制御部80の操作信号解析部224は、操作部62で発生した操作信号を解析し、操作内容を特定する。操作信号がメモ44の入力操作であると特定されたことに応答して、操作信号解析部224は操作信号をメモデータ編集部228に与え、メモ44を記録する動作を開始させる。メモ44を記録する動作については後述する。操作内容がメモ44の作成又は更新を行なわない旨の指示であることに応答して、操作信号解析部224は、メッセージ生成部230に通知を与える。メッセージ生成部230は、操作信号解析部224からの通知に応答して、表示装置50の一連の動作を終了するか否かの選択をユーザに促すメッセージを表示制御部88(図3参照)に与える。表示制御部88は、コンテンツの表示に併せて、与えられたメッセージが表示されるよう出力信号を生成し、表示パネル66に表示させる。
ユーザが、表示されたメッセージに応じ、操作部62を用いて操作を行なうと、操作部62は、操作に応じた信号を発生する。制御部80の操作信号解析部224は、操作部62で発生した操作信号を解析し、操作内容を特定する。操作信号が動作の終了を指示するものであると特定されたことに応答して、表示装置50は、一連の動作を終了する。さもなければ、操作信号解析部224は、メモデータ集配部222に処理の開始を要求し、一連の動作を継続する。
以下、表示装置50が、コンテンツ40の表示対象要素42A,42B,…に関連付けてメモ44を記録する動作について説明する。
例えば、図18(A)に示すコンテンツ40が表示パネル66に表示された後、ユーザが、メッセージに応じて、図18(B)に示すように、コンテンツ40中の「大事な箇所」が表示されている部分を囲む位置にメモ44の入力を行なったものとする。
図3を参照して、操作部62は、この入力操作に応じた信号を発生する。制御部80の操作信号解析部224(図9参照)が上記のとおり操作信号を解析し、その操作がメモ44の入力操作であると特定すると、操作信号解析部224は、当該操作信号をメモデータ編集部228に与える。
メモデータ編集部228は、与えられた操作信号からメモ44の図7に示す種類162を特定し、操作信号をメモ44の内容172に変換する。図18(B)に示す例では、与えられた操作信号からメモの種類162がストロークデータであることを特定し、さらに、操作信号から指示点の位置及び軌跡を同定することにより当該操作信号をストロークデータに変換する。メモデータ編集部228はさらに操作信号をもとに、図18(B)に示すメモ44の外接矩形領域510を特定し、その左上端の位置(X,Y)、並びに外接矩形領域の幅W及び高さHを求めて、メモ44のレイアウトデータ164,…,170(図7参照)を作成する。メモデータ編集部228は、メモ44の種類162、内容172とメモのレイアウトデータ164,…,170とを合せてメモデータ72を作成して記録部84に与える。ただし、この時点では、メモ要素と表示対象要素との関連付けは行われておらず、メモデータ72には適切な関連付けデータ180が付与されていない状態にある。
図11を参照して、記録部84のメモ関連表示対象要素取得部260には、コンテンツデータ70が既に与えられている。メモ関連表示対象要素取得部260は、制御部80からメモデータ72が与えられたことに応答して、メモデータ72(図7参照)のレイアウトデータ164,…,170をもとに、図18(B)に示すメモ44の外接矩形領域510を特定する。また、メモ関連表示対象要素取得部260は、コンテンツデータ70(図5参照)に示される各表示対象要素のレイアウトデータ124,…,130をもとに、各表示対象要素の外接矩形領域を特定する。メモ関連表示対象要素取得部260は、表示対象要素42A,42B,…のうち、その外接矩形領域がメモ44の外接矩形領域510と重なるものを選び、それらの「データ位置」132(図5参照)を取得する。図18(B)に示す例では、文字列「大事な箇所」を構成する表示対象要素が選ばれる。メモ関連表示対象要素取得部260は、選んだ各表示対象要素の「データ位置」を、行レイアウトデータ140(図6参照)に示される表示対象要素の行構造に基づき行ごとにまとめ、図8に示す関連表示対象要素リスト184を作成する。メモ関連表示対象要素取得部260は、作成した関連表示対象要素リスト184を相対位置算出部262と関連付けデータ記録部264とに与える。
相対位置算出部262は、与えられた関連表示対象要素リスト184(図8参照)をもとに、選ばれた表示対象要素の外接矩形領域510を特定する。図19に、メモ44と選ばれた表示対象要素との位置関係を概略的に示す。図19を参照して、上記のとおりメモ44の外接矩形領域510は、選ばれた表示対象要素520A,…,520Eの外接矩形領域522A,…,522Eの各々と重なっている。相対位置算出部262は、メモデータ72(図7参照)のレイアウトデータ164,…,170をもとに、メモ44の外接矩形領域510の各頂点524A,524B,524C,及び524Dの位置を特定する。相対位置算出部262は、メモ44の外接矩形領域510の各頂点524A,…,524Dから最も近い位置にある表示対象要素を選び、それぞれメモ44の頂点関連要素とする。例えば、外接矩形領域510の左上頂点524Aの頂点関連要素は、表示対象要素「大」520Aである。
次に相対位置算出部262は、メモ44の外接矩形領域510の左上端524Aを原点とする相対座標系526を設定し、頂点関連要素(例えば表示対象要素520A)の左上端528の位置「X」及び「Y」を、相対座標系526における座標値「RX」及び「RY」に変換する。相対位置算出部262は、各頂点関連要素のデータ位置、相対座標系における座標値「RX」及び「RY」、並びに各頂点関連要素の幅「W」及び高さ「H」をもとに、図8に示す相対位置データ182を作成する。相対位置算出部262は、作成した相対位置データ182を関連付けデータ記録部264に与える。
関連付けデータ記録部264は、与えられた関連表示対象要素リスト184と相対位置データ182とを合せて関連付けデータ180を作成し、メモデータ72(図7参照)に付与して、図3に示す記憶部60に格納する。
以上の動作により、メモ44はコンテンツ40の表示対象要素42A,42B,…に関連付けられ、メモデータ72として記憶部60に記憶される。
以下に、表示装置50がメモデータ72に基づきメモ44を表示する動作について説明する。
図3を参照して、記憶部60は、記録部84より与えられたメモデータ72を記憶するとともに、制御部80に対して出力する。図9に示す制御部80のメモデータ集配部222は、記憶部60からメモデータ72を取得すると、当該メモデータ72をメモレイアウト部86に与え、メモの表示を要求する。
図12を参照して、メモレイアウト部86の取得部280は、予めコンテンツデータ70をコンテンツレイアウト部82より受けている。取得部280はコンテンツデータ70とメモデータ72とを受けると、コンテンツデータ70の行レイアウトデータ140(図6参照)と、メモデータ72の関連付けデータ180(図8参照)とを判定部282に与える。判定部282は、関連付けデータ180の関連表示対象要素リスト184と、行レイアウトデータ140とを照合し、メモの分割又は複製が必要か否かを判定する。ここでは、分割及び複製が必要ないと判定されたものとする。この場合、判定部282は、コンテンツデータ70及びメモデータ72をメモ表示位置算出部288に与える。
メモ表示位置算出部288は、判定部282からコンテンツデータ70及びメモデータ72が与えられたことに応答して、図8に示す関連付けデータ180の相対位置データ182を参照し、メモ44の外接矩形領域の各頂点の表示パネル66上での位置を算出する。
例えば、図19に示すメモ44の外接矩形領域510の左上頂点524Aの表示パネル66上での位置は次のように算出される。ここに、頂点関連要素520Aについての頂点要素データ186A(図8参照)により示される頂点関連要素520Aの相対座標を(RX,RY)、幅をW、高さをHとし、コンテンツデータ70(図5参照)により示される、頂点関連要素520Aの左上頂点528の表示パネル66上での座標を(XA1,YA1)、幅をWA1、高さをHA1とする。メモ44の左上頂点524Aの表示パネル66上での座標を(XL,YL)とすると、XL=XA1−RX×(WA1/W)、YL=YA1−RY×(HA1/H)となる。メモ表示位置算出部288は、同様にしてメモ44の外接矩形領域の各頂点について、表示パネル66上での座標を算出する。
メモ表示位置算出部288は、メモデータ72により示されるメモ44の位置「X」164及び「Y」166(図7参照)の値を、算出したメモの左上端の位置「XL」及び「YL」に更新する。メモ表示位置算出部288は、メモデータ72と算出した各頂点の表示パネル66上での座標とをメモ表示サイズ算出部290に与える。
メモ表示サイズ算出部290は、メモ表示位置算出部288より与えられた、外接矩形領域510(図19参照)の頂点524A,…,524Dの座標を用いて、現在のコンテンツ40のレイアウトに対応するメモ44の幅W’及び高さH’を算出する。メモ表示サイズ算出部290は、与えられたメモデータの幅「W」168及び高さ「H」170(図7参照)を、メモ表示サイズ算出部290により算出された、メモ44の幅W’及び高さH’に変更する。メモ表示サイズ算出部290は、処理後のメモデータ72を制御部80及び表示制御部88に与える。
図9に示す制御部80のメモデータ集配部222は、与えられたメモデータ72を図3に示す記録部84に与えるとともに、当該メモデータ72を記憶部60に格納し、メッセージ生成部230に通知を与える。図3に示す表示制御部88は、与えられたメモデータ72のレイアウトデータにより示される位置及びサイズで、メモの構成要素データにより示されるメモの要素が表示されるよう、出力信号を生成し、表示パネル66に表示させる。
以上の動作により、図18(B)に示すように、ユーザにより入力されたメモとコンテンツ40との位置関係と同じ位置関係で、コンテンツ40とメモ44とが表示パネル66上に表示される。
以下に、表示装置50が、表示設定の変更に伴い、コンテンツ40の表示を変更する動作について説明する。
上記のとおり、ユーザがメッセージに応じて表示設定の変更を指示する操作を行なうと、図3に示す操作部62がその操作に応じた信号を発生する。図9に示す制御部80の操作信号解析部224は操作内容を解析し、操作信号が表示設定の変更指示であると特定されると、当該表示設定の変更指示を表示設定処理部226に与える。
表示設定処理部226は、表示設定の変更指示に応答して、図3に示す記憶部60から表示設定データ74を取得し、与えられた指示にしたがい表示設定データ74を変更する。表示設定処理部226は、変更した表示設定データ74を記憶部60に記憶させるとともに、図3に示すコンテンツレイアウト部82に与える。
図10を参照して、コンテンツレイアウト部82のレイアウト範囲特定部242は、制御部80から表示設定データ74を受けると、図9に示す制御部80のコンテンツデータ集配部220にコンテンツデータ70を要求する。この要求に応答して、コンテンツデータ集配部220は、記憶部60からコンテンツデータ70を取得し、コンテンツレイアウト部82に与える。図10を参照して、レイアウト範囲特定部242及びレイアウト決定部244は、上記した動作と同様の動作で新たな表示設定データ74に基づきコンテンツ40のレイアウト範囲及びレイアウトを決定し、コンテンツデータ70の行レイアウトデータ140(図6参照)及び各表示対象要素のレイアウトデータ124,…,130(図5参照)を更新する。更新されたコンテンツデータ70は、図3に示す制御部80及び表示制御部88に与えられる。
制御部80のコンテンツデータ集配部220(図9参照)は、与えられたコンテンツデータ70を記憶部60、記録部84、及びメモレイアウト部86に与え、メモデータ集配部222に通知を与える。表示制御部88は、与えられたコンテンツデータ70を出力信号に変換し、表示パネル66に表示させる。
以上の動作により、コンテンツ40の表示は、表示設定の変更に応じたものとなるが、この時点では、メモ44は、コンテンツ40の表示態様の変更に追従していないので、図3に示す制御部80及びメモレイアウト部86は、以下の動作によりメモ44のレイアウトを変更する。
図9を参照して、制御部80のコンテンツデータ集配部220からの通知に応答して、メモデータ集配部222は、記憶部60からのメモデータ72の取得を試みる。この試みが成功すると、メモデータ集配部222は取得しメモレイアウト部86に与えてメモのレイアウト決定及び表示を要求する。
図12を参照して、メモレイアウト部86の取得部280は、新たにメモデータ72を受けると、コンテンツデータ70及びメモデータ72を判定部282に与える。判定部282は、コンテンツデータ70の行レイアウトデータ140とメモデータの関連表示対象要素リスト184とを照合し、関連表示対象要素リスト184(図8参照)に示すエントリ200A,200B,…ごとに、以下のようにして、メモ44の分割及び複製の要否を判定する。
判定部282は判定に先立ち、関連表示対象要素リスト184(図8参照)のエントリ200A,200B,…のうち1行目に対応するものを処理対象行に定め、処理対象行の表示対象要素配列204を取得しておく。
判定部282は、処理対象行に含まれる表示対象要素が、現時点のコンテンツのレイアウトにおいて複数の行にわたってレイアウトされている状態にあるか否かを判別する。複数の行にわたってレイアウトされているならば、処理対象行に含まれる表示対象要素の外接矩形領域は、改行位置で分離された状態にある。この場合、判定部282は、処理対象行に含まれる表示対象要素に関連付けてメモを表示するには、メモの分割を行ない分割メモ(図2参照)を作成する必要があると判定する。判定部282は、分割メモ作成部284に対して処理対象行についての分割メモの作成を要求し、当該処理対象行を、分割及び複製の要否の判定対象から除外する。複数の行にわたってレイアウトされていなければ、当該処理対象行については、分割メモを作成する必要はない。ただし、関連表示対象要素リスト184における次の行のエントリに含まれる表示対象要素との位置関係により、分割又は複製の処理が必要となる場合がある。そのため、当該処理対象行についての判定を保留しておく。
判定部282は、関連表示対象要素リスト184(図8参照)のエントリ200A,200B,…のうち次の行に対応するものを、新たな処理対象行に定め、処理対象行の表示対象要素配列204を取得する。判定部282は、新たな処理対象行についても同様に、処理対象行に含まれる表示対象要素が、複数の行にわたってレイアウトされている状態にあるか否かを判別して、分割メモの作成の要否を判定する。分割が必要であるという判定結果を得た場合、判定部282は、上記した同様の動作で当該処理対象行についての分割メモの作成を要求し、処理対象行を、分割及び複製の要否の判定対象から除外する。この判定により、分割メモの作成が必要ないと判定された場合、判定部282は、前行分のエントリについての判定が保留されたままになっているかを確認する。保留されていなければ、当該処理対象行についての判定を保留しておく。
前行分のエントリについての判定が保留されたままになっている場合、判定部282は、前行分のエントリに含まれる表示対象要素と、処理対象行に含まれる表示対象要素との関係に基づき、以下のようにして、メモ44の分割及び複製の要否を判定する。
判定部282は、処理対象行の表示対象要素と、その前行のエントリに含まれる表示対象要素とが、コンテンツ40の現在のレイアウトにおいて、同一の行に位置するものであるか否かを判定する。両者の表示対象要素が同一の行に位置する場合、保留されている前行分の表示対象要素及び処理対象行以降のエントリに含まれる表示対象要素すなわち未判定の表示対象要素が表示パネル66上で占める領域は、次に示すいずれかの状態になる。すなわち、前行分のエントリに含まれる表示対象要素の占める領域が、処理対象行以降のエントリに含まれる表示対象要素の占める領域から分離した状態になるか、又は突出した状態になるかのいずれかである。このいずれの状態においても、1つのメモ要素をサイズ変更するだけでは、メモと各表示対象要素との相対的な位置関係を維持することができない。よってこの場合判定部282は、分割メモ又は複製メモ(図2参照)の作成が必要であると判定する。判定部282はさらに、分割メモを作成するか、複製メモを作成するかを次のように決定する。
すなわち、判定部282は、処理対象行に含まれる表示対象要素と前行分のエントリに含まれる表示対象要素とが同一行内で連続する位置にあるかを判定する。両者が連続する位置にあるとの判定結果を得ると、判定部282は、複製メモを作成することでメモとコンテンツとの対応関係を維持することを決定する。この場合、判定部282は、複製メモ作成部286に対し、前行分のエントリを含む、判定を保留していた各エントリに含まれる表示対象要素についての複製メモの作成を要求し、当該各エントリを分割及び複製の要否の判定対象から除外する。両者が連続する位置にないとの判定結果を得ると、判定部282は、分割メモを作成することでメモとコンテンツとの対応関係を維持することを決定する。この場合、判定部282は、分割メモ作成部284に対し、処理対象行及びその前行分のエントリに含まれる表示対象要素についての分割メモの作成を要求し、当該処理対象行及びその前行分のエントリを分割及び複製の要否の判定対象から除外する。判定部282は、この決定の後、さらに次の行に対応するものを、新たな処理対象行に定め、処理対象行の表示対象要素配列204を取得する。
前行分のエントリについての判定が保留されたままになっており、かつ、処理対象行の表示対象要素と前行分のエントリに含まれる表示対象要素とが、コンテンツ40の現在のレイアウトにおいて互いに別の行にあるとの判定結果を得た場合、判定部282は次に、列方向すなわち行を横断する方向での、両者の連続性を判別する。すなわち判定部282はまず、コンテンツ40の現時点でのレイアウトにおいて、処理対象行が位置する行と前行分の表示対象要素が位置する行との間に、さらに別の行が挟まった状態にあるか否かを判定する。両者の間に別の行が挟まった状態にある場合、前行分の表示対象要素及び処理対象行以降のエントリに含まれる表示対象要素すなわち未判定の表示対象要素が表示パネル66上で占める領域は、両者の間に挟まった行により分断された状態となる。この場合、判定部282は、複製メモを作成することでメモとコンテンツとの対応関係を維持することを決定する。そして複製メモ作成部286に対し、前行分のエントリを含む、判定を保留していた各エントリに含まれる表示対象要素についての複製メモの作成を要求し、当該各エントリを判定の対象から除外する。判定部282は、処理対象行についての判定を保留し、関連表示対象要素リスト184における次の行に対応するものを、新たな処理対象行に定める。
処理対象行が位置する行と前行分の表示対象要素が位置する行との間に、さらに別の行が挟まった状態にない場合、すなわち現在のコンテンツ40のレイアウトにおいて、両者が隣接する行に存在する場合、判定部282は、両者が行方向にずれているか否かを判別する。両者にずれがある場合、メモ要素のサイズ変更又は分割によっては、メモと各表示対象要素との相対的な位置関係を維持することができない。この場合、判定部282は、複製メモを作成することでメモとコンテンツとの対応関係を維持することを決定し、複製メモ作成部286に対し、前行分のエントリを含む、判定を保留していた各エントリに含まれる表示対象要素についての複製メモの作成を要求し、当該保留していたエントリを判定の対象から除外する。判定部282は、処理対象行についての判定を保留し、関連表示対象要素リスト184における次の行に対応するものを、新たな処理対象行に定める。
処理対象行が位置する行と前行分の表示対象要素が位置する行との間に別の行も行方向のずれもない状態にある場合、処理対象行の表示対象要素に関連付けられるメモ要素についてサイズ変更を行なうことで、前行分の表示対象要素とメモとの相対的な位置関係を維持することもできると判定される。この場合、判定部282は、前行分のエントリ及び処理対象行についての判定を保留し、関連表示対象要素リスト184における次の行に対応するものを新たな処理対象行に定める。
判定部282は、以上の判定及び加工の要求を、関連表示対象要素リスト184(図8参照)の各エントリについて行なう。全てのエントリについて以上の判定及び加工の要求を行なった状態で、判定が保留されているエントリがあれば、1つのメモ要素を変形することによって、メモとこれらのエントリに含まれる各表示対象要素との相対関係は維持できることになる。判定部282は、メモデータ72の関連表示対象要素リスト184を、これら判定が保留されたエントリからなるリストに変更し、当該変更したメモデータをメモ表示位置算出部288に与える。
以上の判定の結果に応じて、図12に示すメモレイアウト部86の各機能部は、メモ44のレイアウトを変更して、メモデータ72の更新を行なう。以下、メモ44のレイアウトを変更する動作を例示する。
まず、メモ44の表示位置及びサイズを変更する際の動作を以下に説明する。
図20に、コンテンツ40のレイアウト変更に応じてメモのサイズを変更する動作による、表示パネル66上でのコンテンツ40とメモ44の位置関係の変化を概略的に示す。図20(A)を参照して、表示パネル66に、コンテンツ40Aと、コンテンツ40A中の文字列「大事な箇所」を囲むメモ44とが表示されていたものとする。ここで、ユーザが表示を「拡大」するよう表示設定を変更し、その変更に伴い、コンテンツ40Aの表示が、図20(B)に示す表示40Bのように変化したものとする。図20(B)においては、メモ44に関連付けられるべき表示対象要素「大事な箇所」のサイズが拡大している。そのため、相対位置データ182(図8参照)に示される各頂点関連要素の位置も変化していることとなる。メモ44の表示位置及びサイズを変更せずに表示パネル上に表示すると、その表示は、図20(B)に示すメモ44のようになり、コンテンツとメモとの関連性が破綻してしまう。
そこでメモ表示位置算出部288は、メモの表示位置を決定する際に、まず、図8に示す相対位置データ182の「データ位置」190を参照し、頂点関連要素である文字「大」及び「所」を特定する。続いてコンテンツデータ70を参照し、現時点のレイアウトにおいて図20(C)に示すこれら頂点関連要素の外接矩形領域542A及び542Bの左上端544A及び544Bを特定する。メモ表示位置算出部288は、特定した左上端544A及び544B、並びに相対位置データ182により示される相対座標「RX」192及び「RY」194をもとに、上記した動作と同様の動作でメモの外接矩形領域の各頂点の座標を算出し、メモデータ72の座標値「X」164及び「Y」166(図7参照)を更新する。メモ44の外接矩形領域は、図20(C)に示す矩形領域546のようになる。
図12に示すメモ表示サイズ算出部290は、図20(C)に示す矩形領域546に合せてメモ44が表示されるよう、メモデータ72の幅「W」168及び高さ「H」170(図7参照)を変更する。メモ表示サイズ算出部290は、処理後のメモデータ72を制御部80及び表示制御部88に与える。表示制御部88による表示パネル66上での表示においては、図20(D)のように、表示対象要素のサイズに応じたサイズで、メモ550が表示されるようになり、コンテンツとメモとの位置関係が維持される。
図21に、メモ表示位置算出部288及びメモ表示サイズ算出部290によるメモの表示位置及びサイズの変更によるレイアウトの変化の、別の一例を示す。図21(A)を参照して、コンテンツ560Aは「とても大事な内容が記述されています。必ずチェックをお願いします。・・・・」という文字列であるものとする。表示パネル66上には、このコンテンツ560Aのレイアウトに対応して、メモ562Aがレイアウトされ表示されていたものとする。メモ562Aは、文字列「とても大事な内容が記述されています。」に関連付けられているものとする。
このようにレイアウトされたコンテンツ560Aに対して、ユーザがルビの表示を指示したものとする。その結果、その表示が、図21(B)に示すコンテンツ560Bのようになったとする。コンテンツ560Bのレイアウトでは、漢字にルビが振られているため、結果としてコンテンツの各行間に、図21(A)に示すコンテンツ560Aよりも大きな幅の行間が生まれている。
図12に示すメモ表示位置算出部288及びメモ表示サイズ算出部290は、メモの頂点関連要素をもとに、メモの表示位置及びサイズを決定する。そのため、メモ562Aは、図21(B)に示すメモ562Bのように変形し、コンテンツとメモとの相対位置関係が維持される。
以下に、図12に示す分割メモ作成部284が、判定部282からの要求にしたがい、メモ44をもとに分割メモを作成する動作について説明する。
図22に、コンテンツ40のレイアウトの変化に応じてメモを分割する処理による表示パネル66での表示の変化の一例を示す。図22(A)を参照して、表示パネル66に、コンテンツ580Aと、コンテンツ580A中の文字列「たいへん大事です。」を囲むメモ582とが表示されているものとする。ここで、ユーザによる指示にしたがい表示設定を変更した結果、コンテンツ180Aの表示が、図22(B)に示すコンテンツ580Bの表示のように変化したものとする。図22(B)においては、コンテンツ580Bは、「たいへ」と「ん大事です。」との間で改行されている。このような場合、図12に示す判定部282から分割メモ作成部284に、文字列「たいへん大事です。」に対応する分割メモの作成要求が与えられる。
図22(B)に示すコンテンツ580Bのレイアウトに対して、分割メモ作成部284はまず、行レイアウトデータ140(図6参照)と関連表示対象要素リスト184(図8参照)とを照合し、コンテンツがどの位置で改行されているかを特定する。次に分割メモ作成部284は、関連付けデータ180の相対位置データ182に基づき、メモ582の分割すべき位置を示す分割線を設定する。
図23に分割線の一例を示す。図23を参照して、分割線600は、コンテンツ580Bの改行位置、すなわちメモ582に関連付けられた表示対象要素「たいへん大事です。」中の「へ」と「ん」との間に設定される。分割メモ作成部284は、分割線600の位置をもとに、分割により新たに生成されるメモの外接矩形領域602及び604を設定し、新たな第1のメモ612及び第2のメモ614を作成する。分割メモ作成部284は、第1の矩形領域612及び第2の矩形領域614の表示パネル66上での位置及びサイズを特定する。図23に示す例では、分割により生成される第1の矩形領域602の幅はW1となり、第2の矩形領域604の幅はW2となる。分割メモ作成部284はさらに、分割前のメモ582の関連付けデータに基づき第1の矩形領域602及び第2の矩形領域604が関連する表示対象要素を特定する。分割メモ作成部284は、第1のメモ612及び614の関連付けデータを生成して、新たなメモデータを作成する。図23に示す例では、メモ612の関連付けデータにおいて関連する表示対象要素は「たいへ」となり、メモ614の関連付けデータおいて関連する表示対象要素は「ん大事です。」となる。
以上のようにして新たに作成したメモデータについて、コンテンツデータとの関連付けデータを作成する。分割メモ作成部284は、作成したメモデータ72と、コンテンツデータ70とをメモ表示位置算出部288に与える。メモ表示位置算出部288及びメモ表示サイズ算出部290は、上記した動作と同様の動作で、メモ612及びメモ614の表示位置及びサイズを決定して、メモデータ72を更新し、図3に示す表示制御部88及び制御部80に与える。表示制御部88は、与えられたメモデータ72を表示パネル66に出力する。
図22(C)に、更新されたメモデータ72に基づくメモ612及び614の表示の一例を示す。分割により新たに生成されたメモ612及び614はそれぞれ、関連付けられた表示対象要素に対応する位置に表示される。
以下に、複製メモ作成部286によるメモの複製の動作について説明する。図24に、メモの複製の動作に伴う表示パネル66上での表示の変化の概略を示す。図24(A)を参照して、表示パネル66上にコンテンツ620Aが表示され、その内の表示対象要素「40%」及び表示対象要素「20%」を囲むようなメモ622が記録されていたものとする。ここで、ユーザによる表示設定にしたがいコンテンツのレイアウトを変更した結果、コンテンツ620Aの表示が、図24(B)に示すコンテンツ620Bの表示のようになったものとする。図24(B)では、表示対象要素「20%」と表示対象要素「40%」との間に、別の行が挟まった形でレイアウトされているため、表示対象要素「40%」624Aと表示対象要素「20%」624Bとが離れた位置にレイアウトされている。このような場合、図12に示す判定部282から複製メモ作成部284に、複製メモの作成要求が与えられる。
複製メモ作成部286はまず、表示対象要素「40%」624Aと表示対象要素「20%」624Bとにそれぞれ対応する、メモ622と同一のメモ要素からなるメモを準備する。複製メモ作成部286はさらに、準備したメモをそれぞれ、表示対象要素「40%」624Aと表示対象要素「20%」624Bとに関連付け、新たな関連付けデータを作成する。以上の動作により、メモ622に関するメモデータと同じメモ要素からなり関連表示対象要素リスト184(図8参照)に示す表示対象要素、及び相対位置データ182に示す頂点関連要素のみが異なる複数のメモデータが作成される。複製メモ作成部286は、このようにして作成したメモデータ、及びコンテンツデータ70を図12に示すメモ表示位置算出部288に与える。メモ表示位置算出部288及びメモ表示サイズ算出部290は、上記した動作と同様の動作で、新たなメモの表示位置及びサイズを計算して、メモデータ72を更新し、図3に示す表示制御部88及び制御部80に与える。表示制御部88は、与えられたメモデータ72を表示パネル66に出力する。
図24(C)に、複製メモ作成部286により作成されたメモデータに基づく、表示パネル66へのメモの表示例を示す。図24(C)を参照して、表示パネル66には、複製により新たに作成されたメモ626A及び626Bがそれぞれ、関連付けられるべき表示対象要素である「40%」及び「20%」に対応する位置に表示される。
なお、メモの分割又は複製を行なった場合、新たに作成されたメモ同士の関係が分かるように表示してもよい。図25に、図24(C)に示す複製メモ626A及び626Bの表示において、さらにメモ同士を関連付けた表示の一例を示す。図25に示す例では、表示パネル66に表示されている、複製により新たに作成されたメモ626A及び626Bを互いに関連付けるように破線640A及び640Bが表示される。
以上のようにして、本実施の形態に係る表示装置は、メモとコンテンツとを、コンテンツ中の表示対象要素、及びそれら表示対象要素とメモとの相対的な位置関係によって関連付けて記録する。メモを表示する際には、コンテンツを構成する表示対象要素のレイアウトに基づき、表示対象要素との相対的な位置関係が維持されるようにメモのレイアウトを決定して表示する。そのため、表示設定の変更等に伴いコンテンツのレイアウトが変更された後においても、メモと関連する位置に適切な大きさで表示されるようになる。
さらに、表示対象要素のレイアウトに応じて、メモを分割又は複製して表示するため、メモは、関連する表示対象要素に対して適切な位置に表示されることになる。
なお、上記した実施の形態では、メモの外接矩形領域の各頂点に近接する表示対象要素についてのみ、相対位置「RX」及び「RY」を算出して相対位置データを作成し、関連付けデータとしてメモデータに付与した。しかし、本発明は、このような実施の形態には限定されない。図26に関連付けデータの別の一例を示す。図26を参照して、この関連付けデータ700では、相対位置データ702A,702B,…は、関連表示対象要素リスト704に格納された全ての表示対象要素についての相対位置情報を含む。
上記した実施の形態では、操作部62は、図4に示すタッチパネル100及び入力ペン102からなるポインティングデバイス、並びにマウス、及びキーボードを含むものであった。しかし、本発明はこのような実施の形態には限定されない。例えば、ボタンにより構成された入力装置であってもよいし、マイクによる音声入力等を実現する入力装置を用いることも可能である。
上記した実施の形態では、表示パネル66は、液晶表示パネルを含むものであった。しかし、本発明はこのような実施の形態には限定されない。例えば、プラズマディスプレイパネル、エレクトロルミネッセント(EL)装置、及び陰極線管等の装置であってもよい。また、コンテンツ及びメモの出力媒体は、これらの装置に限らず、印刷用紙等の媒体であってもよい。
この場合、表示装置50は、コンテンツ及びメモの印刷物におけるレイアウトを決定して、そのレイアウトに基づいて印刷データを生成し、出力する。表示装置50の記憶部60が、外部のプリンタでの印刷出力に関する設定データを保持する。この設定データは、用紙サイズ及び解像度等の情報を含むものとなる。またこの場合、コンテンツレイアウト部82は、この設定データに基づきコンテンツの印刷物上でのレイアウトを決定する。メモレイアウト部86は、決定された印刷レイアウトに基づきメモのレイアウトを決定する。コンテンツとメモとは、決定されたレイアウトにしたがい表示制御部88により合成され、印刷データに変換されて、インタフェース部68(図3参照)を介して外部のプリンタに出力される。
上記した実施の形態においては,表示設定データ74は、予め記憶部60に記憶されユーザによる操作に基づき適宜更新されるものであった。しかし、本発明はこのような実施の形態には限定されない。例えば、表示設定データ74は、他の記憶媒体に記憶され、必要に応じて制御部80がインタフェース部68を介して取得するようにしてもよい。また、表示設定データ74により示されるレイアウト可能範囲は、予め準備され格納されているデータであってもよいし、動的にその設定値を得るようにしてもよい。例えば表示パネル66に表示されるウィンドウのサイズをレイアウト可能範囲とする場合、コンテンツ及びメモのレイアウトを決定する際に、制御部80が、ウィンドウサイズデータを参照するためのウィンドウサイズ取得API(Application Program Interface)を呼出すようにしてもよい。この場合、ウィンドウサイズ取得APIによりレイアウト可能範囲として、ウィンドウのサイズが算出される。制御部80は、算出されたウィンドウサイズのデータをコンテンツレイアウト部82等に与える。また例えば、コンテンツ及びメモを上記のようにプリンタによって印刷する場合には、制御部80がインタフェース部68を介してプリンタにアクセスして、用紙サイズの設定値を取得するようにしてもよい。
上記した実施の形態では、コンテンツ及びメモのレイアウトデータは、2次元の座標空間上での位置及びサイズを示すものであった。しかし、本発明はこのような実施の形態には限定されない。コンテンツの位置を示すデータと、それを実際的な又は仮想の空間上でレイアウトし表示するために必要なデータがあればよい。また、コンテンツデータは、図5及び図6に示す構成のものに限定するものではなく、一般的に知られているデータ構造等であって、表示を行なうために必要な情報を含むものであればよい。
今回開示された実施の形態は単に例示であって、本発明が上記した実施の形態のみに制限されるわけではない。本発明の範囲は、発明の詳細な説明の記載を参酌した上で、特許請求の範囲の各請求項によって示され、そこに記載された文言と均等の意味及び範囲内でのすべての変更を含む。
50 表示装置、60 記憶部、62 操作部、64 データ処理部、66 表示パネル、68 インタフェース部、70 コンテンツデータ、72 メモデータ、74 表示設定データ、80 制御部、82 コンテンツレイアウト部、84 記録部、86 メモレイアウト部、88 表示制御部、100 タッチパネル、102 入力ペン、120A〜120C 表示対象要素データ、140 行レイアウトデータ、160A〜160C メモ要素データ、180,700 関連付けデータ、182,702A,702B 相対位置データ、184,704 関連表示対象要素リスト、220 コンテンツデータ集配部、222 メモデータ集配部、224 操作信号解析部、226 表示設定処理部、228 メモデータ編集部、230 メッセージ生成部、242 レイアウト範囲特定部、244 レイアウト決定部、260 メモ関連表示対象要素取得部、262 相対位置算出部、264 関連付けデータ記録部、280 取得部、282 判定部、284 分割メモ作成部、286 複製メモ作成部、288 メモ表示位置算出部、290 メモ表示サイズ算出部、500 レイアウト可能範囲、502 レイアウト範囲