(58)【調査した分野】(Int.Cl.,DB名)
前記特定部は、前記操作を受け付けた際に複数のウィンドウが表示されている場合、アクティブとなっているウィンドウを非アクティブとなっているウィンドウよりも優先し、前記スタイラスペンの位置と前記優先したウィンドウの位置とから該優先したウィンドウの辺又は角を前記操作対象と特定する、
請求項1に記載の端末装置。
前記特定部は、前記操作を受け付けた際に複数のウィンドウが重なって表示されている場合であって、アクティブとなっているウィンドウがない場合、非アクティブとなっているウィンドウのうちの前面のウィンドウをアクティブにして、前記スタイラスペンの位置と前記アクティブにしたウィンドウの位置とから該アクティブにしたウィンドウの辺又は角を前記操作対象と特定する、
請求項1又は2に記載の端末装置。
【発明を実施するための形態】
【0012】
以下、本発明の実施形態について添付の図面を参照しながら説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複した説明を省く。
【0013】
[はじめに]
近年、タブレットコンピュータの出荷台数が増えている。その中で、スタイラスペンによる入力操作を可能にした端末装置が増えてきている。スタイラスペンによる入力では、現実の紙に筆記する感覚が得られるため、紙とえんぴつという従来の筆記用具の替わりとなることが期待されている。また、スタイラスペンによる入力では、指でのタッチ操作による入力に比べて精度の高い操作が可能となる。
【0014】
その反面、指による入力では、ドット単位の座標精度は要求されないが、スタイラスペンによる入力では、ドット単位の座標精度が要求される。特に、表示画面の高解像度化により、画面のドットサイズが小さくなっているため、スタイラスペンの操作には高い精度が要求される傾向にある。よって、画面に細く表示されるウィンドウ枠にスタイラスペンのペン先を正確に合わせ、ドラッグし、ウィンドウサイズを意図した大きさに変更することが困難になることがある。また、画面とペン先の間で生じる視差や、センサーパネルのジッターによる座標のブレの発生により、スタイラスペンによるウィンドウ操作が困難になることがある。
【0015】
そこで、以下に説明する本実施形態に係る端末装置10は、スタイラスペンをウィンドウの辺又は角に正確に当てなくても、ウィンドウの辺又は角を選択できるように操作することが可能である。
【0016】
なお、本明細書においてドラッグとは、スタイラスペンのペン先を合わせたり、近づけたりして、スタイラスペンがウィンドウの辺や角を掴んだ状態(すなわち、スタイラスペンによる操作対象の辺や角をコンピュータが認識した状態)をいう。
【0017】
また、画面とペン先の間で生じる視差とは、スタイラスペンを検出するセンサの実装方式による画面とペン先との視差をいう。センサーパネルのジッターとは、センサーパネルによって検知されるスタイラスペンの操作信号の時間軸の揺らぎをいう。
【0018】
[端末装置のハードウェア構成]
まず、本発明の一実施形態に係る端末装置10のハードウェア構成の一例について、
図1を参照しながら説明する。
図1は、一実施形態に係る端末装置10のハードウェア構成の一例を示す。
【0019】
本実施形態に係る端末装置10は、CPU11、メモリ12、入出力I/F13、センサーパネル14、ディスプレイ15及び通信I/F16を有する。CPU11は、メモリ12に格納されたプログラムに従って、端末装置10を制御する。メモリ12は、例えば半導体メモリであり、CPU11によって実行されるウィンドウの操作制御プログラム及びその他のプログラム、CPU11によって参照されるデータ、及び、CPU11が実行する処理の結果として取得されたデータ等を格納する。
【0020】
記録媒体17に、ウィンドウの操作制御プログラム等及びデータ等を格納し、CPU11が、必要に応じて記録媒体17からメモリ12に操作制御プログラム等及びデータ等をコピーしてもよい。また、必要に応じてメモリ12から記録媒体17に所望のデータをコピーしてもよい。記録媒体17は、例えばフラッシュメモリのような不揮発性の記録媒体である。
【0021】
センサーパネル14は、ディスプレイ15に積層され、スタイラスペン50のディスプレイ15への接触、近接、スタイラスペン50のボタン51の操作を検出する。センサーパネル14は、スタイラスペン50の画面上の位置を検知し、座標データに変換する。センサーパネル14は、スタイラスペン50のペン先が画面に触れていない状態(近接)での検出も可能とし、例えばディスプレイ15の画面から約1cm離れたペン先を検出することができる。以下、スタイラスペン50を画面から1cm程度離した状態で画面にペン先が触れないようにしながら画面上の操作を行うことを「ホバリング」という。
【0022】
入出力I/F13は、センサーパネル14が検知したスタイラスペン50の座標データを入力するインターフェースである。また、入出力I/F13は、スタイラスペン50による操作に応じたウィンドウサイズの変更や、CPU11が実行する処理の結果をディスプレイ15に出力するインターフェースである。通信I/F16は、ネットワークに接続され、他の装置と通信するインターフェースである。
【0023】
図2にスタイラスペン50によるウィンドウの表示サイズの変更操作の一例を示す。ユーザは、サイズを変更したいウィンドウWの四辺(上下及び左右)のウィンドウ枠又は四隅(左上、左下、右上及び右下)の位置にホバリングの状態でペン先を近づける。ユーザは、この状態でスタイラスペン50のボタン51を押すことでウィンドウWのサイズを変更する状態にし、再度、ボタン51を押すことでウィンドウWのサイズを決定する。
【0024】
通常、スタイラスペン50のペン先を画面に触れさせることは「タップ」操作となり、このタップ操作はウィンドウWを「選択する」ことを意味する。ウィンドウWだけが画面に表示されている場合は問題にはならない。
【0025】
ところが、
図2のウィンドウWの左側の辺に示すように、ウィンドウWの下にアイコンIやボタンが配置されている場合は、ウィンドウWを選択する替わりにウィンドウWと重なるアイコンIが選択されるという誤操作が起こり得る。また、
図2のウィンドウWの右上に示すボタンBのように、ウィンドウ枠に隣接するボタン等のパーツがある場合、ウィンドウWの表示サイズを変えるためのタップ操作により、ウィンドウWを選択する替わりに隣接するボタンBを選択し、ウィンドウWを非表示にしたり、ウィンドウWを閉じてしまうという誤操作が起こり得る。
【0026】
これに対して、本実施形態では、スタイラスペン50によるホバリング操作によりウィンドウサイズWを変更する。ホバリング状態では、
図2に示す画面の状態においても「選択する」行為とはならないため、操作性に有利であり、ボタン操作と併用することで誤操作の課題を解決できる。つまり、スタイラスペン50のペン先を画面に触れさせて、ウィンドウ枠をドラッグする操作をする必要がないため、ウィンドウWを操作したときに隣接するアイコンIやボタンBが選択される誤操作を回避できる。
【0027】
そこで、本実施形態では、サイズを変更したいウィンドウWにスタイラスペン50のペン先をホバリングの状態で近づけ、スタイラスペン50のボタン51を押すことで、ユーザはウィンドウの表示サイズを変更する。これにより、スタイラスペン50をウィンドウWの辺又は角に正確に当てなくても、ウィンドウWの辺又は角を選択できるように操作することができる。
【0028】
[機能構成]
次に、一実施形態にかかる端末装置10の機能構成の一例について、
図3を参照しながら説明する。
図3は、一実施形態に係る端末装置10の機能構成の一例を示す。本実施形態に係る端末装置10は、受付部21、記憶部22、座標変換部23、特定部24、操作制御部25、表示部26及び通信部29を有する。
【0029】
受付部21は、スタイラスペン50のペン先のタッチや、ホバリングしているスタイラスペン50によるウィンドウWへの操作を受け付ける。受付部21の機能は、例えば入出力I/F13により実現可能である。
【0030】
記憶部22は、ウィンドウ状態管理テーブル27及び操作制御プログラム28を記録する。ウィンドウ状態管理テーブル27は、ディスプレイ15に表示されるウィンドウ群の状態を管理するテーブルである。ウィンドウ状態管理テーブル27は、ウィンドウWの表示状態に連動して更新され、個々のウィンドウの状態を管理する。これにより、マルチウィンドウの管理を行うことができる。
【0031】
図4に、一実施形態に係るウィンドウ状態管理テーブル27の一例を示す。ウィンドウ状態管理テーブル27は、ウィンドウID、アクティブ状態情報、サイズ変更可否情報、表示位置情報、ウィンドウサイズ情報(横及び縦)及びZオーダー情報を有する。ウィンドウIDは、ウィンドウを判別するためのIDである。ウィンドウIDは、OSより付与される。
【0032】
アクティブ状態情報は、ウィンドウがアクティブか非アクティブかの状態を表すフラグである。フラグが「1」のときアクティブ、「0」のとき非アクティブを示す。
【0033】
サイズ変更可否情報は、表示サイズの変更の可否を表すフラグである。フラグが「1」のとき表示サイズの変更可能、「0」のとき表示サイズの変更不可能を示す。表示サイズの変更不可能とは、サイズ固定表示を表す。
【0034】
表示位置情報は、
図5に一例を示すディスプレイ15の画面の左上(0.0)を基点とした場合の、各ウィンドウの左上の座標を示す。
図4のウィンドウ状態管理テーブル27には、ウィンドウIDが「W0001」、「W0002」、「W0003」の3つのウィンドウが監理されている。「W0001」のウィンドウの左上の座標は(10,10)である。「W0002」のウィンドウの左上の座標(X,Y)は(60,20)である。「W0003」のウィンドウの左上の座標は(30,35)である。
【0035】
図4のアクティブ状態情報に示すように、3つのウィンドウのうち、「W0001」のウィンドウはアクティブ、残りのウィンドウは非アクティブの状態である。また、サイズ変更可否情報に示すように、3つのウィンドウはすべてサイズ変更可能である。
【0036】
ウィンドウサイズ情報は、ウィンドウの表示サイズを示す。3つのウィンドウの表示サイズ(横,縦)は、いずれも(40、30)である。
【0037】
Zオーダー情報は、最前面を1とした奥行側への表示順位を示す。
図4のZオーダー情報では、
図5に示すように、「W0001」のウィンドウW1が最も手前に表示され、「W0003」のウィンドウW3及び「W0002」のウィンドウW2の順に奥行側へ表示される。なお、ウィンドウ状態管理テーブル27に記憶された情報は、メモリ12に格納してもよいし、ネットワークを介して端末装置10に接続されるクラウド上の記憶装置に格納してもよい。
【0038】
図3に戻り、操作制御プログラム28は、スタイラスペン50による操作に従い、ウィンドウサイズを変更する機能をコンピュータに実行させるためのプログラムである。記憶部22の機能は、例えばメモリ12により実現可能である。
【0039】
座標変換部23は、スタイラスペン50による操作を座標データに変換する。座標変換部23の機能は、例えばセンサーパネル14により実現可能である。
【0040】
特定部24は、ホバリングしているスタイラスペンによるウィンドウへの操作を受け付けた際のスタイラスペン50の位置とウィンドウの位置とから、スタイラスペン50による操作対象となるウィンドウの辺又は角を特定する。特定部24は、ウィンドウへの操作を受け付けた際のスタイラスペン50の位置が、ウィンドウの辺又は角の近傍にある場合、前記近傍にあるウィンドウの辺又は角を、スタイラスペン50による操作対象となるウィンドウの辺又は角と特定する。
【0041】
操作制御部25は、特定した辺又は角にスタイラスペン50の操作を適用する。例えば、操作制御部25は、スタイラスペン50で示すウィンドウWの操作前後の相対位置の変化をスタイラスペン50のホバリングにより特定した辺又は角に適用する。これにより、スタイラスペン50をホバリングした状態で、所望のウィンドウのサイズを変更することができる。特定部24及び操作制御部25の機能は、操作制御プログラム28がCPU11に実行させる処理により実現可能である。
【0042】
表示部26は、スタイラスペン50のホバリング操作に応じてウィンドウWのサイズを変更して表示する。表示部26の機能は、例えばディスプレイ15により実現可能である。通信部29は、ネットワークを通じて端末装置10と他の機器の間で情報を送受信する。通信部29の機能は、例えば通信I/F16により実現可能である。
【0043】
なお、
図3は機能に着目したブロック図を描いており、これらの機能ブロックで示した各部のソフトウエアを実行するプロセッサはハードウェアである。
【0044】
<第1実施形態>
[操作制御処理]
次に、第1実施形態に係る操作制御処理の一例について
図6を参照して説明する。
図6は、第1実施形態に係る操作制御処理の一例を示したフローチャートである。本処理が開始されると、受付部21は、スタイラスペン50がホバリングの状態かを判定する(ステップS10)。受付部21は、スタイラスペン50がホバリングの状態になるまで、ステップS10を繰り返す。
【0045】
スタイラスペン50がホバリングの状態になった場合、受付部21は、スタイラスペン50のボタン51が押されたか否かを判定する(ステップS12)。受付部21は、スタイラスペン50のボタン51が押されるまで、ステップS12を繰り返す。
【0046】
スタイラスペン50のボタン51が押された場合、特定部24は、制御対象となるウィンドウが存在するか否かを判定する(ステップS14)。特定部24は、ウィンドウ状態管理テーブル27を参照して、アクティブウィンドウがない場合、制御対象となるウィンドウが存在しないと判定し、ステップS14を繰り返す。
【0047】
アクティブウィンドウがある場合、特定部24は、制御対象となるウィンドウが存在すると判定し、そのウィンドウのサイズ変更が可能か否かを判定する(ステップS16)。特定部24は、ウィンドウ状態管理テーブル27を参照して、制御対象のウィンドウのサイズ変更可否情報のフラグが「1」でないと判定した場合には、制御対象のウィンドウのサイズ変更可否情報のフラグが「1」になるまで、ステップS16を繰り返す。
【0048】
制御対象のウィンドウのサイズ変更可否情報のフラグが「1」である場合、特定部24は、スタイラスペン50のペン先の座標が、ウィンドウ枠の4つの角の近傍にあるかを判定する(ステップS18)。スタイラスペン50のペン先の座標は、座標変換部23により算出されている。よって、特定部24は、算出したペン先の座標と、ウィンドウ状態管理テーブル27に記憶されている制御対象のウィンドウの表示位置及びウィンドウサイズの情報とから、ペン先の座標が、ウィンドウ枠の4つの角の近傍にあるかを判定できる。
【0049】
ペン先の座標が、ウィンドウ枠の4つの角の近傍にあると判定された場合、
図8のA1以降の処理を続ける。
図8のA1以降の処理については、後述される。一方、ペン先の座標が、ウィンドウ枠の4つの角の近傍にないと判定された場合、特定部24は、スタイラスペン50のペン先の座標が、ウィンドウ枠の4つの辺の近傍にあるかを判定する(ステップS20)。ペン先の座標が、ウィンドウ枠の4つの辺の近傍にないと判定された場合、本処理を終了する。
【0050】
ペン先の座標が、ウィンドウ枠の4つの辺の近傍にあると判定された場合、特定部24は、ペン先の座標が、ウィンドウ枠の4つの辺のうち、いずれの辺の近傍にあるかを判定する(ステップS22)。特定部24は、ペン先の座標が、ウィンドウ枠の4つの辺のうち、上側の辺の近傍、あるいは、下側の辺の近傍にあると判定した場合、上側の辺の近傍か、下側の辺の近傍かを判定する(ステップS24)。特定部24は、上側の辺の近傍にあると判定した場合、ペン先の座標を取得し、アクティブウィンドウWに対して、上側の辺を、取得したペン先の座標が示す位置に近づけ、ウィンドウサイズを変更するコマンドをOSに送信する(ステップS28)。この結果、操作制御部25は、ウィンドウの上側の辺をドラッグした状態にする(ステップS36)。
【0051】
例えば、
図7(a)では、制御対象のアクティブウィンドウW1の上側の辺の近傍に、スタイラスペン50のペン先があり、ホバリング状態になっている。取得したペン先の座標がアクティブウィンドウWの上側の辺よりも上の位置を示す場合、アクティブウィンドウW1に対して、上側の辺を、取得したペン先の座標が示す位置に近づけ、ウィンドウサイズを変更するコマンドがOSへ送信される。この結果、
図7(b)に示すように、アクティブウィンドウW1の上側の辺がドラッグされた状態になる。ここでは、ドラッグしたことを示す矢印のマークが表示され、アクティブウィンドウW1の上側の辺がドラッグされたことがわかる。
【0052】
図6に戻り、次に、操作制御部25は、スタイラスペン50のボタン51が押されたかを判定する(ステップS44)。操作制御部25は、スタイラスペン50のボタン51が押されるまで、ステップS44を繰り返し実行し、スタイラスペン50のボタン51が押されたと判定した場合、ウィンドウの枠のドラッグを解除し(ステップS46)、本処理を終了する。
【0053】
例えば、
図7(b)のアクティブウィンドウW1の上側の辺をドラッグした状態で、
図7(c)に示すように、ユーザがスタイラスペン50をホバリングしながら更に上側に移動させ、所定の位置でボタン51を押したとする。この場合、
図7(d)に示すように、スタイラスペン50で示すウィンドウの操作前後の相対位置の変化が、特定した辺(ここでは、上側の辺)に適用され、ウィンドウサイズが変更される。そして、ウィンドウW1の上側の辺をドラッグしたことを示す矢印のマークが非表示となり、ドラッグした状態が解除される。
【0054】
これによれば、スタイラスペン50をホバリングした状態でボタン51の操作を行うことで、操作を受け付けた際のスタイラスペンの位置がウィンドウの辺又は角の直上にある場合だけでなく、ウィンドウの辺又は角の直上にない場合であっても、ウィンドウの近接にあれば、近傍のウィンドウWを操作することができる。そして、スタイラスペン50をホバリングした状態で、ウィンドウWのサイズを変えることができる。
【0055】
図6に戻り、一方、ステップS22,S24において、特定部24は、ペン先の座標が、ウィンドウ枠の4つの辺のうち、下側の辺の近傍にあると判定した場合、ペン先の座標を取得し、アクティブウィンドウWに対して、下側の辺を、取得したペン先の座標が示す位置に近づけ、ウィンドウサイズを変更するコマンドをOSに送信する(ステップS30)。この結果、操作制御部25は、ウィンドウの下側の辺をドラッグした状態にする(ステップS38)。操作制御部25は、スタイラスペン50のボタン51が押されるまで、ステップS44を繰り返し実行し、ボタン51が押されたとき、ウィンドウの枠のドラッグを解除し(ステップS46)、本処理を終了する。
【0056】
同様にして、ステップS26において、特定部24は、ペン先の座標が、ウィンドウ枠の4つの辺のうち、左側の辺の近傍、あるいは、右側の辺の近傍にあると判定した場合、左側の辺の近傍か、右側の辺の近傍かを判定する(ステップS26)。特定部24は、左側の辺の近傍にあると判定した場合、ペン先の座標を取得し、アクティブウィンドウWに対して、左側の辺を、取得したペン先の座標が示す位置に近づけ、ウィンドウサイズを変更するコマンドをOSに送信する(ステップS32)。この結果、操作制御部25は、ウィンドウの左側の辺をドラッグした状態にする(ステップS40)。
【0057】
操作制御部25は、スタイラスペン50のボタン51が押されるまで、ステップS44を繰り返し実行し、ボタン51が押されたとき、ウィンドウの枠のドラッグを解除し(ステップS46)、本処理を終了する。
【0058】
同様にして、ステップS26において、特定部24は、ペン先の座標が、ウィンドウ枠の4つの辺のうち、右側の辺の近傍にあると判定した場合、ペン先の座標を取得し、アクティブウィンドウWに対して、右側の辺を、取得したペン先の座標が示す位置に近づけ、ウィンドウサイズを変更するコマンドをOSに送信する(ステップS34)。この結果、操作制御部25は、ウィンドウの右側の辺をドラッグした状態にする(ステップS42)。
【0059】
ステップS18において、ペン先の座標がウィンドウ枠の4つの角の近傍にあると判定された場合、
図8のA1以降の処理に進む。特定部24は、ペン先の座標が、ウィンドウ枠の4つの角のうち、いずれの角の近傍にあるかを判定する(ステップS48)。
【0060】
特定部24は、ペン先の座標が、ウィンドウ枠の4つの角のうち、左上の角の近傍、あるいは、左下の角の近傍にあると判定した場合、左上の角の近傍か、左下の角の近傍かを判定する(ステップS50)。特定部24は、ペン先の座標が左上の角の近傍にあると判定した場合、ペン先の座標を取得し、アクティブウィンドウWに対して、左上の角を、取得したペン先の座標が示す位置に近づけ、ウィンドウサイズを変更するコマンドをOSに送信する(ステップS54)。この結果、操作制御部25は、ウィンドウの左上の角をドラッグした状態にする(ステップS62)。操作制御部25は、スタイラスペン50のボタン51が押されるまで、ステップS70を繰り返し実行し、スタイラスペン50のボタン51が押されたと判定した場合、ウィンドウの枠のドラッグを解除し(ステップS72)、本処理を終了する。
【0061】
特定部24は、ステップS50において、ペン先の座標が、左下の角の近傍にあると判定した場合、ペン先の座標を取得し、アクティブウィンドウWに対して、左下の角を、取得したペン先の座標が示す位置に近づけ、ウィンドウサイズを変更するコマンドをOSに送信する(ステップS56)。この結果、操作制御部25は、ウィンドウの左下の角をドラッグした状態にする(ステップS64)。操作制御部25は、スタイラスペン50のボタン51が押されるまで、ステップS70を繰り返し実行し、スタイラスペン50のボタン51が押されたと判定した場合、ウィンドウの枠のドラッグを解除し(ステップS72)、本処理を終了する。
【0062】
一方、ステップS48において、特定部24は、ペン先の座標が、ウィンドウ枠の4つの角のうち、右上の角の近傍、あるいは、右下の角の近傍にあると判定した場合、右上の角の近傍か、右下の角の近傍かを判定する(ステップS52)。
【0063】
特定部24は、ステップS52において、ペン先の座標が、右上の角の近傍にあると判定した場合、ペン先の座標を取得し、アクティブウィンドウWに対して、右上の角を、取得したペン先の座標に従う位置に近づけ、ウィンドウサイズを変更するコマンドをOSに送信する(ステップS58)。この結果、操作制御部25は、ウィンドウの右上の角をドラッグした状態にする(ステップS66)。操作制御部25は、スタイラスペン50のボタン51が押されるまで、ステップS70を繰り返し実行し、スタイラスペン50のボタン51が押されたと判定した場合、ウィンドウの枠のドラッグを解除し(ステップS72)、本処理を終了する。
【0064】
一方、特定部24は、ステップS52において、ペン先の座標が、右下の角の近傍にあると判定した場合、ペン先の座標を取得し、アクティブウィンドウWに対して、右下の角を、取得したペン先の座標に従う位置に近づけ、ウィンドウサイズを変更するコマンドをOSに送信する(ステップS60)。この結果、操作制御部25は、ウィンドウの右下の角をドラッグした状態にする(ステップS68)。操作制御部25は、スタイラスペン50のボタン51が押されるまで、ステップS70を繰り返し実行し、スタイラスペン50のボタン51が押されたと判定した場合、ウィンドウの枠のドラッグを解除し(ステップS72)、本処理を終了する。
【0065】
指の操作の場合、ドットレベルの精度は不要である。しかし、操作対象となるウィンドウと、ウィンドウを閉じるボタンBやアイコンI(
図2参照)等の他の制御を行うパーツとが、隣接して表示されている場合がある。この場合、指の操作では前述した誤操作が生じることがある。
【0066】
これに対して、以上に説明したように、本実施形態に係る端末装置10による操作制御処理では、スタイラスペン50をホバリングして操作が行われる。これにより、ウィンドウを閉じるボタンB等のパーツがウィンドウに隣接しているような表示環境においても誤操作することがない。スタイラスペン50のボタン51を押したときもウィンドウ枠を制御することに限定しているため誤操作は発生しない。よって、本実施形態に係る操作制御処理によれば、スタイラスペン50をウィンドウWの辺又は角に正確に当てなくても、ウィンドウWの辺又は角を選択できるように操作することができる。これにより、ホバリングさせたスタイラスペン50の先で、ウィンドウWの辺、角のような目標が小さい部分に対する位置決めが容易になる。
【0067】
なお、スタイラスペン50のペン先の座標が、ウィンドウ枠の4つの辺又は4つの角の近傍にあるかの判断として、ウィンドウの表示枠を基点として画面の表示に対して例えば1cmの帯状の範囲をウィンドウ枠の4つの辺又は4つの角からの近傍範囲としてもよい。ただし、1cmの帯状の範囲に限らず、数cmの帯状の範囲であってもよいし、数mmの帯状の範囲であってもよい。つまり、ウィンドウの表示枠を基点として画面の表示に対して例えば数mm〜数cmの範囲をウィンドウ枠の4つの辺又は4つの角の近傍としてもよい。あるいは、ウィンドウのサイズを元に、そのウィンドウ枠の位置から所定の割合までを近傍としてもよい。一例としては、ウィンドウ枠から、そのウィンドウの同じ軸方向の長さの10%を伸ばした位置までの範囲を近傍とみなすとしてもよい。
【0068】
すなわち、ウィンドウ枠に対して上記のピクセル範囲内にペン先位置を検出した場合、制御条件に基づきサイズ変更の対象とするものである。
【0069】
なお、第1実施形態について説明した内容に限らず、スタイラスペンが、特定した辺や角の上側、下側、左側、右側等にあると判断すると、スタイラスペンによるドラック操作を受け付けるとき又は受け付ける前に、その特定した辺や角を、現在の位置から、スタイラスペンのペン先の座標が示す位置に近づけてもよい。また、特定した辺や角を、現在の位置から、スタイラスペンのペン先の座標が示す位置に近づける動作を自動で行わず、辺や角を特定した後、スタイラスペンでのボタン押下等の所定の操作を受け付けると、その特定した辺や角を、現在の位置から、スタイラスペンのペン先の座標が示す位置に近づけてもよい。その際、上辺を上側に移動させる場合は、ウィンドウサイズを広げるようにしてもよいし、ウィンドウサイズを変えずに、ウィンドウの位置を移動させる(例えば、ウィンドウ全体を上側に移動する)ようにしてもよい。
【0070】
<第2実施形態>
[操作制御処理]
次に、第2実施形態に係る操作制御処理の一例について
図9〜
図11を参照して説明する。
図9〜
図11は、第2実施形態に係る操作制御処理の一例を示したフローチャートである。なお、第1実施形態に係る操作制御処理と同一処理を行うステップについては、同一ステップ番号を付すことにより説明を省略又は簡略化する。
【0071】
まず、本処理のステップS10〜S26の処理は第1実施形態と同じであるため、説明を省略し、ステップS80の処理から説明を始める。スタイラスペン50のペン先の座標が、ウィンドウ枠の4つの辺の上側の辺にあると判定された場合、特定部24は、アクティブウィンドウのウィンドウ枠が近傍にあるか否かを判定する(ステップS80)。アクティブウィンドウのウィンドウ枠が近傍にある場合、本処理を終了し、第1実施形態に係る操作制御処理(
図6、
図8)を実行し、アクティブウィンドウに対する操作制御を行う。
【0072】
例えば、
図13(a)に示すように、2つのウィンドウW1,W2の枠判別領域が重なる場合、重なる部分はアクティブウィンドウW1の操作が優先され、重ならない辺及び角(領域S以外の部分)での非アクティブウィンドウW2のサイズ変更は可能である。
【0073】
図13(a)の領域Ar1(領域Ar2の内側)は、アクティブウィンドウ領域であり、領域Ar2は、アクティブウィンドウの枠判別領域である。領域Ar3(領域Ar4の内側)は、非アクティブウィンドウ領域であり、領域Ar4は、非アクティブウィンドウの枠判別領域である。
【0074】
なお、「枠判別領域」とは、ウィンドウの表示枠を基点として画面の表示に対して例えば1cmの帯状の範囲とする。物理的画面サイズを12.5インチとした場合、これをピクセル換算すると、各解像度に対して次のような解像度になる。
・FHD解像度:69ピクセル
・HD解像度:46ピクセル
・4K解像度:139ピクセル
すなわち、ウィンドウ枠に対して上記のピクセル範囲内にペン先位置を検出した場合、制御条件に基づきサイズ変更の対象とするものである。ただし、「枠判別領域」は、1cmの帯状の範囲に限らず、数mm〜数cmの帯状の範囲であってもよい。
【0075】
図9に戻り、ステップS80において、アクティブウィンドウのウィンドウ枠が近傍にない場合、特定部24は、
図10のB1に進み、非アクティブウィンドウのウィンドウ枠が近傍にあるかを判定する(ステップS82)。非アクティブウィンドウのウィンドウ枠が近傍にある場合、特定部24は、複数の非アクティブウィンドウが重なり、かつ、前面のウィンドウか否かを判定する(ステップS84)。複数の非アクティブウィンドウが重なり、かつ、前面のウィンドウでないと判定された場合、本処理を終了する。
【0076】
2つの非アクティブウィンドウが重なる場合であっても、ウィンドウW1の場合には前面のウィンドウであるため「Yes」と判定され、ステップS104に進む。また、ステップS82において、他の非アクティブウィンドウのウィンドウ枠が近傍にない場合、ステップS104に進む。
【0077】
次に、特定部24は、上側の辺の近傍にあると判定した場合、ペン先の座標を取得する。操作制御部25は、非アクティブウィンドウWに対して、取得したペン先の座標に従う方向に上側の辺を移動させ、サイズを変更するコマンドをOSに送信する(ステップS104)。この結果、操作制御部25は、ウィンドウの上側の辺をドラッグした状態にする(ステップS36)。ステップS44、S46の処理は、第1実施形態に係る操作制御処理と同一であるため、説明を省略する。これによれば、非アクティブウィンドウをOSによってアクティブウィンドウにして、ドラッグした部分へのウィンドウの移動を可能とすることができる。
【0078】
図13(b)及び
図13(c)の領域Ar3、Ar3’(領域Ar4、Ar4’の内側)は、非アクティブウィンドウ領域であり、領域Ar4、Ar4’は、非アクティブウィンドウの枠判別領域である。ステップS84、S88,S94,S100における「2つの非アクティブウィンドウが重なる」場合とは、2つの非アクティブウィンドウの枠判別領域Ar4、Ar4’が接するか重なる場合、又は非アクティブウィンドウ領域Ar3、Ar3’が重なるのいずれかの場合である。
【0079】
図13(b)に示すように、2つの非アクティブウィンドウの枠判別領域が接する場合(領域Tの部分)は、2つの非アクティブウィンドウが重なる場合の一形態であるため、ウィンドウの制御はできない。一方、重ならない辺及び角(領域T以外の部分)でのウィンドウのサイズ変更は可能である。
【0080】
図13(c)に示すように、2つの非アクティブウィンドウ領域が重なる場合、前面に位置するウィンドウの操作を優先し、後面に位置するウィンドウの重ならない辺及び角でのサイズ変更は可能である。例えば
図13(c)の左の状態では、2つの非アクティブウィンドウ領域Ar3、Ar3’が重なる場合であって、ウィンドウW2の場合には後面のウィンドウであるため、ウィンドウのサイズ変更は不可能である。ウィンドウW1の場合には前面のウィンドウであるため、ウィンドウのサイズ変更は可能である。一方、重ならない辺及び角(領域T以外の部分)でのウィンドウのサイズ変更は可能である。
【0081】
このように、2つの非アクティブウィンドウが重なる状態では、後面のウィンドウW2の重なる部分の操作は制限され、前面のウィンドウW1の重なる部分の操作は可能となる。
【0082】
以上に説明した
図9及び
図10のステップS80〜S84、S104,S36の処理では、ペン先がウィンドウ枠の4つの辺のうち、上側の辺の近傍にある場合について説明した。これに対して、ステップS86〜S90、S106,S38の処理では、ペン先がウィンドウ枠の4つの辺のうち、下側の辺の近傍にある場合についての操作制御であり、制御内容は操作対象が異なるのみであり、ステップS80〜S84、S104,S36とほぼ同一処理であるため説明を省略する。同様にして、ステップS92〜S96、S108,S40は、ペン先がウィンドウ枠の4つの辺のうち、左側の辺の近傍にある場合の処理である。また、ステップS98〜S102、S110,S42は、ペン先がウィンドウ枠の4つの辺のうち、右側の辺の近傍にある場合の処理である。これらの処理は、制御内容は操作対象が異なるのみであり、ステップS80〜S84、S104,S36とほぼ同一処理であるため説明を省略する。
【0083】
これによれば、非アクティブウィンドウの場合にも、スタイラスペンをウィンドウの辺又は角に正確に当てなくても、ウィンドウWの辺又は角を選択できるように操作することができる。また、ウィンドウ領域が重なる場合や、ウィンドウの枠判別領域が重なる場合において、複数の設定された条件に基づき、優先して操作されるウィンドウを特定し、特定したウィンドウの優先処理を行うことができる。また、重ならない辺及び角では、そのウィンドウのサイズ変更を可能とすることができる。
【0084】
ペン先の座標が、ウィンドウ枠の4つの角のうち、いずれかの角の近傍にあると判定された場合、
図11のA2以降の処理を続ける。特定部24は、ペン先の座標が、ウィンドウ枠の4つの角のうち、いずれの角の近傍にあるかを判定する(ステップS48)。ステップS48及びステップS50において、特定部24は、ペン先の座標が左上の角の近傍にあると判定した場合、特定部24は、アクティブウィンドウのウィンドウ枠が近傍にあるか否かを判定する(ステップS120)。アクティブウィンドウのウィンドウ枠が近傍にある場合、本処理を終了し、第1実施形態に係る操作制御処理(
図6、
図8)を実行し、アクティブウィンドウに対する操作制御を行う。
【0085】
一方、ステップS120において、アクティブウィンドウのウィンドウ枠が近傍にない場合、特定部24は、他の非アクティブウィンドウのウィンドウ枠が近傍にあるかを判定する(ステップS122)。他の非アクティブウィンドウのウィンドウ枠が近傍にある場合、特定部24は、2つの非アクティブウィンドウの枠判別領域が重なる場合であって、前面のウィンドウか否かを判定する(ステップS124)。
【0086】
2つの非アクティブウィンドウが重なる場合であって、後面のウィンドウの場合には後、本処理を終了する(
図11:C5→
図12:終了)。2つの非アクティブウィンドウが重なる場合であっても、前面のウィンドウの場合には、
図12のステップS144に進む。また、ステップS122において、他の非アクティブウィンドウのウィンドウ枠が近傍にない場合にも
図12のステップS144に進む。
【0087】
ステップS144において、特定部24は、ペン先の座標を取得する。操作制御部25は、非アクティブウィンドウWに対して、左上の角を、取得したペン先の座標が示す方向にサイズを変更するコマンドをOSに送信する。この結果、操作制御部25は、ウィンドウの左上の角をドラッグした状態になる(ステップS62)。ステップS70、S72の処理は、第1実施形態に係る操作制御処理と同一であるため、説明を省略する。
【0088】
以上に説明した
図11のステップS120〜S124、S144,S62の処理では、ペン先がウィンドウ枠の4つの角のうち、左上の角の近傍にある場合について説明した。ステップS126〜S130、S146,S64の処理では、ペン先がウィンドウ枠の左下の角の近傍にある場合についての操作制御であり、制御内容はステップS120〜S124、S144,S62と同一であるため説明を省略する。
【0089】
同様にして、ステップS132〜S136、S148,S66の処理では、ペン先がウィンドウ枠の右上の角の近傍にある場合、ステップS138〜S142、S150,S68の処理では、ペン先がウィンドウ枠の右下の角の近傍にある場合の同一操作であるため説明を省略する。
【0090】
第2実施形態に係る操作制御処理によれば、スタイラスペン50をウィンドウの辺又は角に正確に当てなくても、ウィンドウの辺又は角を選択できるように操作することができる。これにより、ホバリングさせたスタイラスペン50の先で、ウィンドウWの辺、角のような目標が小さい部分に対する位置決めが容易になる。
【0091】
さらに、第2実施形態では、非アクティブウィンドウをOSによってアクティブウィンドウにして、ドラッグした部分へのウィンドウの移動を可能とすることができる。
【0092】
具体的には、画面に2つ以上のウィンドウを表示している場合、非アクティブのウィンドウのサイズ変更を行う場合においては、アクティブウィンドウとの位置関係(
図13)により、ウィンドウサイズを制御するウィンドウを特定することができる。
【0093】
2つ以上のウィンドウの位置関係が、離れた状態であれば、例えば
図10のステップS82、S88,S94,S100等で「No」と判定し、ウィンドウの四辺および四つ角でのサイズ変更は可能となる。アクティブウィンドウの辺もしくはウィンドウの角が制御対象のウィンドウに隣接もしくは重なり合う場合は、アクティブウィンドウの制御を優先する。このとき、非アクティブウィンドウのサイズ変更は、アクティブウィンドウから離れた辺又は角のみ可能となる。なお、非アクティブウィンドウ同士の位置関係によるウィンドウサイズ変更の制御の条件については、前面のウィンドウを後面のウィンドウに優先させてサイズ変更を可能とする。
【0094】
以上、端末装置及び操作制御プログラムを上記実施形態により説明したが、本発明に係る端末装置及び操作制御プログラムは上記実施形態に限定されるものではなく、本発明の範囲内で種々の変形及び改良が可能である。また、上記実施形態及び変形例が複数存在する場合、矛盾しない範囲で組み合わせることができる。
【0095】
本発明に係る端末装置10は、タブレットコンピュータ、パーソナルコンピュータ、スマートフォン、PDA(Personal Digital Assistants)、携帯電話、音楽再生装置、携帯用音楽再生装置、映像処理装置、携帯用映像処理装置、ゲーム機器、携帯用ゲーム機器、ディスプレイを有する家電製品等、あらゆる電子機器に適用されてもよい。
【0096】
以上の説明に関し、更に以下の項を開示する。
(付記1)
ホバリングしているスタイラスペンによるウィンドウへの操作を受け付ける受付部と、
前記操作を受け付けた際の前記スタイラスペンの位置と前記ウィンドウの位置とから、該スタイラスペンによる操作対象となるウィンドウの辺又は角を特定する特定部と、
前記特定した辺又は角に前記スタイラスペンの操作を適用する操作制御部と、
を有する端末装置。
(付記2)
前記特定部は、前記操作を受け付けた際の前記スタイラスペンの位置が、ウィンドウの辺又は角の近傍にある場合、前記近傍にあるウィンドウの辺又は角を、該スタイラスペンによる操作対象となるウィンドウの辺又は角と特定する、
付記1に記載の端末装置。
(付記3)
前記特定部は、前記操作を受け付けた際に複数のウィンドウが表示されている場合、アクティブとなっているウィンドウを非アクティブとなっているウィンドウよりも優先し、前記スタイラスペンの位置と前記優先したウィンドウの位置とから該優先したウィンドウの辺又は角を特定する、
付記1又は2に記載の端末装置。
(付記4)
前記特定部は、前記操作を受け付けた際に複数のウィンドウが重なって表示されている場合であって、アクティブとなっているウィンドウがない場合、非アクティブとなっているウィンドウのうちの前面のウィンドウをアクティブにして、前記スタイラスペンの位置と前記アクティブにしたウィンドウの位置とから該アクティブにしたウィンドウの辺又は角を特定する、
付記1〜3のいずれか一項に記載の端末装置。
(付記5)
ホバリングしているスタイラスペンによるウィンドウへの操作を受け付ける処理と、
前記操作を受け付けた際の前記スタイラスペンの位置と前記ウィンドウの位置とから、該スタイラスペンによる操作対象となるウィンドウの辺又は角を特定する処理と、
前記特定した辺又は角に前記スタイラスペンの操作を適用する処理と、
をコンピュータに実行させるための操作制御プログラム。
(付記6)
前記操作を受け付けた際の前記スタイラスペンの位置が、ウィンドウの辺又は角の近傍にある場合、前記近傍にあるウィンドウの辺又は角を、該スタイラスペンによる操作対象となるウィンドウの辺又は角と特定する、
付記5に記載の操作制御プログラム。
(付記7)
前記操作を受け付けた際に複数のウィンドウが表示されている場合、アクティブとなっているウィンドウを非アクティブとなっているウィンドウよりも優先し、前記スタイラスペンの位置と前記優先したウィンドウの位置とから該優先したウィンドウの辺又は角を特定する、
付記5又は6に記載の操作制御プログラム。
(付記8)
前記操作を受け付けた際に複数のウィンドウが重なって表示されている場合であって、アクティブとなっているウィンドウがない場合、非アクティブとなっているウィンドウのうちの前面のウィンドウをアクティブにして、前記スタイラスペンの位置と前記アクティブにしたウィンドウの位置とから該アクティブにしたウィンドウの辺又は角を特定する、
付記5〜7のいずれか一項に記載の操作制御プログラム。