以下、実施の形態について図面を参照して説明する。
図1は、一実施形態に係る電子機器の外観を示す斜視図である。この電子機器は、例えば、ペン(スタイラス)または指によって手書き入力可能なペン・ベースの携帯型電子機器である。この電子機器は、タブレットコンピュータ、ノートブック型パーソナルコンピュータ、スマートフォン、PDA等として実現され得る。以下では、この電子機器がタブレットコンピュータ10として実現されている場合を想定する。タブレットコンピュータ10は、タブレットまたはスレートコンピュータとも称される携帯型電子機器である。タブレットコンピュータ10は、図1に示すように、本体11とタッチスクリーンディスプレイ17とを備える。本体11は、薄い箱形の筐体を有している。タッチスクリーンディスプレイ17は、本体11の上面に重ね合わさるように取り付けられている。
タッチスクリーンディスプレイ17には、フラットパネルディスプレイと、センサとが組み込まれている。センサは、フラットパネルディスプレイの画面とペンまたは指との接触位置を検出するように構成されている。フラットパネルディスプレイは、例えば、液晶表示装置(LCD)であってもよい。センサとしては、例えば、静電容量方式のタッチパネル、電磁誘導方式のデジタイザなどを使用することができる。以下では、限定されないが、タッチパネルがタッチスクリーンディスプレイ17に組み込まれている場合を想定する。
タッチパネルは、例えば、フラットパネルディスプレイの画面上に配置される。このタッチスクリーンディスプレイ17は、指を使用した画面に対するタッチ操作のみならず、ペン100を使用した画面に対するタッチ操作も検出することができる。ペン100の例は、アクティブペン、パッシブペン、等を含む。以下では、限定されないが、ペン100としてアクティブペンが使用される場合を想定する。
ユーザは、外部オブジェクト(ペン100又は指)を使用してタッチスクリーンディスプレイ17上で手書き入力操作を行うことができる。手書き入力操作中においては、画面上の外部オブジェクト(ペン100又は指)の動きの軌跡、つまり筆跡がリアルタイムに描画される。外部オブジェクトが画面に接触されている間の外部オブジェクトの動きの軌跡が1ストロークに相当する。手書きされた文字または図形などに対応する多数のストロークの集合が手書き文書を構成する。
本実施形態では、この手書き文書は、イメージデータではなく、各ストロークの軌跡の座標列とストローク間の順序関係とを示す時系列情報として記憶媒体に保存される。この時系列情報の詳細は図4を参照して後述するが、この時系列情報は、複数のストロークにそれぞれ対応する複数のストロークデータを含む。各ストロークデータは、ある一つのストロークに対応し、このストローク上の点それぞれに対応する座標データ系列(時系列座標)を含む。これらストロークデータの並びの順序は、ストロークそれぞれが手書きされた順序つまり筆順に相当する。
タブレットコンピュータ10は、記憶媒体から既存の任意の時系列情報(手書き文書情報)を読み出し、この手書き文書情報によって示される筆跡(複数のストローク)を画面上に表示することができる。さらに、タブレットコンピュータ10は編集機能を有している。この編集機能は、「消しゴム」ツール、「範囲選択」ツール、および他の各種ツール等によって、表示中の手書き文書内の任意のストロークまたは任意の手書き文字等を削除または移動することができる。さらに、この編集機能は、幾つかの手書き操作の履歴を取り消す機能も含んでいる。
さらに、タブレットコンピュータ10は、自動補完(ストローク推薦)機能も有している。この自動補完機能は、多くの文字列を手書きによって容易に入力できるようにするために、ユーザの手書き入力操作をアシストするための機能である。
図2は、タブレットコンピュータ10と外部装置との連携動作の例を示している。タブレットコンピュータ10は、パーソナルコンピュータ1やクラウドと連携することができる。すなわち、タブレットコンピュータ10は、無線LANなどの無線通信デバイスを備えており、パーソナルコンピュータ1との無線通信を実行することができる。さらに、タブレットコンピュータ10は、インターネット上のサーバ2との通信を実行することもできる。サーバ2はオンラインストレージサービス、他の各種クラウドコンピューティングサービスを実行するサーバであってもよい。
パーソナルコンピュータ1はハードディスクドライブ(HDD)のようなストレージデバイスを備えている。タブレットコンピュータ10は、時系列情報(手書き文書)をネットワーク越しにパーソナルコンピュータ1に送信して、パーソナルコンピュータ1のHDDに記録することができる(アップロード)。
これにより、タブレットコンピュータ10内のストレージの容量が少ない場合でも、タブレットコンピュータ10が多数の時系列情報(手書き文書)あるいは大容量の時系列情報(手書き文書)を扱うことが可能となる。
さらに、タブレットコンピュータ10は、パーソナルコンピュータ1のHDDに記録されている任意の1以上の手書き文書を読み出すことすができる(ダウンロード)。タブレットコンピュータ10は、この読み出した手書き文書によって示されるストロークそれぞれをタブレットコンピュータ10のタッチスクリーンディスプレイ17の画面に表示することができる。
さらに、タブレットコンピュータ10が通信する先はパーソナルコンピュータ1ではなく、上述したように、ストレージサービスなどを提供するクラウド上のサーバ2であってよい。タブレットコンピュータ10は、手書き文書をネットワーク越しにサーバ2に送信して、サーバ2のストレージデバイス2Aに記録することができる(アップロード)。さらに、タブレットコンピュータ10は、サーバ2のストレージデバイス2Aに記録されている任意の手書き文書を読み出すことができる(ダウンロード)。タブレットコンピュータ10は、この読み出した手書き文書によって示されるストロークそれぞれをタブレットコンピュータ10のタッチスクリーンディスプレイ17の画面に表示することができる。
このように、本実施形態では、手書き文書が格納される記憶媒体は、タブレットコンピュータ10内のストレージデバイス、パーソナルコンピュータ1内のストレージデバイス、サーバ2のストレージデバイスのいずれであってもよい。
次に、図3および図4を参照して、ユーザによって手書きされたストローク(文字、マーク、図形(線図)、表など)と手書き文書との関係について説明する。図3は、ペン100などを使用してタッチスクリーンディスプレイ17上に手書きされる手書き文字列の例を示している。
手書き文書では、一旦手書きされた文字や図形などの上に、さらに別の文字や図形などが手書きされるというケースが多い。図3においては、「ABC」の手書き文字列が「A」、「B」、「C」の順番で手書きされ、この後に、手書きの矢印が、手書き文字「A」のすぐ近くに手書きされた場合が想定されている。
手書き文字「A」は、ペン100などを使用して手書きされる2つのストローク(「∧」形状の軌跡、「−」形状の軌跡)によって表現される。最初に手書きされる「∧」形状のペン100の軌跡は例えば等時間間隔でリアルタイムにサンプリングされ、これによって「∧」形状のストロークの時系列座標SD11、SD12、…SD1nが得られる。同様に、次に手書きされる「−」形状のペン100の軌跡も等時間間隔でリアルタイムにサンプリングされ、これによって「−」形状のストロークの時系列座標SD21、SD22、…SD2nが得られる。
手書き文字「B」は、ペン100などを使用して手書きされた2つのストローク、つまり2つの軌跡によって表現される。手書き文字「C」は、ペン100などを使用して手書きされた1つのストローク、つまり1つの軌跡によって表現される。手書きの「矢印」は、ペン100などを使用して手書きされた手書きされた2つのストローク、つまり2つの軌跡によって表現される。
図4は、図3の手書き文字列に対応する時系列情報200を示している。時系列情報200は、複数のストロークデータSD1、SD2、…、SD7を含む。時系列情報200内においては、これらストロークデータSD1、SD2、…、SD7は、筆跡順に、つまり複数のストロークが手書きされた順に時系列に並べられている。
時系列情報200において、先頭の2つのストロークデータSD1、SD2は、手書き文字「A」の2つのストロークをそれぞれ示している。3番目と4番目のストロークデータSD3、SD4は、手書き文字「B」を構成する2つのストロークをそれぞれ示している。5番目のストロークデータSD5は、手書き文字「C」を構成する1つのストロークを示している。6番目と7番目のストロークデータSD6、SD7は、手書き「矢印」を構成する2つのストロークをそれぞれ示している。
各ストロークデータは、一つのストロークの軌跡上の複数の点それぞれに対応する複数の座標を含む。各ストロークデータにおいては、複数の座標はストロークが書かれた順に時系列に並べられている。例えば、手書き文字「A」に関しては、ストロークデータSD1は、手書き文字「A」の「∧」形状のストロークの軌跡上の点それぞれに対応する座標データ系列(時系列座標)、つまりn個の座標データSD11、SD12、…SD1nを含む。ストロークデータSD2は、手書き文字「A」の「−」形状のストロークの軌跡上の点それぞれに対応する座標データ系列、つまりn個の座標データSD21、SD22、…SD2nを含む。なお、座標データの数はストロークデータ毎に異なっていてもよい。
各座標データは、対応する軌跡内のある1点に対応するX座標およびY座標を示す。例えば、座標データSD11は、「∧」形状のストロークの始点のX座標(X11)およびY座標(Y11)を示す。SD1nは、「∧」形状のストロークの終点のX座標(X1n)およびY座標(Y1n)を示す。
さらに、各座標データは、その座標に対応する点が手書きされた時点に対応するタイムスタンプ情報Tを含んでいてもよい。手書きされた時点は、絶対時間(例えば、年月日時分秒)またはある時点を基準とした相対時間のいずれであってもよい。例えば、各ストロークデータに、ストロークが書き始められた絶対時間(例えば、年月日時分秒)をタイムスタンプ情報として付加し、さらに、ストロークデータ内の各座標データに、絶対時間との差分を示す相対時間をタイムスタンプ情報Tとして付加してもよい。
さらに、各座標データには、筆圧を示す情報(Z)を追加してもよい。
図5は、タブレットコンピュータ10のシステム構成を示す。
タブレットコンピュータ10は、図5に示されるように、CPU101、システムコントローラ102、主メモリ103、グラフィクスコントローラ104、BIOS−ROM105、不揮発性メモリ106、無線通信デバイス107、エンベデッドコントローラ(EC)108等を備える。
CPU101は、タブレットコンピュータ10内の各種モジュールの動作を制御するプロセッサである。プロセッサは処理回路を含む。CPU101は、ストレージデバイスである不揮発性メモリ106から主メモリ103にロードされる各種コンピュータプログラムを実行する。これらプログラムには、オペレーティングシステム(OS)201、および各種アプリケーションプログラムが含まれている。アプリケーションプログラムには、手書きノートアプリケーションプログラム202が含まれている。この手書きノートアプリケーションプログラム202は、メモをとることが可能なデジタルノートブックアプリケーションである。この手書きノートアプリケーションプログラム202は、上述の手書き文書を作成および表示する機能、手書き文書を編集する機能、および自動補完機能等を有している。
また、CPU101は、BIOS−ROM105に格納された基本入出力システム(BIOS)も実行する。BIOSは、ハードウェア制御のためのプログラムである。
システムコントローラ102は、CPU101のローカルバスと各種コンポーネントとの間を接続するデバイスである。システムコントローラ102には、主メモリ103をアクセス制御するメモリコントローラも内蔵されている。また、システムコントローラ102は、PCI EXPRESS規格のシリアルバスなどを介してグラフィクスコントローラ104との通信を実行する機能も有している。
グラフィクスコントローラ104は、タブレットコンピュータ10のディスプレイモニタとして使用されるLCD17Aを制御する表示コントローラである。表示コントローラは表示制御回路を含む。LCD17Aを含むタッチスクリーンディスプレイ17(タッチスクリーンディスプレイ17/LCD17Aの画面)は、長方形の形状を有している。
このグラフィクスコントローラ104によって生成される表示信号はLCD17Aに送られる。LCD17Aは、表示信号に基づいて画面イメージを表示する。このLCD17A上にはタッチパネル17Bが配置されている。
無線通信デバイス107は、無線LANまたは3G移動通信などの無線通信を実行するように構成されたデバイスである。EC108は、電力管理のためのエンベデッドコントローラを含むワンチップマイクロコンピュータである。EC108は、ユーザによるパワーボタンの操作に応じてタブレットコンピュータ10を電源オンまたは電源オフする機能を有している。
タブレットコンピュータ10は、入力デバイス109(マウス、キーボード等)と通信するため周辺インタフェースを備えていてもよい。
<手書きノートアプリケーションプログラム202の特徴>
以下、手書きノートアプリケーションプログラム202の幾つかの特徴について説明する。
<アプリケーションの基本的特徴>
手書きノートアプリケーションプログラム202は、編集中のページを周期的に自動的に保存する。手書きノートアプリケーションプログラム202が停止/終了される時、手書きノートアプリケーションプログラム202は、編集中のページを自動的に保存する。
手書きノートアプリケーションプログラム202は、複数の言語をサポートする。手書きノートアプリケーションプログラム202は、OSセッティング上でセットされた言語を使用する。
手書きノートアプリケーションプログラム202は、文字認識エンジンを含む。この文字認識エンジンは、日本語、英語、韓国語、ロシア語、中国語、他の様々な言語をサポートする。
手書きノートアプリケーションプログラム202は、画面回転機能を有している。手書きノートアプリケーションプログラム202は、ランドスケープページとポートレートページの2つのタイプのページをサポートする。ページは、手書きされたストロークを入力可能な領域である。ランドスケープページは、横向きのページであり、水平方向に長い境界を含む。つまり、ランドスケープページは、横方向に長い矩形の領域である。この矩形の領域は、手書きされたストロークを入力可能な範囲である。
ポートレートページは縦向きのページであり、垂直方向に長い境界を含む。つまり、ポートレートページは、縦方向に長い矩形の領域である。この矩形の領域は、手書きされたストロークを入力可能な範囲である。
手書きノートアプリケーションプログラム202は、マルチユーサ環境をサポートする。ユーザ管理機能はOSに依存する。手書きノートアプリケーションプログラム202は、自身のユーザ管理機能を有していなくてもよい。この場合、ページデータ(ノートブックデータ)は、OSによって準備されるユーザローカルデータエリアに置かれる。このことは、ある一人のユーザのノートブックデータは他のユーザから独立していることを意味する。
手書きノートアプリケーションプログラム202は、マルチプル・ウィンドウ・レイアウトをサポートする。マルチプル・ウィンドウ・レイアウトにおいては、たとえば、画面の半分(たとえば左側)に手書きノートアプリケーションプログラム202のウィンドウが表示され、画面の残り半分(たとえば右側)に他のアプリケーションプログラムのウィンドウが表示されている。
手書きノートアプリケーションプログラム202は、現在のページ(編集中のページ)を印刷する機能を有する。アプリケーションバーまたはチャームからこの印刷機能が呼び出された場合、現在のページが1ページに印刷される。
手書きノートアプリケーションプログラム202は、キーボードによって操作されることができる。手書きノートアプリケーションプログラム202は、ページを閲覧または編集することが可能な編集画面上で行われる以下の基本的なショートカットキーをサポートする。
コピー: Ctrl+C
ペースト: Ctrl+V
切り取り: Ctrl+X
削除: Delete
取り消し: Ctrl+Z
やり直し: Ctrl+Y
移動: 矢印
手書きノートアプリケーションプログラム202は、マウスによって操作されることができる。
手書きノートアプリケーションプログラム202は、タッチまたはペンによって操作されることができる。用語「タッチ」は、指ジェスチャを意味する。
ここで、手書きノートアプリケーションプログラム202の入力ハードウェア環境について説明する。
手書きノートアプリケーションプログラム202は、以下のデバイスの少なくとも一つが動作することを必要とする。
ペンデバイス(たとえば、アクティブペン)
タッチパネル(またはデジタイザ)
マウス
キーボード
入力ハードウェア環境のタイプと手書きノートアプリケーションプログラム202の振る舞いとの関係は以下の通りである。
入力ハードウェア環境タイプ1: この入力ハードウェア環境は、ペンデバイスが存在し、タッチパネルが存在する製品に対応する。手書きノートアプリケーションプログラム202は、ペンによってストロークを描画することができる。手書きノートアプリケーションプログラム202は、タッチ入力モードにおいてはタッチまたはマウスによってストロークを描画することができる。タッチ入力モードは、指またはマウスによってストロークを描画するモードである。デフォルトの設定においては、タッチ入力モードはオフである。
入力ハードウェア環境タイプ2: この入力ハードウェア環境は、ペンデバイスが存在せず、タッチパネルが存在する製品に対応する。手書きノートアプリケーションプログラム202は、タッチ入力モードにおいてはタッチまたはマウスによってストロークを描画することができる。デフォルトの設定においては、タッチ入力モードはオンである。タッチ入力モードはオフに設定することができない。
入力ハードウェア環境タイプ3: この入力ハードウェア環境は、ペンデバイスが存在せず、タッチパネルが存在しない製品に対応する。手書きノートアプリケーションプログラム202は、タッチ入力モードにおいてはマウスによってストロークを描画することができる。デフォルトの設定においては、タッチ入力モードはオンである。タッチ入力モードはオフに設定することができない。
この他、例えば、ペン(例えばデジタイザペン)と、デジタイザと、タッチパネルを備える製品に対応する入力ハードウェア環境タイプを使用しても良い。この入力ハードウェア環境においては、手書きノートアプリケーションプログラム202は、ペンによってストロークを描画することができる。手書きノートアプリケーションプログラム202は、タッチ入力モードにおいてはタッチまたはマウスによってストロークを描画することができる。タッチ入力モードは、指またはマウスによってストロークを描画するモードである。デフォルトの設定においては、タッチ入力モードはオフである。
ペンのサイドボタンの設定について説明する。標準的なペン(たとえばアクティブペン)には消しゴムボタンおよびサイドボタンがある。ボタン・アクションはOSシステムによって定義される。手書きノートアプリケーションプログラム202は、下記のようにボタン振る舞いを割り当てる。
サイドボタン(右マウスクリックボタン): 描画に使用されるペンタイプの選択
消しゴムボタン: 消しゴム
2つのサイドボタンを有するペンもある。この場合、手書きノートアプリケーションプログラム202は、下記のようにボタン振る舞いを割り当てることができる。
上サイドボタン: 右マウス・クリックボタン
下サイドボタン: 消しゴムボタン
手書きノートアプリケーションプログラム202は、ペンボタン(サイドボタン、消しゴムボタン)をオンまたはオフに設定することができる。
UI(ユーザインタフェース)状態の保存について説明する。手書きノートアプリケーションプログラム202は、幾つかのUI状態を保存でき、そのUI状態を次回起動時に引き継ぐことができる。保存されるUI状態は以下の通りである。
ペン設定(色、幅、等)
消しゴム設定(大または小)
選択ツール設定(矩形枠または自由枠)
フルスクリーンモード/ノーマルモード
<ページ入力/編集機能>
次に、ページ入力/編集機能について説明する。
手書きノートアプリケーションプログラム202は、以下のペンタイプをサポートする。
万年筆
鉛筆
ポールペン
マーカー
サインペン(フェルトペン)
どのペンタイプも描画される線の透明度を設定することができる。幾つかのペンタイプについては、描画される線の幅が筆圧に応じて変更される。幾つかのペンタイプについては、描画される線の透明度が筆圧に応じて変更される。
たとえば、万年筆のペンタイプは、筆圧に敏感に反応する。万年筆に関しては、線の幅は筆圧に応じて変更され、また線の透明度も筆圧に応じて変更される。
鉛筆のペンタイプは、筆圧にゆっくりと反応する。鉛筆に関しては、線の幅は筆圧に応じてゆっくりと変更され、また線の透明度も筆圧に応じてゆっくりと変更される。
ポールペンのペンタイプは、筆圧に反応しない。
マーカーのペンタイプは、透明度についのみ筆圧にゆっくりと反応する。
フェルトペンのペンタイプは、幅についのみ筆圧にゆっくりと反応する。
手書きノートアプリケーションプログラム202は、アクティブペンによってストロークを手書き入力することができる。手書きノートアプリケーションプログラム202は、ストロークをストローク単位で消すことができる。消しゴムサイズは、大または小から選択することができる。消しゴムサイズの初期値は大であってもよい。
手書きノートアプリケーションプログラム202は、選択(範囲選択)ツールによってページ内のオブジェクト(ストローク、イメージ)を選択することができる。
手書きノートアプリケーションプログラム202は、コピー/カット/ペースト機能をサポートする。これらコピー/カット/ペースト機能はOSのクリップボード機能を使用する。手書きノートアプリケーションプログラム202は、以下の4種類のコピーを実行することができる。
「コピー」: 手書きノートアプリケーションプログラム202は、選択されたオブジェクトをストロークデータとしてクリップボードにコピー(格納)する。ストロークデータは、ストロークに対応する複数の点の座標を含む。ペースト対象アプリケーションは、この手書きノートアプリケーションプログラム202である。
「イメージとしてコピー」: 手書きノートアプリケーションプログラム202は、選択されたオブジェクトをイメージ(画像データ)としてクリップボードにコピー(格納)する。イメージはたとえばビットマップである。手書きノートアプリケーションプログラム202は、選択されたオブジェクトを画像データに変換し、この画像データをクリップボードにコピー(格納)する。ペースト対象アプリケーションは、画像を扱うアプリケーションである。
「オフィスデータとしてコピー」: 手書きノートアプリケーションプログラム202は、選択されたオブジェクトをフォーマットされたオブジェクトとしてクリップボードにコピー(格納)する。フォーマットされたオブジェクトは、他のアプリケーションプログラムが扱うことが可能なデータフォーマットを有するオブジェクトである。手書きノートアプリケーションプログラム202は、選択されたオブジェクトをフォーマットされたオブジェクトに変換し、このフォーマットされたオブジェクトをクリップボードにコピー(格納)する。ペースト対象アプリケーションは、プレゼンテーションアプリケーション、ワードプロセッシングアプリケーションである。選択されたオブジェクトをフォーマットされたオブジェクトに変換する処理は、文字認識、図形認識、表認識を使用して実行される。文字認識は、手書き文字列に対応するストロークを、認識されたテキストに変換する。図形認識は、手書きされた図形に対応するストロークをフォーマットされた図形オブジェクトに変換する。表認識は、手書きされた表に対応するストロークをフォーマットされた表オブジェクトに変換する。
「テキストとしてコピー」: 手書きノートアプリケーションプログラム202は、選択されたオブジェクトを認識されたテキストとしてクリップボードにコピー(格納)する。認識されたテキストは、手書き文字列に対応するストロークを文字認識することによって得られる。手書きノートアプリケーションプログラム202は、選択されたオブジェクトを文字認識によってテキストに変換し、このテキストをクリップボードにコピー(格納)する。ペースト対象アプリケーションは、テキストエディタアプリケーションである。
<自動補完機能>
手書きノートアプリケーションプログラム202は、自動補完機能を有する。自動補完機能は、ユーザによって手書き入力されたストローク(仮ストローク)から定められる入力の候補である1以上の筆跡(1以上の候補筆跡)をディスプレイに表示する。自動補完機能は、1以上の候補筆跡のいずれかがユーザによって選択される場合、仮ストロークの代わりに、この選択された候補筆跡を入力することする。
1. ユーザは自動補完モードをオンにする(ユーザインタフェース(UI)は自動補完モードをオンとオフとの間で切り替えることができる)。
2. ユーザはディスプレイ上でストローク(仮ストローク)を入力する。このストロークはディスプレイに表示される。
3. 手書きノートアプリケーションプログラム202は、1以上の候補筆跡を決定し、候補筆跡のリスト(候補筆跡メニュー)を作成する。各候補筆跡は、1以上のストロークを含むストローク列である。候補筆跡は、その先頭部分に、仮筆跡に類似する筆跡を含む筆跡であってもよい。
4. 手書きノートアプリケーションプログラム202は、候補筆跡のリスト(候補筆跡メニュー)をディスプレイ上に表示する。たとえば、ユーザによって文字「a」に対応する仮ストロークが入力された時、文字列「apple」に対応する筆跡、文字列「application」に対応する筆跡、文字列「aprobal」に対応する筆跡等を含む候補筆跡メニューがディスプレイに表示されてもよい。
5. ユーザが候補筆跡メニュー上のある1つの候補筆跡を選択した時、手書きノートアプリケーションプログラム202は、この候補筆跡を、仮ストロークに代えて、入力することとする。つまり、ユーザによって入力された仮ストロークは、この選択された候補筆跡を使用して補完される。この候補筆跡は確定(エンター)された筆跡となる。この候補筆跡のサイズ(高さ、文字間隔)は、例えば、仮ストロークよりも前に入力されたストロークのサイズに対応するサイズに自動的に調整されてもよい。
自動補完機能では、候補筆跡は、ユーザによって過去に入力された手書き情報から抽出される。このことは、ユーザが、ユーザが過去に入力した手書き情報を再利用できることを意味する。ユーザによって過去に入力された手書き情報から収集される筆跡の集合は、自動補完辞書データデータベースに格納されてもよい。手書きノートアプリケーションプログラム202は、ユーザの手書きノートブックから筆跡の集合を自動的に収集し、この筆跡の集合を自動補完辞書データデータベースに格納することができる。手書きノートアプリケーションプログラム202は、仮ストロークから定まる1以上の候補筆跡を自動補完データデータベースから取得することができる。ユーザは、自動補完データデータベース内の任意の候補筆跡を無効にすることもできる。無効にされた候補筆跡は、自動補完処理に使用されない。
自動補完機能では、手書きノートアプリケーションプログラム202は、ページ内の書き込み可能エリアの明るさを維持し、ページ内の他のエリアを暗くしてもよい(例えばグレーアウト)。たとえば、手書きノートアプリケーションプログラム202は、他のエリアの背景の色を暗い色に変更してもよい。これにより、書き込み可能エリアの表示形態と他のエリアの表示形態とが異なるので、ユーザは、ページ内の殿領域が書き込み可能エリアであるかを容易に理解することができる。
ページ内の書き込み可能エリアは、仮ストロークの表示領域を含み、且つ仮ストロークに対応する文字の入力方向に延びる長い帯状の領域である。たとえば、ページ上に仮ストロークに対応する文字が横書きされる場合、仮ストロークの表示領域から横方向に延びる書き込み可能エリアとなる。書き込み可能エリアは、選択された候補筆跡が仮ストロークに代えて入力されるエリアとして使用される。したがって、書き込み可能エリアと他のエリアとを異なる表示形態で表示することにより、選択された候補筆跡が入力されるべき位置をユーザに予め提示することができる。さらに、ページ内の他のエリア(暗いエリア)は、候補筆跡を選択せずに、仮ストロークをページにエンター(入力)すべきことを指示することが可能な広いボタンエリアとして機能する。ページ内の他のエリアがペンまたは指によってタップされた時、手書きノートアプリケーションプログラム202は、仮ストロークを入力することとする。つまり、仮ストロークは確定された(エンター)された筆跡となる。
候補筆跡メニューにおいては、たとえば、3つの候補筆跡が表示されてもよい。候補筆跡メニューは3つのボタンエリアを含み。3つの候補筆跡がこれら3つのボタンエリアにそれぞれ表示される。各ボタンエリアは、対応する候補筆跡を選択するために操作領域である。
ユーザがある候補筆跡に対応する操作領域(例えば、ある候補筆跡に対応するボタンエリア)をタップした時、この操作領域に対応する候補筆跡がページにエンター(入力)される。候補筆跡メニューは、さらに、確認(confirm)ボタン、モアショウボタンを表示してもよい。
ユーザが確認(confirm)ボタンをタップした時、手書きノートアプリケーションプログラム202は、仮筆跡をページにエンター(入力)する。ユーザがモアショウボタンをタップした時、手書きノートアプリケーションプログラム202は、候補筆跡メニューのサイズを拡大し、3つよりも多くの候補筆跡を候補筆跡メニュー上に表示する。
候補筆跡の表示位置について以下に説明する。
候補筆跡の表示位置、つまり候補筆跡メニューの表示位置は、ユーザが仮ストロークを手書き入力しながらユーザが操作し易い位置に置かれることが好ましい。これは、ユーザがペンまたは指を僅かに動かすだけで所望の候補筆跡を容易に選択できるようにするためである。手書きノートアプリケーションプログラム202は、左利きまたは右利きの設定を受け付けることができる。ユーザは、手書きノートアプリケーションプログラム202によって提供される設定ツールによって、左利きモードまたは右利きモードを選択することができる。
あるいは、OS201の設定ツールが、ユーザの操作に応じて、左利きモードまたは右利きモードを設定してもよい。
右利きモードに設定されている場合には、手書きノートアプリケーションプログラム202は、仮ストロークから定まる1以上の候補筆跡、つまり候補筆跡メニューを、仮ストロークの位置よりも左側に表示する。たとえば、最後に手書き入力された仮ストロークの終端または右端よりも左側に候補筆跡メニューを表示してもよい。この場合、候補筆跡メニューは、候補筆跡メニューの右端が最後に手書き入力された仮ストロークの終端または右端に揃う位置に表示されてもよい。候補筆跡メニューは、上述の書き込み可能エリアの上側または下側に表示されればよい。
左利きモードに設定されている場合には、手書きノートアプリケーションプログラム202は、仮ストロークから定まる1以上の候補筆跡、つまり候補筆跡メニューを、仮ストロークの位置よりも右側に表示する。たとえば、最後に手書き入力された仮ストロークの終端または左端よりも右側に候補筆跡メニューを表示してもよい。この場合、候補筆跡メニューは、候補筆跡メニューの左端が最後に手書き入力された仮ストロークの終端または左端に揃う位置に表示されてもよい。候補筆跡メニューは、上述の書き込み可能エリアの上側または下側に表示されればよい。
ある仮ストローク(第1仮ストローク)の入力の後に、次の仮ストローク(第2仮ストローク)が入力された場合、手書きノートアプリケーションプログラム202は、第1仮ストロークと第2仮ストロークとから定まる1以上の筆跡候補をディスプレイに表示する。この場合、もしこの1以上の筆跡候補に、第1仮ストロークから定まる1以上の筆跡候補(既に表示されている候補)と同じ候補が含まれる場合、手書きノートアプリケーションプログラム202は、この既に表示されている候補の表示位置を変更せず、且つこの既に表示されている候補の操作領域を、第2仮ストロークの表示位置に応じて拡大してよい。これにより、既に表示されている候補を再描画する必要がなくなり、しかも操作領域の拡大によって選択性が損なわれることもない。
つまり、手書きノートアプリケーションプログラム202は、既に表示されている候補筆跡メニューを横方向に伸ばす。候補筆跡メニューは、最後に手書き入力された仮筆跡の終端、つまり最後に手書き入力されたストロークの終端にこの候補筆跡メニューの右端が揃うように、横方向に伸びてもよい。この場合、候補筆跡メニューは、候補筆跡メニューの右端が最後に手書き入力されたストロークの終端よりもあるピクセル数分だけ左側に位置するように、横方向に伸ばされてもよい。これにより、候補筆跡メニューが画面から一時的に消え、候補筆跡メニューが画面上に再び現れるという現象の発生を招くことなく、候補筆跡メニュー内の各ボタンエリアのサイズを横方向に伸ばすことができる。たとえば、ユーザが筆跡を左から右に書いた時、候補筆跡メニューの右端は右方向に伸びる。これにより、ユーザはペンまたは指を僅かに移動するだけで所望の候補筆跡を選択することができる。
<検索機能>
手書きノートアプリケーションプログラム202は、筆跡(ストローク)検索またはテキスト検索によって所望の筆跡(手書き文字、手書き図形、手書き表、等)を含む所望のページを検索することができる。この機能は、認識技術に基づいている。
ユーザが筆跡(1以上のストローク)を検索キーとして手書き入力した時、所望のページを検索するために2つの方法が使用できる。一方は筆跡特徴(ストローク特徴)のパターンマッチングであり、他方は文字認識をベースとした文字マッチングである。手書きノートアプリケーションプログラム202は、入力された筆跡(1以上のストローク)に基づいて、使用すべきアルゴリズムをこれら2つの方法の間で自動的に変更する。たとえば、入力された筆跡(1以上のストローク)の文字列尤度が高い場合、つまり入力された筆跡が文字列である可能性が高い場合には、文字マッチングが使用される。一方、入力された筆跡(1以上のストローク)の文字列尤度が低い場合、つまり入力された筆跡が図形、表、マークである可能性が高い場合には、ストローク特徴のパターンマッチングが使用される。
ストローク特徴のパターンマッチングにおいては、検索キーとして入力された筆跡に類似する特徴を有する筆跡が探される。たとえば、検索キーとして入力された筆跡の形状に類似する形状を有する筆跡が探される。
文字認識をベースとした文字マッチングでは、検索キーとして入力された筆跡は、文字認識によってテキスト(文字列)に変換される。そして、このテキスト(文字列)と同じ文字列を含むページが探される。
次に、図6を参照して、手書きノートアプリケーションプログラム202の構成について説明する。
手書きノートアプリケーションプログラム202は、ペン軌跡表示処理部301、時系列情報生成部302、編集処理部303、ページ保存処理部304、ページ取得処理部305、手書き文書表示処理部306、および処理部308等を備える。
手書きノートアプリケーションプログラム202は、タッチスクリーンディスプレイ17を用いて入力されるストロークデータを使用することによって、手書き文書(手書きデータ)の作成、表示、編集等を行う。タッチスクリーンディスプレイ17は、「タッチ」、「移動(スライド)」、「リリース」等のイベントの発生を検出するように構成されている。「タッチ」は、画面上に外部オブジェクトが接触したことを示すイベントである。「移動(スライド)」は、画面上に外部オブジェクトが接触されている間に接触位置が移動されたことを示すイベントである。「リリース」は、画面から外部オブジェクトが離されたことを示すイベントである。
ペン軌跡表示処理部301および時系列情報生成部302は、タッチスクリーンディスプレイ17によって発生される「タッチ」または「移動(スライド)」のイベントを受信し、これによって手書き入力操作を検出する。「タッチ」イベントには、接触位置の座標が含まれている。「移動(スライド)」イベントにも、移動先の接触位置の座標が含まれている。したがって、ペン軌跡表示処理部301および時系列情報生成部302は、タッチスクリーンディスプレイ17から、接触位置の動きの軌跡に対応する座標列を受信することができる。
ペン軌跡表示処理部301は、手書きによって入力される筆跡(1以上のストローク)をタッチスクリーンディスプレイ17の画面上に表示するように構成された表示処理部として機能する。ペン軌跡表示処理部301は、タッチスクリーンディスプレイ17から座標列を受信する。そして、この座標列に基づいて、ペン軌跡表示処理部301は、ペン100等を使用した手書き入力操作によって入力される複数のストロークをタッチスクリーンディスプレイ17内のLCD17Aの画面上に表示する。ペン軌跡表示処理部301は、処理部308の制御の下、UIの表示に関する様々な表示制御を実行することができる。
時系列情報生成部302は、タッチスクリーンディスプレイ17から出力される上述の座標列を受信する。この座標列に基づいて、時系列情報生成部302は、上述の複数のストロークに対応する複数のストロークデータ(時系列情報)を生成する。これらストロークデータ、つまり各ストロークの各点に対応する座標および各ストロークのタイムスタンプ情報は作業メモリ401に一時保存してもよい。
ページ保存処理部304は、複数のストロークに対応する複数のストロークデータを含む手書き文書情報を記憶媒体402内の手書きノートデータベース402Aに保存する。記憶媒体402は、上述したように、タブレットコンピュータ10内のストレージデバイス、パーソナルコンピュータ1内のストレージデバイス、サーバ2のストレージデバイスのいずれであってもよい。
ページ取得処理部305は、記憶媒体402から任意の手書き文書情報を読み出す。読み出された手書き文書情報は手書き文書表示処理部306に送られる。手書き文書表示処理部306は、手書き文書情報を解析し、この解析結果に基づいて、手書き文書情報内の複数のストロークデータによって示される複数のストロークを画面上にページ(手書きページ)として表示する。
編集処理部303は現在表示中のページを編集するための処理を実行する。すなわち、編集処理部303は、タッチスクリーンディスプレイ17上でユーザによって行われる編集操作に応じて、表示されている複数のストローク内の1以上のストロークを削除または移動等するための編集処理を実行する。さらに、編集処理部303は、編集処理の結果を表示中の手書き文書に反映するためにこの手書き文書を更新する。
ユーザは、「消しゴム」ツール等を使用して、表示されている複数のストローク内の任意のストロークを削除することができる。また、ユーザは、画面上の任意の部分を矩形または自由枠によって囲むための「範囲選択」ツールを使用して、表示されている手書きページ内の任意の部分を選択することができる。
処理部308は、上述の自動補完、検索、コピー、インポート、エクスポート、等の様々な処理を実行することができる。処理部308は、例えば、自動補完処理部308A、ページスクロール処理部308B、等を含む。
自動補完処理部308Aは、上述の自動補完機能を実行するように構成された処理部である。自動補完モードにおいては、自動補完処理部308Aは、ディスプレイ上で入力される仮ストロークと手書き文書情報とに基づいて、ユーザが手書きしようとしている筆跡、つまりストローク列(手書き文字列)を、予測する。そして、自動補完処理部308Aは、仮ストロークから定められる1以上の候補筆跡をディスプレイ上に表示してユーザに提示する。
例えば、仮ストローク「a」が手書きによって入力された場合には、手書きの語「add」または「access」のような候補筆跡がユーザに提示されてもよい。もしユーザによって手書きの語「access」が選択されたならば、仮ストローク「a」は、この手書きの語「access」によって補完される。そして、この手書きの語「access」が、仮ストローク「a」の代わりにページにエンターされる。よって、ユーザは、手書きの語「access」の筆跡を容易に入力することが出来る。
どの候補筆跡も選択されずに、次の仮ストローク、たとえば「b」が入力された場合、自動補完処理部308Aは、今度は、2つの仮ストローク「ab」から定まる1以上の候補筆跡をディスプレイ上に表示してユーザに提示する。
手書き文書情報に格納される手書き文字列の言語はどのような言語であってもよい。利用可能な言語の例は、英語、日本語、および他の様々な言語を含む。英語の文字列に関しては、筆跡(手書き文字列)は、ブロック体の文字列に対応するストローク列であってもよいし、筆記体の文字列に対応するストローク列であってもよい。筆記体で手書きされた単語は1つのストロークから構成される場合がある。したがって、自動補完処理において手書き文書情報から取得される各筆跡(ストローク列)は、必ずしも複数のストロークを含んでいる必要は無く、一つのストロークであってもよい。
仮ストロークから定められる候補筆跡を容易に特定できるようにするために、自動補完処理部308Aは、手書きノートデータベース402Aに格納されているストロークの集合(手書き文書情報)から手書き文字列のような筆跡を自動収集し、これら自動収集された手書き文字列を自動補完辞書データベース402Bに格納しても良い。
この自動補完辞書データベース402Bにおいては、例えば、意味のある文字列単位(例えば単語単位で)で、筆跡(ストローク列)と、この筆跡に対応する単語(文字認識結果)とが格納されていても良い。さらに、自動補完辞書データベース402Bにおいては、単語と、筆跡(ストローク列)に加えて、その単語に対応する読みが格納されていても良い。単語が英語である場合には、その単語の読みの代わりに、その単語のエイリアスが自動補完辞書データベース402Bに格納されても良い。
自動補完処理部308Aは、まず、ユーザによって入力された仮ストロークを文字認識してもよい。そして、自動補完処理部308Aは、自動補完辞書データベース402Bを参照し、この仮ストロークの文字認識結果(文字列)に前方一致する単語を見つけ出す。自動補完処理部308Aは、見つけ出した単語に対応する筆跡(ストローク列)を、仮ストロークから定められる候補筆跡として自動補完辞書データベース402Bから取得する。
あるいは、自動補完辞書データベース402Bにおいては、例えば、単語単位で、筆跡(ストローク列)と、この筆跡に対応する特徴量とが格納されていても良い。ある筆跡の特徴量としては、この筆跡の手書き特徴を表すことができる任意の特徴を使用することができる。例えば、特徴量としては、ストロークの形状、ストロークの筆画方向、ストロークの傾斜、等を表す特徴量データを使用しても良い。この場合、自動補完処理部308Aは、仮筆跡の特徴量に類似する特徴量を有する候補筆跡を自動補完辞書データベース402Bから取得してもよい。
自動補完処理部308Aは、ユーザ辞書データベース402Cを使用することもできる。ユーザ辞書データベース402Cは、予め用意された多数の候補筆跡を格納する。これら候補筆跡は、多数の単語にそれぞれ対応する筆跡である。ユーザは、ユーザ辞書データベース402Cに新たな筆跡を登録することができる。さらに、ユーザは、ユーザ辞書データベース402Cから任意の筆跡を削除することもできる。
ページスクロール処理部308Bは、ページのタイプ(ランドスケープページ/ポートレートページ)に応じて、そのページに対するスクロール方法を制限する処理を実行する。すなわち、タッチスクリーンディスプレイ17の表示方向(つまり、画面イメージの向き)は、タブレットコンピュータ10の方向(向き)に応じて、互いに90度異なる少なくとも第1方向と第2方向に自動的に変更される。第1方向と第2方向の一方はランドスケープ向きに対応し、第1方向と第2方向の他方はポートレート向きに対応する。
手書きのストロークを入力可能な範囲である第1領域(ページ)が横方向に長い矩形である場合には、つまり、表示されているページがランドスケープページである場合には、タッチスクリーンディスプレイ17の表示方向が第1方向か第2方向かによらず、ページスクロール処理部308Bは、横方向のみに、第1領域をスクロール可能とする。一方、含む手書きのストロークを入力可能な範囲である第1領域が縦方向に長い矩形である場合には、つまり、表示されているページがポートレートページである場合には、ページスクロール処理部308Bは、タッチスクリーンディスプレイ17の表示方向が第1方向か第2方向かによらず、縦方向のみに、第1領域をスクロール可能とする。
次に、手書きノートアプリケーションプログラム202によって提供される幾つかのユーザインタフェースについて説明する。
手書きノートアプリケーションプログラム202の処理部308は、ランドスケープモードとポートレートモードとをサポートする。これらモードは、タブレットコンピュータ10の向きおよびOS設定によって自動的に選択される。この振る舞いは、処理部308内のUIモジュールによって管理される。
図7は、ランドスケープUI(編集画面)を示す。タブレットコンピュータ10が横向きで使用される時、処理部308は、図7に示されるランドスケープUI(編集画面)を表示する。ランドスケープUIは、4つのエリア、つまりノートブックリスト501、ページリスト502、編集ツールバー503、および編集ビューエリア504とを含む。これらエリア501〜504は、タブレットコンピュータ10の画面の左端から右端に向かって並んでいる。
ノートブックリスト501は手書きノートアプリケーションプログラム202によって管理されているノートブックのリストを示す。ノートブックリスト501の上端近傍の2つのアイコン「Add Note」、「All Pages」はコマンドアイコンである。「Add Note」アイコンがユーザよってタップされると、処理部308は、新たなノードブックを追加するための処理を実行する。「All Pages」アイコンがユーザよってタップされると、処理部308は、全てのノートブック内の全てのページに対応するサムネイルのリストを表示するための処理を実行する。
「Unclassified pages」アイコンは、ユーザのどのノートブックにも属さないページ群を含むノートブックを示すノートブックアイコンである。「Research」アイコンは、ユーザのノートブック(タイトル名「Research」)を示すノートブックアイコンである。「idess」アイコンは、ユーザのノートブック(タイトル名「idess」)を示すノートブックアイコンである。「presentation」アイコンは、ユーザのノートブック(タイトル名「presentation」)を示すノートブックアイコンである。「Minutes」アイコンは、ユーザのノートブック(タイトル名「Minutes」)を示すノートブックアイコンである。「ToDo」アイコンは、ユーザのノートブック(タイトル名「ToDo」)を示すノートブックアイコンである。
これらノートブックアイコンはドラッグ&ドロップ操作によって再配置することができる。
ノートブックリスト501においては、ノートブックリスト501がタッチ(指)またはペン100によって操作された時、パンインジケータPIがノートブックリスト501の例えば右端に表示される。パンインジケータPIは、ノートブックリスト501に表示可能なコンテンツ全体に対する、ノートブックリスト501に現在表示されている内容の相対的な位置を示す。パンインジケータPIがタッチ(指)またはペン100によって操作された時、ノートブックリスト501が縦方向にストロールされる。ノートブックリスト501上にマウスポインタが位置する場合には、パンインジケータPIの代わりに、ノートブックリスト501の例えば右端に表示される。ユーザは、マウスによってノートブックリスト501を縦方向にストロールすることができる。
ページリスト502は、現在選択されているノートブックアイコンに対応するノートブック内に含まれるページに対応するサムネイルのリストを示す。
ページリスト502内の最も上の「Add Page」アイコンは、コマンドアイコンである。「Add Page」アイコンがユーザよってタップされると、処理部308は、編集中のページに新たなページを追加するための処理を実行する。
「Add Page」アイコンの下側には、複数のページに対応するサムネイルをそれぞれ示す複数のページアイコンが配置されている。選択されたページアイコンに対応するページに含まれるストロークは、編集ビューエリア504に表示される。ユーザは、ページリスト502内の任意のページアイコンを選択することによって、任意のページを編集ビューエリア504に表示することができる。
これらページアイコンはドラッグ&ドロップ操作によって再配置することができる。ユーザは、ページアイコンをドラッグ&ドロップ操作することによってページ順序を変更(カスタマイズ)することができる。
ページリスト502においては、ノートブックリスト502がタッチ(指)またはペン100によって操作された時、パンインジケータPIがページリスト502の例えば右端に表示される。パンインジケータPIは、ページリスト502に表示可能なコンテンツ全体に対する、ページリスト502に現在表示されている内容の相対的な位置を示す。パンインジケータPIがタッチ(指)またはペン100によって操作された時、ページリスト502が縦方向にストロールされる。ページリスト502上にマウスポインタが位置する場合には、パンインジケータPIの代わりに、スクロールバーがページリスト502の例えば右端に表示される。ユーザは、マウスによってページリスト502を縦方向にストロールすることができる。
ページリスト502は、ノートブックアイコンによって選択されたノートブック内に含まれるページに対応するサムネイルのリストを示す。
編集ツールバー503は、ページを編集するための幾つかのボタンを含む。「選択ペン」ボタン511は、「範囲選択」ツールとして使用される。ユーザは、この「選択ペン」によって編集ビューエリア504上の1以上のオブジェクトを選択することができる。「選択ペン」ボタン511がユーザによってタップされた時、処理部308は、選択タイプ(矩形/自由枠/全選択)を変更するためのメニューを表示する。
「消しゴムペン」ボタン512は、「消しゴム」ツールとして使用される。ユーザは、この「計ゴムペン」によって編集ビューエリア504上の1以上のストロークを消すことができる。「消しゴムペン」ボタン512がユーザによってタップされた時、処理部308は、消しゴムサイズ(大/小/ページ全体)を変更するためのメニューを表示する。
「ストローク入力ペン」ボタン513は、ストロークを描画するために使用される。ユーザは、「ストローク入力ペン」によって筆跡(ストローク)を編集ビューエリア504に描画することができる。「ストローク入力ペン」ボタン513がユーザによってタップされた時、処理部308は、幾つかのプリセットペンを示すメニューを表示する。これらプリセットペンの各々は、例えば、ペンタイプ(万年筆/鉛筆/ボールペン/鉛筆/マーカー/フェルトペン)、幅、色、透明度の組み合わせを定義している。ユーザは、このメニューからペンを選択することができる。
「アンドゥ」ボタン514は、編集操作を取り消すために使用される。「リドゥ」ボタン515は、編集操作をやり直すために使用される。
「自動補完(推薦入力)」ボタン516は、自動補完モードをオンまたはオフするためのボタンである。
「カメラ」ボタン517は、写真を取り、この写真を編集ビューエリア504にインポートするために使用される。ユーザは、「カメラ」ボタンによって写真を撮ることができる。処理部308は、キャプチャアプリケーションプログラムを起動する。キャプチャアプリケーションプログラムは、タブレットコンピュータ10に設けられたカメラ(Webカム)によってイメージ(写真)をキャプチャする。処理部308は、キャプチャされたイメージをインポートする。
「タッチ入力モード」ボタン519は、指またはマウスによって描画可能なタッチ入力モードをオンまたはオフするためのボタンである。
「ヘルプ」ボタン519は、ヘルプを表示するためのボタンである。タブボタン521は、ノーマルモード/フルスクリーンモードを切り替えるためのボタンである。図7のUIはノーマルモードに対応している。
編集ビューエリア504は、手書き入力可能な手書き入力エリアである。
図8は、ポートレートUI(編集画面)を示す。処理部308は、タブレットコンピュータ10が縦向きで使用される時、図8に示されるポートレートUI(編集画面)を表示する。ポートレートUIにおいては、画面の上端から下に向かって、ノートブックリスト501、ページリスト502、編集ツールバー503、および編集ビューエリア504が配置されている。この図8は、ノーマルモードのポートレートUIに対応している。
図9は、フルスクリーンモードのランドスケープUIを示す。
フルスクリーンモードのランドスケープUIでは、ノートブックリスト501、ページリスト502は画面から隠され、編集ツールバー503が画面の左端に表示される。編集ビューエリア504は画面全体に拡大される。
編集ツールバー503には、ページアップボタン522とページダウンボタン523が置かれる。ユーザは、ページアップボタン522またはページダウンボタン523を操作することによって、編集ビューエリア504に表示されるページを他のページに切り替えることができる。
フルスクリーンモード状態はセーブされ、次回起動時に引き継がれる。
図10は、フルスクリーンモードのポートレートUIを示す。
フルスクリーンモードのポートレートUIでは、ノートブックリスト501、ページリスト502は画面から隠され、編集ツールバー503が画面の上端に表示される。編集ビューエリア504は画面全体に拡大される。
編集ツールバー503には、上述のページアップボタン522とページダウンボタン523が置かれる。
図11は、範囲選択処理を説明するための図である。
図11においては、編集ビューエリア504上のオブジェクト(手書き文字列)が選択ペンによって選択された場合が想定されている。選択されたエリアと選択されたエリア以外のエリアは互いに異なる表示形態で表示される。例えば、選択されたエリア以外のエリア、つまり選択されたエリアの外は、暗い色で表示しても良い。あるいは、選択されたエリアの外が、グレーになるように描画されても良い。
選択されたエリア上においては、幾つかのスケーリング制御アイコンが表示される。スケーリング制御アイコンは、選択されたエリアの各コーナおよび辺に置かれる。ユーザは、スケーリング制御アイコンは、選択されたエリアによって囲まれたオブジェクト(手書き文字列)を拡大または縮小するためのツールとして機能する。
選択されたエリアの例えば下側には、選択されたエリアによって囲まれたオブジェクトに適用可能な幾つかのアクションボタン530が表示される。ユーザは、アクションボタン530の一つタップすることによって、選択されたエリアによって囲まれたオブジェクトに対して「コピー」、「特定のデータ形式でコピー」、「特定のデータ形式で保存」、「検索」、「メールソフトにエクスポート」、「切り取り」、「削除」、「回転」等の処理を適用することができる。
図12は、ペン設定処理を説明するための図である。例えば、「ストローク入力ペン」ボタン513が長押しされた時、ペン設定パネル540が編集ビューエリア504上に表示される。ペン設定パネル540上の領域541は、ペンタイプ(ポールペン、鉛筆、マーカ、フェルトペン、万年筆)を変更するために使用される。ペン設定パネル540上の領域542は、カラーパレットからペンカラーを選択するために使用される。ペン設定パネル540上の領域543は、透明度を変更するために使用される。ペン設定パネル540上の領域544は、幅(線幅)を変更するために使用される。ペン設定パネル540上の領域545は、現在のペン設定を試すために使用される手書き入力エリアである。
図13は、検索画面上での自動補完を示している。ユーザによって「検索」機能が選択された時、図13に示されているように、検索キー入力ビュー550が画面上に表示される。検索キー入力エリア551にストローク(仮ストローク)が入力された時、自動補完機能によって幾つかの候補筆跡が候補筆跡エリア552に表示される。候補筆跡の一つがユーザによって選択された時、選択された候補筆跡が検索キー入力エリア551に表示される。
図14は、検索結果ビュー560の例を示す。全てのページの一覧(全てのページのサムネイルの一覧)が表示されているビュー上で検索が実行された時、検索結果ビュー560が表示される。ここでは、手書き文字列「TOSHI」が検索キーとして使用された場合が想定されている。手書き文字列「TOSHI」を含むページの各々においては、ヒットワードである手書き文字列「TOSHI」がハイライトされる。
図15は、左利き用のランドスケープUI(編集画面)を示す。
左利き用のランドスケープUI(編集画面)においては、ノートブックリスト501、ページリスト502、編集ツールバー503が配列される順序は、右利き用のランドスケープUI(図7)と逆の順序となる。つまり、左利き用のランドスケープUIにおいては、ノートブックリスト501、ページリスト502、編集ツールバー503は画面上の右側の領域に表示される。ノートブックリスト501、ページリスト502、編集ツールバー503、および編集ビューエリア504は、画面の右端から左端に向かって並べられる。
ノートブックリスト501においては、パンインジケータPI(又はスクロールバー)は、右利き用のランドスケープUIと同様に、ノートブックリスト501の右端に表示される。ページリスト502においても、パンインジケータPI(又はスクロールバー)は、右利き用のランドスケープUIと同様に、ページリスト502の右端に表示される。
手書きノートアプリケーションプログラム202が起動される時、手書きノートアプリケーションプログラム202は、左利きモード/右利きモードの設定状態をチェックし、ノートブックリスト501、ページリスト502、編集ツールバー503を画面上の左側の領域または右側の領域の何れかに設定する。
次に、自動補完モード(筆跡サジェストモード)における編集ビューエリアの表示形態の変移を説明する。上述したように、手書きノートアプリケーションプログラム202は、自動補完機能を有する。ユーザが「自動補完(推薦入力)」ボタン516をオンすると、自動補完モードがオンし、図16に示すようなユーザインタフェース(UI)が表示される。図16に示すランドスケープUI(編集画面)は、図15に示した編集画面と同様にノートブックリスト501、ページリスト502、編集ツールバー503、および編集ビューエリア504とを含む。図15の例とは異なり、これらエリア501〜504は、タブレットコンピュータ10の画面の左端から右端に向かって並んでいる。なお、これらエリア501〜504の配置向きはユーザの利き手により変化するが、図16〜図20は右利きのユーザの例を示す。図21は左利きのユーザの例を示す。
ページリスト502の「Add Page」アイコンの下側には、複数のページに対応するサムネイルをそれぞれ示す複数のページアイコンが配置されている。選択されたページアイコンに対応するページに含まれるストロークは、編集ビューエリア504に表示される。ユーザは、ページリスト502内の任意のページアイコンを選択することによって、任意のページを編集ビューエリア504に表示することができる。ページリスト502内のページアイコンは選択されたものは表示形態が他のページアイコンと異なる。ここでは、一番上のコンテンツが選択されていることを示している。そのため、編集ビューエリア504にはコンテンツが表示されているが、説明の便宜上、コンテンツの表示は省略する。あるいは、図示しない新規作成アイコンを選択することにより、既に作成したコンテンツではなく新たなコンテンツを新規に作成することも可能である。
編集ツールバー503の「自動補完(推薦入力)」ボタン516は、自動補完モードがオンであることを示すために、ON状態を示す表示状態に変更される。
ユーザは編集ビューエリア504内のディスプレイ上のコンテンツ内の所望の箇所にストローク(仮ストローク)を手書き入力する。入力された仮ストロークはディスプレイに表示される。仮ストロークが横書きで入力されると、入力の目安のための水平方向の帯状の書き込み可能エリア801が編集ビューエリア504に表示される。書き込み可能エリア801は残りの領域と異なる形態で表示される。例えば、書き込み可能エリア801の明るさを維持したまま、書き込み可能エリア801以外の領域を暗く表示してもよい。仮ストロークが縦書きで入力されると、書き込み可能エリア801は垂直方向に延びる帯状エリアである。この時点で、候補筆跡メニュー701が仮ストロークの表示位置の近傍に表示される。この候補筆跡メニュー701は、例えば、候補筆跡を表示可能な3つのエントリを含む。仮ストロークが書き始められた時点では、3つのエントリが空の候補筆跡メニュー701が、仮ストロークの表示位置の近傍に表示されてもよい。
書き込み可能エリア801の左右端には、それぞれ開始/終了位置を示すマーク、例えば一対の鉤括弧802、803が配置される。書き込み可能エリア801は行全体でもよいが、行の一部分だけでも良い。一対の鉤括弧802、803は書き込み可能エリア801の左右方向(行方向)の端部を示すとともに、上下方向(高さ方向)の端部も示す。書き込み可能エリア801の高さは初期値が決まっているが、例えば、下側の鍵括弧を下方向にドラッグすると、行の高さを大きくすることができる。行の高さを大きくすると、後述する候補筆跡を自動的にページにエンター(入力)する際の大きさ(文字の高さ)を大きくすることができる。
ユーザが書き込み可能エリア801に仮ストロークを手書き入力すると、手書きノートアプリケーションプログラム202は、1以上の候補筆跡を決定し、候補筆跡のリスト(候補筆跡メニュー)を作成する。ユーザによって文字「W」に対応する仮筆跡611と、文字「o」に対応する仮筆跡612が入力されたとすると、書き込み可能エリア801に文字列「Wo」に対応する仮ストローク列が表示され、仮ストローク列の左側に一定の間隔を空けて削除ボタン804が表示される。削除ボタン804を選択すると、直前に入力した1つのストロークが削除される。手書き入力した仮ストロークに隣接して削除ボタン804を表示したので、削除ボタン804を操作するために手をディスプレイから離す必要がなく、入力取り消しの操作性が向上する。
書き込み可能エリア801に文字列「Wo」に対応する仮ストローク列が表示されると、仮ストローク列の右端に対応する位置の上部に候補筆跡メニュー701が表示される。ここでは、「Wo」を含む3つの文字列「World」、「Work」、「Word」に対応する3つの候補筆跡を含む候補筆跡メニュー701が表示される。候補筆跡は自動補完辞書402Bから仮ストロークに類似するものを探すことにより求められる。各候補筆跡は、1以上のストロークを含むストローク列である。候補筆跡は、その先頭部分に、仮ストロークに類似する筆跡を含む筆跡であってもよい。候補筆跡メニュー701は3つのボタンエリアを含み。3つの候補筆跡がこれら3つのボタンエリアにそれぞれ表示される。
ユーザが候補筆跡メニュー701内のあるボタンエリアをタップした時、このタップされたボタンエリアに対応する候補筆跡がページにエンター(入力)される。つまり、ユーザによって入力された仮ストローク(1以上のストローク)は、この選択された候補筆跡を使用して補完される。この候補筆跡は確定(エンター)された筆跡となる。これにより、ユーザは全ての筆跡を手書き入力せずに、簡単に所望の筆跡を手書き入力することができる。ページにエンターされる候補筆跡のサイズは、書き込み可能エリア801の高さに応じて調整される。
候補筆跡メニュー701のサイズ(高さ、幅)は3つの候補筆跡が表示できるだけの高さ、幅となっている。候補筆跡メニュー701の初期状態での表示位置は右端が最後に入力された文字「o」に対応する仮ストローク612の位置であり、下端が書き込み可能エリア801に近い位置となるように設定される。候補筆跡メニュー701の左端は候補筆跡の文字数に応じて決まる。
候補筆跡メニュー701が書き込み可能エリア801の上側に隣接して表示されているので、候補筆跡をエンターするために、いずれかのボタンエリアをタップする際、ユーザはペン先を僅かに上方向にシフトするだけでよく、手をディスプレイから離す必要がなく、候補筆跡のエンターの操作性が向上する。また、候補筆跡メニュー701の右端が最後に手書きした文字「o」に対応する仮ストローク612の位置であるので、ペン先を僅かに上方向にシフトするだけボタンエリアの右端をタップすることができ、手をディスプレイから離す必要がなく、候補筆跡のエンターの操作性が向上する。
なお、候補筆跡は仮ストロークとの類似度に応じた優先度とともに求められ、ボタンエリアに表示される候補筆跡の優先度は、書き込み可能エリア801に近い順に高くなっている。図16の例では、「World」が最も優先度が高く、「Work」、「Word」の順に優先度が下がる。そのため、優先度の最も高く選択される可能性の高い候補筆跡は現在のペン位置(「o」に対応する仮ストローク)から最も近いので、タップするために手をディスプレイから離す必要がなく、候補筆跡のエンターの操作性が向上する。また、候補筆跡メニュー701の右端が最後に入力された文字「o」に対応する仮ストローク612の位置であることも、候補筆跡のエンターのタップの操作性向上に寄与する。
なお、自動補完モードがオンであるが、入力したい筆跡に対応する文字数が少ない場合等は、仮ストロークが入力したい筆跡そのものとなり、候補筆跡をエンターする必要が無い可能性がある。このような場合は、仮ストロークを確定する操作が必要になる。本実施形態では、編集ビューエリア504の書き込み可能エリア801以外のエリアをタップすることで、仮ストロークを確定する。書き込み可能エリア801以外のエリアをタップするためには、ペン先を僅かに上下に動かすだけでよく、仮ストロークの確定が容易に行なえる。さらに、書き込み可能エリア801とそれ以外のエリアの表示形態が異なっているので、タップするエリアを間違えることが無く、仮ストロークの確定が確実に行なえる。なお、仮ストロークの確定は候補筆跡メニュー701内の確認(confirm)ボタン702をタップしても実行できる。
候補筆跡メニューは、さらに、モアショウボタン703を表示してもよい。ユーザがモアショウボタン703をタップした時、手書きノートアプリケーションプログラム202は、候補筆跡メニューのサイズを拡大し、3つよりも多くの候補筆跡を候補筆跡メニュー701上に表示する(図18参照)。
候補筆跡メニュー701の中に所望の筆跡が含まれていない場合、ユーザは書き込み可能エリア801への仮ストロークの手書き入力を続け、候補筆跡メニュー701の筆跡候補が更新される。筆跡候補が更新されると、候補筆跡メニュー701も更新される。
図16の状態から、ユーザによって文字「r」に対応する仮ストローク613と、文字「l」に対応する仮ストローク614と、文字「d」に対応する仮ストローク615と、文字「s」に対応する仮ストローク616がさらに入力されると、「Worlds」を含む3つの文字列「World」、「Worldy」、「Worldwide」に対応する筆跡等を含む候補筆跡メニュー701が表示される。なお、更新前のメニューに含まれていた候補筆跡と同じ候補筆跡が更新メニューにも含まれている場合は、その候補筆跡の表示位置(ボタン)は、優先度に関わらず更新前と同じ位置とされてもよい。また、更新前のメニューに含まれていた候補筆跡と同じ候補筆跡と、含まれていない新規な候補筆跡とを異なる色で表示してもよい。例えば、同じ候補筆跡は黒、異なる候補筆跡は赤で表示してもよい。
候補筆跡メニュー701のボタンのタップの操作性を向上するために、図17に示すように、候補筆跡メニュー701の右端が仮ストロークの入力に伴い、右方向に伸ばされる。これにより、何れかのボタンをタップするために、手をディスプレイから離す必要がない。この例では、候補筆跡メニュー701の右端は最も右端の文字「s」に対応する仮ストローク616の位置よりも所定長さL1だけ手前の位置まで伸ばされる。何れかの筆跡候補、あるいは仮ストロークがエンターされるまで、この操作が続く。
なお、候補筆跡メニュー701の右端を常に横方向に伸ばすのではなく、伸ばす処理を実行するための条件を設けても良い。例えば、前回表示した候補筆跡メニュー701に含まれる候補筆跡と、手書き入力の追加により更新された候補筆跡メニューに含まれる候補筆跡との間で共通する候補筆跡が少なくとも1つあれば、この共通する候補筆跡の表示位置を変更せずに(例えば前回表示した候補筆跡メニュー701の位置を動かさずに)、このメニュー701の右端を伸ばす処理を実行し、共通する候補筆跡が全く無ければ、伸ばす処理を実行しないでもよい。
図18はユーザが手書き入力中に候補筆跡メニュー701内のモアショウボタン703をタップした時の候補筆跡メニュー701の表示形態を示す。この場合は図17の例よりもさらに横方向に伸びた領域の3×3の9個のボタンに候補筆跡が表示される。この場合のボタンの優先度は左端の列の下から上に1(最も高い)、2、3であり、中央の列の下から上に4、5、6であり、右端の列の下から上に7、8、9である。9個の候補筆跡の中にも所望の筆跡が無い場合、ユーザが仮ストロークの入力を続けると、図17のような3個の候補筆跡を表示する候補筆跡メニュー701の表示に戻る。
図19は候補筆跡メニュー701の表示位置に関する変形例を示す。上の説明では、候補筆跡メニュー701は書き込み可能エリア801の上側に表示したが、書き込み可能エリア801がページの上部の場合は、その上側に表示スペースを確保できない。書き込み可能エリア801の位置が判断され、例えば編集ビューエリア504を縦方向に3分割して、上から1/3のエリアに書き込み可能エリア801が位置する場合は、図16の候補筆跡メニュー701ではなく、候補筆跡メニュー701’が書き込み可能エリア801の下側に表示される。候補筆跡メニュー701’では、一番上(書き込み可能エリア810に近い)のボタンがモアショウボタン703であり、一番下のボタンが確認(confirm)ボタン702である。筆跡メニュー701では、候補筆跡の優先度は下から順に1、2、3となっていたが、メニュー701’で優先度が最も高く選択される可能性の高い候補筆跡を現在のペン位置から最も近くに表示させるように、モアショウボタン703の下に優先度がもっと高い候補筆跡が表示される。すなわち、筆跡メニュー701’では、候補筆跡の優先度は上から順に1、2、3となっている。
次に、図20を参照して、候補筆跡メニュー701の更新時の表示形態を説明する。ユーザによって文字「W」に対応する仮ストロークが入力された場合、例えば、3つの候補筆跡「World」、「Web」、「War」を含む候補筆跡メニュー701が表示される。優先度は、候補筆跡「World」が1位であり、「Web」が2位、「War」が3位である。このため、候補筆跡「World」は一番下に表示される。
文字「W」に対応する仮ストロークの入力の後に、ユーザによって文字「o」に対応する仮ストロークが入力された場合、これら2つの仮ストロークから筆跡候補が新たに定められる。今、3つの候補筆跡「Word」、「World」、「Worth」が、2つの仮ストロークに対応する筆跡候補として決定された場合を想定する。優先度は、候補筆跡「Word」が1位であり、「World」が2位、「Worth」が3位である。この場合、通常では、候補筆跡「World」は候補筆跡メニュー701内の下から2番目のエントリに表示される。しかし、候補筆跡「World」は前回から表示されている候補筆跡であるので、ユーザは、候補筆跡「World」が候補筆跡メニュー701内の一番下にあることを覚えている可能性がある。
このため、本実施形態では、前回と今回の共通の候補筆跡「World」の候補筆跡メニュー701内の表示位置を変更しない。この結果、候補筆跡「World」は、前回と同じ候補筆跡メニュー701内の表示位置、つまり1番下に表示される。他の候補筆跡「Word」、「Worth」はこれらの優先度の関係に従って並べられる。候補筆跡「Word」は下から2番目に表示され、候補筆跡「Worth」は最も上に表示される。
なお、ここでは、前回と今回の共通の候補筆跡「World」の前回の優先度が1位であったので、候補筆跡「World」を前回と同じ1番下に表示したが、もし候補筆跡「World」の前回の優先度が3位であったならば、候補筆跡「World」は前回と同じ最も上に表示される。
候補筆跡メニュー701の表示位置に関しては、図17と同様に、候補筆跡メニュー701の表示位置を変更せずに、候補筆跡メニュー701の右端を、文字「o」に対応する仮ストロークの位置に応じて横方向に拡大しても良い。
候補筆跡メニュー701に表示される候補筆跡は1つだけであって良い。この場合、前回と今回の共通の候補筆跡「World」の表示位置を変更せずに、候補筆跡「World」を選択するための操作領域(候補筆跡「World」に対応するエントリ)の右端だけを、文字「o」に対応する仮ストロークの位置の近傍にまで延ばせば良い。
図21は、左利きモードにおける候補筆跡メニュー701の表示位置の制御を示す。
左利きモードに設定されている場合には、手書きノートアプリケーションプログラム202は、入力された仮ストロークから定まる1以上の候補筆跡、つまり候補筆跡メニュー701を、図21に示すように、仮ストロークの位置よりも右側に表示する。
候補筆跡メニュー701の左端が最後に手書きした文字「o」に対応する仮ストローク612の位置であるので、ペン先を僅かに上方向にシフトするだけボタンエリアをタップすることができ、手をディスプレイから離す必要がなく、候補筆跡のエンターの操作性が向上する。
図22は、ユーザ辞書データベース402Cを編集するためのUIを示す。
ユーザ辞書編集ビュー900には、単語毎に、筆跡(ストローク列)と、読み(またはエイリアス)とが表示される。ユーザは、使用しない単語を選択し、この単語に対応する情報をユーザ辞書データベース402Cから削除することができる。さらに、ユーザは、任意の単語に対応する候補筆跡をユーザ辞書データベース402Cに登録することができる。
図23は、ランドスケープUIとランドスケープページおよびポートレートページとの関係を示す。
図23中、左上の画面は、ノーマルモードのランドスケープUIにランドスケープページP10が表示される一例である。左下の画面は、ノーマルモードのランドスケープUIにポートレートページP20が表示される一例である。右上の画面は、フルスクリーンモードのランドスケープUIにランドスケープページが表示される一例である。そして、右下の画面は、フルスクリーンモードのランドスケープUIにポートレートページが表示される一例である。
前述したように、ノーマルモードの例えば右利き用のランドスケープUIでは、ノートブックリスト501、ページリスト502、編集ツールバー503および編集ビューエリア504が、タブレットコンピュータ10の画面の左端から右端に向かって並んで表示される。一方、フルスクリーンモードの例えば右利き用のランドスケープUIでは、ノートブックリスト501とページリスト502は画面から隠され、編集ツールバー503のみが画面の左端に表示されて、編集ビューエリア504が画面全体に拡大される。
このように、ノーマルモードの場合、ノートブックリスト501とページリスト502が画面に表示される分、フルスクリーンモードの場合と比較して、編集ビューエリア504の大きさが制限される。そこで、処理部308は、ノーマルモードのランドスケープUIにランドスケープページを表示する場合、左上の画面例のように、ランドスケープページの一部を編集ビューエリア504に表示し、編集ビューエリア504に表示されるランドスケープページを横方向のみスクロール可能とする。また、処理部308は、ノーマルモードのランドスケープUIにポートレートページを表示する場合、左下の画面例のように、ポートレートページの一部を編集ビューエリア504に表示し、編集ビューエリア504に表示されるポートレートページを縦方向のみスクロール可能とする。
フルスクリーンモードの場合は、ノートブックリスト501とページリスト502は画面から隠されるので、ノーマルモードの場合とは異なり、編集ビューエリア504の大きさは制限されない。そこで、処理部308は、フルスクリーンモードのランドスケープUIにランドスケープページを表示する場合、右上の画面例のように、ランドスケープページの全体を編集ビューエリア504に表示する。なお、フルスクリーンモードのランドスケープUIにポートレートページを表示する場合には、処理部308は、右下の画面例のように、ポートレートページの一部を編集ビューエリア504の中央部に表示し、縦方向のみ、編集ビューエリア504に表示されるポートレートページをスクロール可能とする。
また、図24は、ポートレートUIとランドスケープページおよびポートレートページとの関係を示す。
図24中、左上の画面は、ノーマルモードのポートレートUIにランドスケープページページP10が表示される一例である。左下の画面は、ノーマルモードのポートレートUIにポートレートページP20が表示される一例である。右上の画面は、フルスクリーンモードのポートレートUIにランドスケープページP10が表示される一例である。そして、右下の画面は、フルスクリーンモードのポートレートUIにポートレートページP20が表示される一例である。
前述したように、ノーマルモードのポートレートUIでは、ノートブックリスト501、ページリスト502、編集ツールバー503および編集ビューエリア504が、タブレットコンピュータ10の画面の上端から下端に向かって並んで表示される。一方、フルスクリーンモードのポートレートUIでは、ノートブックリスト501とページリスト502は画面から隠され、編集ツールバー503のみが画面の上端に表示されて、編集ビューエリア504が画面全体に拡大される。
このように、ノーマルモードの場合、ノートブックリスト501とページリスト502が画面に表示される分、フルスクリーンモードの場合と比較して、編集ビューエリア504の大きさが制限される。そこで、処理部308は、ノーマルモードのポートレートUIにランドスケープページを表示する場合、左上の画面例のように、ランドスケープページの一部を編集ビューエリア504に表示し、横方向のみ、編集ビューエリア504に表示されるランドスケープページをスクロール可能とする。また、処理部308は、ノーマルモードのポートレートUIにポートレートページを表示する場合、左下の画面例のように、ポートレートページの一部を編集ビューエリア504に表示し、縦方向のみ、編集ビューエリア504に表示されるポートレートページをスクロール可能とする。
フルスクリーンモードの場合は、ノートブックリスト501とページリスト502は画面から隠されるので、ノーマルモードの場合とは異なり、編集ビューエリア504の大きさは制限されない。しかしながら、フルスクリーンモードのポートレートUIにランドスケープページを表示する場合には、処理部308は、右上の画面例のように、ランドスケープページの一部を編集ビューエリア504の中央部に表示し、横方向のみ、編集ビューエリア504に表示されるポートレートページをスクロール可能とする。なお、フルスクリーンモードのポートレートUIにポートレートページを表示する場合には、処理部308は、右下の画面例のように、ポートレートページの全体を編集ビューエリア504に表示する。
図25は、手書きノートアプリケーションプログラム202をCPU101が実行することによりタブレット10によって実行される自動補完処理の手順を示す例示的なフローチャートである。
自動補完モードがオンの場合(ブロックB11のYES)、手書きノートアプリケーションプログラム202の処理部308は、仮ストロークが入力された時に、その仮ストロークの入力位置および手書き方向を検出する(ブロックB12)。処理部308は、例えば、仮ストロークに対応する文字の入力方向に長い帯状の書き込み可能エリア801の明るさを維持しつつ、書き込み可能エリア801以外の他のエリアを暗くして(ブロックB13)、仮ストロークを書き込み可能エリア801に表示する(ブロックB14)。なお、仮ストロークが先に表示された後に、ブロックB13の処理が実行されても良い。
次に、処理部308は、図27に詳細な手順が示される推薦筆跡メニュー表示処理を実行する(ブロックB15)。
推薦筆跡メニュー表示処理において、処理部308は、仮ストロークから定められる幾つかの候補筆跡を含む候補筆跡メニューを、最後に入力された仮ストロークの終端(または右端)の位置よりも左側に表示する。処理部308は、仮ストロークがさらに手書き入力されたか否かを調べ(ブロックB16)、仮ストロークがさらに手書き入力された場合(ブロックB16のYES)、ブロックB14〜ブロックB15を再度実行する。なお、仮ストロークがさらに手書き入力された時の推薦筆跡メニュー表示処理(ブロックB15)では、処理部308は、候補筆跡の表示位置を変更せずに、候補筆跡メニューを横方向に延ばしてもよい。この場合、処理部308は、最初の仮ストロークから定められる候補筆跡群と、最初の仮ストロークおよび2番目の仮ストロークから定められる候補筆跡群とが、同じ候補筆跡を含むか否かを判定しても良い。そして、同じ候補筆跡が含まれていることを条件に、この同じ候補筆跡の表示位置を変更せずに、候補筆跡メニューを横方向に延ばす(拡大する)処理を実行してもよい。
さらなる仮ストロークが手書き入力されない場合(ブロックB16のNO)、処理部308は、候補筆跡が選択されたか否かを調べる(ブロックB17)。候補筆跡が選択された場合(ブロックB17のYES)、処理部308は、選択された候補筆跡のサイズを調整し(ブロックB18)、仮ストロークを選択された候補筆跡を使用して補完して、選択された候補筆跡を確定筆跡にする(ブロックB19)。ブロックB19では、仮ストロークの代わりに、選択された候補筆跡が入力される。
候補筆跡が選択されない場合(ブロックB17のNO)、処理部308は、書き込み可能エリア以外の他のエリアがタップされたか否か(ブロックB20)および確定(confirm)ボタンがタップされたか否か(ブロックB21)を調べる。書き込み可能エリア以外の他のエリアでのタップまたは確認ボタンのタップの一方が行われた場合(ブロックB20のYES,ブロックB21のYES)、処理部308は、仮筆跡を確定筆跡にする(ブロックB22)。書き込み可能エリア以外の他のエリアでのタップまたは確定ボタンのタップのいずれも行われない場合(ブロックB20のNO,ブロックB21のNO)、処理部308は、ブロックB16に戻って、仮ストロークがさらに手書き入力されたか否かを調べる。
図26は、手書きノートアプリケーションプログラム202をCPU101が実行することによりタブレット10によって実行される候補筆跡メニュー表示処理の手順を示す例示的なフローチャートである。
手書きノートアプリケーションプログラム202の処理部308は、まず、入力された仮ストロークに基づいて、幾つかの候補筆跡を決定し(ブロックB31)、これら候補筆跡が優先度順に並べられた候補筆跡メニューを作成する(ブロックB32)。また、処理部308は、これら候補筆跡の色を黒に設定し(ブロックB33)、候補筆跡メニューを表示する(ブロックB34)。
処理部308は、仮ストロークがさらに手書き入力されたか否かを調べ(ブロックB34)、仮ストロークがさらに手書き入力された場合(ブロックB34のYES)、最初に入力された仮ストロークと、さらに入力された仮ストロークとに基づいて、幾つかの新たな候補筆跡を決定し(ブロックB35)、幾つかの新たな候補筆跡の中に、前回と同じ候補筆跡があるか否かを調べる(ブロックB36)。
同じ候補筆跡がある場合(ブロックB36のYES)、処理部308は、前回と同じ候補筆跡が候補筆跡メニュー内の同じ表示場所に表示されるように候補筆跡メニューを作成する(ブロックB37)。処理部308は、前回と同じ候補筆跡の色を黒に設定し(ブロックB38)、前回と異なる候補筆跡の色を赤に設定して(ブロックB39)、候補筆跡メニューを表示する(ブロックB40)。
同じ候補筆跡がない場合(ブロックB36のNO)、処理部308は、候補筆跡が優先度順に並べられた候補筆跡メニューを作成する(ブロックB41)。処理部308は、これら候補筆跡の色を黒に設定し(ブロックB42)、候補筆跡メニューを表示する(ブロックB43)。
図27および図28は、手書きノートアプリケーションプログラム202をCPU101が実行することによりタブレット10によって実行されるページ表示処理の手順を示す例示的なフローチャートである。
手書きノートアプリケーションプログラム202の処理部308は、まず、画面の向きがランドスケープ向きまたはポートレート向きのいずれであるのかを調べる(ブロックB51)。図27には、画面の向きがランドスケープ向きである場合の手順が示され、図28には、画面の向きがポートレート向きである場合の手順が示されている。まず、図27を参照して、画面の向きがランドスケープ向きである場合の手順について説明する。
ランドスケープ向きである場合、処理部308は、ノーマルモードまたはフルスクリーンモードのいずれであるのかを調べる(ブロックB52)。ノーマルモードの場合、処理部308は、ページタイプがランドスケープページまたはポートレートページのいずれであるのかを調べる(ブロックB53)。
ランドスケープページの場合、処理部308は、ランドスケープノーマルUIを表示し(ブロックB54)、編集ビューエリアにランドスケープページの一部を表示して(ブロックB55)、横スクロールジェスチャが行われた場合(ブロックB56のYES)、ランドスケープページを横方向にスクロールする(ブロックB57)。ポートレートページの場合、処理部308は、ランドスケープノーマルUIを表示し(ブロックB58)、編集ビューエリアにポートレートページの一部を表示して(ブロックB59)、縦スクロールジェスチャが行われた場合(ブロックB60のYES)、ポートレートページを縦方向にスクロールする(ブロックB57)。
また、フルスクリーンモードの場合、処理部308は、ページタイプがランドスケープページまたはポートレートページのいずれであるのかを調べる(ブロックB62)。
ランドスケープページの場合、処理部308は、ランドスケープフルスクリーンUIを表示して(ブロックB63)、編集ビューエリアにランドスケープページ全体を表示する(ブロックB64)。ポートレートページの場合、処理部308は、ランドスケープフルスクリーンUIを表示し(ブロックB65)、編集ビューエリアの中央にポートレートページの一部を表示して(ブロックB66)、縦スクロールジェスチャが行われた場合(ブロックB67のYES)、ポートレートページを縦方向にスクロールする(ブロックB68)。
続いて、図28を参照して、画面の向きがポートレート向きである場合の手順について説明する。
ポートレート向きである場合、処理部308は、ノーマルモードまたはフルスクリーンモードのいずれであるのかを調べる(ブロックB70)。ノーマルモードの場合、処理部308は、ページタイプがランドスケープページまたはポートレートページのいずれであるのかを調べる(ブロックB71)。
ランドスケープページの場合、処理部308は、ポートレートノーマルUIを表示し(ブロックB72)、編集ビューエリアにランドスケープページの一部を表示して(ブロックB73)、横スクロールジェスチャが行われた場合(ブロックB74のYES)、ランドスケープページを横方向にスクロールする(ブロックB75)。ポートレートページの場合、処理部308は、ポートレートノーマルUIを表示し(ブロックB76)、編集ビューエリアにポートレートページの一部を表示して(ブロックB77)、縦スクロールジェスチャが行われた場合(ブロックB78のYES)、ポートレートページを縦方向にスクロールする(ブロックB79)。
また、フルスクリーンモードの場合、処理部308は、ページタイプがランドスケープページまたはポートレートページのいずれであるのかを調べる(ブロックB80)。
ランドスケープページの場合、処理部308は、ポートレートフルスクリーンUIを表示し(ブロックB81)、編集ビューエリアの中央にランドスケープページの一部を表示して(ブロックB82)、横スクロールジェスチャが行われた場合(ブロックB83のYES)、ランドスケープページを横方向にスクロールする(ブロックB68)。ポートレートページの場合、処理部308は、ポートレートフルスクリーンUIを表示して(ブロックB88)、編集ビューエリアにポートレートページ全体を表示する(ブロックB86)。
このように、表示されているページがランドスケープページである場合にはスクロール可能な方向は常に横方向のみに制限され、表示されているページがポートレートページである場合にはスクロール可能な方向は常に縦方向のみに制限される。これにより、手書き入力操作中における意図しないページのスクロールを防止することができる。
以上説明したように、本実施形態においては、書き込み可能エリアと他のエリアとが異なる表示形態で表示され、他のエリアは、仮ストロークを入力するための操作領域として使用される。したがって、仮ストロークを確定するための操作が容易となり、スムーズな手書き入力を実現できる。
なお、本実施形態に記載された様々な機能の各々は、処理回路によって実現されてもよい。処理回路の例には、中央処理装置(CPU)のような、プログラムされたプロセッサが含まれる。このプロセッサは、メモリに格納されたコンピュータプログラム(命令群)を実行することによって、記載された機能それぞれを実行する。このプロセッサは、電気回路を含むマイクロプロセッサであってもよい。処理回路の例には、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、マイクロコントローラ、コントローラ、他の電気回路部品も含まれる。本実施形態に記載されたCPU以外の他のコンポーネントの各々もまた処理回路によって実現されてもよい。
また、本実施形態の各種処理はコンピュータプログラムによって実現することができるので、このコンピュータプログラムを格納したコンピュータ読み取り可能な記憶媒体を通じてこのコンピュータプログラムをコンピュータにインストールして実行するだけで、本実施形態と同様の効果を容易に実現することができる。
このコンピュータプログラムがインストールされたコンピュータ内のCPUは上述の筆跡補完処理を実行するように構成されたプロセッサとして機能し得る。このコンピュータ内のGPUはストロークそれぞれを画面上に表示するように構成された表示プロセッサとして機能し得る。
また、本実施形態では、タブレットコンピュータを使用する場合を例示して説明したが、本実施形態の手書き文書処理機能は、通常のデスクトップパーソナルコンピュータに適用することもできる。この場合、手書き入力のための入力デバイスであるタブレット等をデスクトップパーソナルコンピュータに接続すれば良い。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。