(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-10
(45)【発行日】2024-12-18
(54)【発明の名称】情報処理装置、コンピュータプログラムおよび情報処理方法
(51)【国際特許分類】
G06F 3/0481 20220101AFI20241211BHJP
【FI】
G06F3/0481
(21)【出願番号】P 2023214159
(22)【出願日】2023-12-19
(62)【分割の表示】P 2020068897の分割
【原出願日】2020-04-07
【審査請求日】2024-01-16
(73)【特許権者】
【識別番号】500033117
【氏名又は名称】株式会社MIXI
(72)【発明者】
【氏名】田那辺 輝
【審査官】槙 俊秋
(56)【参考文献】
【文献】特開2015-011000(JP,A)
【文献】特開2019-057233(JP,A)
【文献】特開2015-079355(JP,A)
【文献】特開2000-322199(JP,A)
【文献】特開平09-062473(JP,A)
【文献】米国特許出願公開第2017/0090606(US,A1)
【文献】中国特許出願公開第109656391(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/01-3/04895
G09G 5/00-5/42
(57)【特許請求の範囲】
【請求項1】
プロセッサを備え、前記プロセッサは、
プログラミングコードを表示対象とする第1画像を表示対象とする第1領域を前面に配置し、
プログラムの実行画面を表示対象とする第2画像を表示対象とする第2領域を前記第1領域の背面に配置してモニタ画面に表示し、
前記第2領域を指定する前記モニタ画面の不可視の所定の領域に対するタッチ操作と、ユーザからデータ入力のための前記モニタ画面に対する入力操作を受け付け、
タッチ操作の検出中に前記入力操作が検出されたときには、前記第1領域を前記第2領域よりも前面に維持したまま、
前記第1画像を非表示にして、前記入力操作に基づいて前記第2画像を変化させ、
前記モニタ画面へのタッチ操作を終了するデタッチ操作が検出されたときには、
前記第1画像を再表示させて、前記入力操作に基づいて前記第1画像を変化させる、
情報処理装置。
【請求項2】
タッチ操作の検出中に、前記第1領域および前記第2領域が重なる重畳領域に対して前記入力操作が検出されたときには、前記第1領域を前記第2領域よりも前面に維持したまま、前記第1領域を非表示にして、前記入力操作に基づいて前記第2画像を変化させ、
前記タッチ操作の検出中に、前記第1領域のみが存在する領域に対して前記入力操作が検出されたときには、前記第1画像を変化させる、
請求項1に記載の情報処理装置。
【請求項3】
プロセッサに、
プログラミングコードを表示対象とする第1画像を表示対象とする第1領域を前面に配置し、第2画像を表示対象とする第2領域を前記第1領域の背面に配置してモニタ画面に表示させ、
プロセッサに、前記第2領域を指定する前記モニタ画面の不可視の所定の領域に対するタッチ操作と、ユーザからデータ入力のための前記モニタ画面に対する入力操作を受け付けさせ、
プロセッサに、タッチ操作の検出中に前記入力操作が検出されたときには、前記第1領域を前記第2領域よりも前面に維持したまま、
前記第1画像を非表示にして、前記入力操作に基づいて前記第2画像を変化させ、
プロセッサに、前記モニタ画面へのタッチ操作を終了するデタッチ操作が検出されたときには、
前記第1画像を再表示させて、前記入力操作に基づいて前記第1画像を変化させる、
プログラム。
【請求項4】
プロセッサが、
プログラミングコードを表示対象とする第1画像を表示対象とする第1領域を前面に配置し、
プログラムの実行画面を表示対象とする第2画像を表示対象とする第2領域を前記第1領域の背面に配置してモニタ画面に表示し、
プロセッサが、前記第2領域を指定する前記モニタ画面の不可視の所定の領域に対するタッチ操作と、ユーザからデータ入力のための前記モニタ画面に対する入力操作を受け付け、
プロセッサが、タッチ操作の検出中に前記入力操作が検出されたときには、前記第1領域を前記第2領域よりも前面に維持したまま、
前記第1画像を非表示にして、前記入力操作に基づいて前記第2画像を変化させ、
プロセッサが、前記モニタ画面へのタッチ操作を終了するデタッチ操作が検出されたときには、
前記第1画像を再表示させて、前記入力操作に基づいて前記第1画像を変化させる、
情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、マルチウィンドウのユーザインタフェース技術、に関する。
【背景技術】
【0002】
ラップトップPC、タブレットPC、スマートフォンなどのモバイルコンピュータの登場により、コンピュータを使う機会は飛躍的に増加した。モバイルコンピュータは、軽量・省サイズを求められる。このため、モバイルコンピュータのユーザインタフェース設計においては、限られたサイズのモニタ画面に、いかに多くの情報を効率的に入出力できるかが重要なポイントとなる。
【0003】
一般的には、複数のウィンドウ(画像表示のための領域)に複数の情報を同時表示させるマルチウィンドウ方式のユーザインタフェースが採用されることが多い。各ウィンドウには「レイヤー(表示層)」が設定される。前面側(上位層)のウィンドウの背後(下)に背面側(下位層)のウィンドウの全部または一部が隠れているかのように複数のウィンドウは表示される。ユーザは 前面のウィンドウを対象としてデータを入力する。以下、データ入力の対象となるウィンドウのことを「フォーカスウィンドウ」とよぶ。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
情報を入力したいウィンドウが背面側にあるとき、このウィンドウを 前面のレイヤーとなるように表示順序を変更する必要がある(以下、「前面化」とよぶ)。具体的には、前面にあるウィンドウを縮小化(非アクティブ化)することにより背面のウィンドウを前面化する。あるいは、複数のウィンドウの縮小版を並列表示させる操作を行ったあと、その中からフォーカスウィンドウ(情報入力したいウィンドウ)を選ぶこともある。前面化のための操作、いいかえれば、前面化のために手数をかけることは、フォーカスウィンドウを頻繁に変更しながら情報入力を行いたいときには作業性の悪化を招きやすい。
【0006】
本発明の目的は、マルチウィンドウ型のユーザインタフェースにおける操作性を向上させるための技術、を提供することにある。
【課題を解決するための手段】
【0007】
本発明のある態様における情報処理装置は、第1画像を表示対象とする第1領域を前面に配置し、第2画像を表示対象とする第2領域を第1領域の背面に配置する表示制御部と、第2領域を指定する第1操作と、ユーザからデータ入力のための第2操作を検出する操作検出部と、を備える。
表示制御部は、第1操作の検出後に第2操作が検出されたときには、第1領域を第2領域よりも前面に維持したまま、第2操作に基づいて第2画像を変化させる。
【発明の効果】
【0008】
本発明によれば、マルチウィンドウ型のユーザインタフェースにおける操作性を向上させやすくなる。
【図面の簡単な説明】
【0009】
【
図2】複数のウィンドウのレイヤー構造を説明するための模式図である。
【
図3】タブレット端末のハードウェア構成図である。
【
図5】機能判定領域の構成を説明するための外観図である。
【
図8】対象化選択領域へのタッチが検出されたときの処理過程を示すフローチャートである。
【
図9】選択領域以外へのタッチが検出されたときの処理過程を示すフローチャートである。
【
図10】デタッチが検出されたときの処理過程を示すフローチャートである。
【
図11】データ入力対象の切り替えを説明するための外観図である。
【
図12】実行ウィンドウへの貫通入力時の状態を示す第1画面図である。
【
図13】コードウィンドウへの通常入力時の状態を示す第2画面図である。
【
図14】コードウィンドウへの通常入力時の状態を示す第3の画面図である。
【
図15】実行ウィンドウに円が描画されたときの状態を示す第4の画面図である。
【
図16】機能入力の説明を表示したときの画面図である。
【
図17】ジェスチャー入力をするときの画面図である。
【
図18】3以上のウィンドウのフォーカスコントロールを説明するための概念図である。
【発明を実施するための形態】
【0010】
本実施形態においては複数のウィンドウが複数のレイヤーに配置されて表示される。ウィンドウは1枚のシートを模した画像領域であり、レイヤーはいわば複数枚のシートを積み重ねたときのシートの重ね位置を示す概念である。
【0011】
まず、物理的な紙のシート1,2,3を想定してみる。シート1,2,3にはそれぞれ絵や文字などの情報が記載されている。この3枚のシートを順番に積み重ねてみる。一番上にシート1、真ん中にシート2、一番下にシート3を配置したとする。このとき、ユーザは一番上にあるシート1のすべてを見ることができる。上から2番目のシート2はシート1に重なっていない部分だけが見える。上から3番目のシート3はシート1,2のいずれとも重なっていない部分だけが見える。このような積み重ねられたシートと同様の視認性をコンピュータプログラムにより実現したものがマルチウィンドウシステムである。
【0012】
マルチウィンドウシステムにおいて、同様にして電子的なウィンドウ1,2,3を想定する。ウィンドウ1,2,3はシートと同様にして情報を表示する。このとき、シート1に対応する「一番上」のレイヤーを「 前面のレイヤー」とよぶ。「前面」とは、モニタを見るユーザから見て前側(にあるかのように見えること)を意味した表現である。3つのウィンドウを3つのレイヤーそれぞれに配置してみる。一番上のレイヤーにウィンドウ1、真ん中のレイヤーにウィンドウ2、一番下のレイヤーにウィンドウ3を配置したとする。この場合、ウィンドウ1は、ウィンドウ2,3よりも「前面」のレイヤーに配置されている、と表現する。同様にして、ウィンドウ2は、ウィンドウ1の「背面」のレイヤーに配置され、ウィンドウ3の「前面」のレイヤーに配置されているという。ウィンドウ3は「 背面」のレイヤーに配置されている、と表現する。
【0013】
ウィンドウ1,2,3のように複数のウィンドウそれぞれの複数のレイヤーそれぞれへ配置する方法を「表示順序」とよぶ。上述の例によれば「複数のウィンドウの表示順序は、 前面から順番にウィンドウ1,2,3である」のように表現する。また、表示順序の変更にともなってウィンドウのレイヤーを変更することをウィンドウの「配置変更」とよぶ。
【0014】
以下においては、「前面化」とは、マルチウィンドウ方式のユーザインタフェースにおいて、指定されたウィンドウのレイヤーを前面に配置変更させることを意味する。「対象化」とは、指定されたウィンドウをデータ入力の対象として設定すること、いいかえれば、指定されたウィンドウをフォーカスウィンドウに設定することを意味する。ここでいう「データ入力」とはウィンドウが表示するコンテンツの追加または修正、具体的には、文字または画像を変更するための入力を意味する。「有効化」とは、特殊な機能レイヤーをオンにすることを意味する。一般的なマルチウィンドウ方式においては「前面化」と「対象化」は実質的に同一概念であるが、本実施形態においては「前面化をしない対象化」を実現する。
【0015】
図1は、タブレット端末100の外観図である。
タブレット端末100(情報処理装置)はモニタ画面102を備える薄型のモバイルコンピュータである。モニタ画面102にはタッチパネルが設置される。本実施形態においては、ユーザにプログラミングを教える授業を想定して説明する。生徒が、タブレット端末100のユーザとなる。
【0016】
タブレット端末100には、プログラミング教育のためのアプリケーション・ソフトウェア(以下、「学習ソフトウェア」とよぶ)があらかじめインストールされている。ユーザに簡単なプログラムコード(以下、単に「コード」とよぶ)を書かせ、作成したプログラムを実行させることでソフトウェアの仕組みに対するユーザの理解を深めることが授業の目的である。詳細は後述するが、コードを作成するためのウィンドウと、プログラムの実行画面となるウィンドウはマルチウィンドウとして別々に表示される。
【0017】
以下においては、タッチパネルを前提として説明するが、タブレット端末100は、タッチパネルのほか、キーボード、マウスなどの入力デバイスを接続することもできる。タブレット端末100は、音声入力を可能としてもよい。
【0018】
図2は、複数のウィンドウのレイヤー構造を説明するための模式図である。
学習ソフトウェアは、データの入力および出力の対象となる「通常レイヤー」として、コードウィンドウX1(第1領域)および実行ウィンドウX2(第2領域)を備える。また、コードウィンドウX1および実行ウィンドウX2に対する入力支援のための「機能レイヤー」として機能判定領域M1およびジェスチャー領域G1を含む。2つの機能レイヤーはいずれも不可視である。 前面( 上位)から、機能判定領域M1、ジェスチャー領域G1、コードウィンドウX1および実行ウィンドウX2の4つのレイヤーが並ぶ。コードウィンドウX1と実行ウィンドウX2は学習ソフトウェアの作業領域となるウィンドウである。通常、コードウィンドウX1がフォーカスウィンドウとなる。機能判定領域M1は常時有効化されており、ジェスチャー領域G1は通常無効化されている。
【0019】
機能判定領域M1は 前面に位置する。ユーザは、機能判定領域M1の一部に形成される選択領域にアクセスすることで実行ウィンドウX2をフォーカスウィンドウに変更できる(詳細は後述)。また、ユーザは、機能判定領域M1の一部に形成される別の選択領域にアクセスすることでジェスチャー領域G1を有効化できる。以下においては、コードウィンドウX1がフォーカスウィンドウとなる状態を「通常モード」、コードウィンドウX1の下のレイヤーに位置しているために、その表示領域が阻まれている実行ウィンドウX2がフォーカスウィンドウとなる状態を「貫通モード(特殊モード)」とよぶ。また、ジェスチャー領域G1が有効化された状態を「ジェスチャーモード」とよぶ。学習ソフトウェアのモードはこの3種類であり互いに排他的である。
【0020】
ジェスチャー領域G1は機能判定領域M1の背面に位置する。ジェスチャー領域G1は不可視であり、通常は有効化されていない。後述の方法によりジェスチャー領域G1が有効化されたとき、ユーザは、モニタ画面102全体をつかってさまざまなジェスチャー入力をすることができる。ジェスチャー入力の詳細は
図17に関連して後述する。
【0021】
コードウィンドウX1は、半透明表示され、コードを書くための画面(第1画像)を提供する。ここでいう半透明表示とは、コードウィンドウX1の画像を視認可能であり、かつ、コードウィンドウX1を透過して背面の画像も視認可能な程度にコードウィンドウX1の透明度を調整して表示することをいう。コードウィンドウX1はジェスチャー領域G1の背面に位置するが、通常レイヤーの中では 前面である。(コードウィンドウX1および実行ウィンドウX2が共に表示されているときの)通常モードまたはジェスチャーモードにおいては、コードウィンドウX1がフォーカスウィンドウとなる。
【0022】
実行ウィンドウX2は、一般的なウィンドウと同様、不透明表示(通常表示)される。実行ウィンドウX2はコードウィンドウX1において作成されたプログラムの実行画面(第2画像)を提供する。実行ウィンドウX2はコードウィンドウX1の背面に位置する。コードウィンドウX1は半透明であるため、ユーザはコードウィンドウX1だけでなく、その背面にある実行ウィンドウX2も同時に視認できる。貫通モードに変更されたとき、または、実行ウィンドウX2より手前の視認可能レイヤーであるウィンドウX1が出現していないとき、実行ウィンドウX2は対象化、すなわち、フォーカスウィンドウとされる。
【0023】
まとめると、以下の通りである。1.機能レイヤー:不可視1-1.機能判定領域M1:常時有効。モード変更のための入力を受け付ける。1-2.ジェスチャー領域G1:通常モードおよび貫通モードでは無効であり、機能判定領域M1により有効化される(ジェスチャーモード)。ジェスチャー入力を受け付ける。2.通常レイヤー:可視2-1.コードウィンドウX1:半透明表示され、通常モードにおいて対象化されている。後述するように一時的に完全透明化(不可視化)されることもある。2-2.実行ウィンドウX2:不透明表示され、貫通モードにおいて対象化される。
【0024】
コードウィンドウX1および実行ウィンドウX2の表示順序、いいかえれば、レイヤー間の位置関係は入れ替え可能としてもよいが、以下においては特に断らない限り、機能判定領域M1、ジェスチャー領域G1、コードウィンドウX1および実行ウィンドウX2の表示順序(前後関係)は入れ替わらないものとして説明する。
また、コードウィンドウX1および実行ウィンドウX2を閉じることは可能であるが、以下においては特に断らない限り、コードウィンドウX1および実行ウィンドウX2は閉じられず、かつ、通常モードにおいてはいずれも可視であるものとして説明する。
【0025】
図3は、タブレット端末100のハードウェア構成図である。
タブレット端末100は、コンピュータプログラムを格納する不揮発性メモリとしてのストレージ312、プログラムおよびデータを展開する揮発性のメモリ304、レジスタ、演算器、命令デコーダ等を内蔵し、メモリ304からプログラムを読み出して実行するプロセッサ300(CPU:Central Processing Unit)等を含む。プロセッサ300は、比較的高速な第1バス302と接続される。第1バス302には、メモリ304のほかNIC(Network Interface Card)が接続される。第1バス302には、このほか、GPU(Graphics Processing Unit)等の他のデバイスが接続されてもよい。
【0026】
第1バス302は、ブリッジ308を介して比較的低速な第2バス310と接続される。第2バス310には、ストレージ312のほか、モニタ画面102あるいはスピーカなどの出力デバイス316が接続される。また、第2バス310には、マウスやキーボードなどの入力デバイス314、プリンタなどの周辺機器318が接続されてもよい。
【0027】
図4は、タブレット端末100の機能ブロック図である。
上述のように、タブレット端末100の各構成要素は、CPUおよび各種コプロセッサ(co-processor)などの演算器、メモリやストレージといった記憶装置、それらを連結する有線または無線の通信線を含むハードウェアと、記憶装置に格納され、演算器に処理命令を供給するソフトウェアによって実現される。コンピュータプログラムは、デバイスドライバ、オペレーティングシステム、それらの上位層に位置する各種アプリケーションプログラム、また、これらのプログラムに共通機能を提供するライブラリによって構成されてもよい。以下に説明する各ブロックは、ハードウェア単位の構成ではなく、機能単位のブロックを示している。
【0028】
タブレット端末100は、ユーザインタフェース処理部104、データ処理部106、通信部126およびデータ格納部108を含む。
ユーザインタフェース処理部104は、タッチパネルを介してユーザからの操作を受け付けるほか、画像表示や音声出力など、ユーザインタフェースに関する処理を担当する。通信部126は、インターネットを介して他の装置との通信処理を担当する。データ格納部108は各種データを格納する。データ処理部106は、ユーザインタフェース処理部104や通信部126により取得されたデータ、データ格納部108に格納されているデータに基づいて各種処理を実行する。データ処理部106は、ユーザインタフェース処理部104、通信部126およびデータ格納部108のインタフェースとしても機能する。
【0029】
ユーザインタフェース処理部104は、ユーザからの入力を受け付ける操作検出部110と、ユーザに対して画像や音声等の各種情報を出力する出力部112を含む。操作検出部110は、機能入力部114、ジェスチャー入力部116およびデータ入力部118を含む。機能入力部114は、機能判定領域M1に対する所定の入力である機能選択入力(第1操作)を検出する。機能選択入力とは、有効化、対象化等、ウィンドウの内容そのものではなくウィンドウ自体の機能または状態を制御するための入力であるが詳細は
図5等に関連して後述する。ジェスチャー入力部116は、ジェスチャー領域G1に対する所定の入力であるジェスチャー入力を検出する。データ入力部118は、コードウィンドウX1または実行ウィンドウX2に対するデータ入力(第2操作)を検出する。
【0030】
データ格納部108は、学習ソフトウェアのほか、ユーザが作成するプログラムを格納する。
【0031】
データ処理部106は、コードウィンドウX1および実行ウィンドウX2の表示を制御する表示制御部120を含む。
表示制御部120は、表示更新部122およびレイヤー管理部124を含む。表示更新部122は、コードウィンドウX1および実行ウィンドウX2における画像生成および更新を管理する。レイヤー管理部124は、各ウィンドウのレイヤー、位置、サイズを管理する。また、レイヤー管理部124は、通常モード、特殊モード、ジェスチャーモードに関するモードの管理も行う。
【0032】
図5は、機能判定領域M1の構成を説明するための外観図である。
不可視の機能判定領域M1には、選択領域128L1、選択領域128R1、選択領域128L2、選択領域128R2(以下、まとめていうときには「選択領域166」とよぶ)がモニタ画面102の四隅に設定されている。
【0033】
ユーザが選択領域128L1または選択領域128R1にタッチしたとき、いいかえれば、モニタ画面102の左下隅または右下隅をタッチしたとき、レイヤー管理部124は通常モードから貫通モード(特殊モード)に移行させる。このとき、背面側の実行ウィンドウX2が対象化される。以下、選択領域166のうち、実行ウィンドウX2を対象化させるための選択領域128L1および選択領域128R1の2つをまとめていうときには「対象化選択領域162」とよぶ。
【0034】
ユーザが対象化選択領域162のタッチをやめると(デタッチ)、レイヤー管理部124は貫通モードから通常モードに戻す。このとき、前面側のコードウィンドウX1が再び対象化される。
【0035】
ユーザが選択領域128L2または選択領域128R2をタッチしたとき、いいかえれば、モニタ画面102の左上隅または右上隅をタッチしたとき、レイヤー管理部124は通常モードからジェスチャーモードに移行させる。レイヤー管理部124は、ジェスチャー領域G1を有効化し、ジェスチャー入力が可能となる。以下、選択領域166のうち、ジェスチャー領域G1を有効化するための選択領域128L2および選択領域128R2をまとめていうときには「ジェスチャー有効化領域164」とよぶ。
【0036】
ユーザがジェスチャー有効化領域164のタッチをやめると(デタッチ)、レイヤー管理部124はジェスチャーモードから通常モードに移行させる。このとき、ジェスチャー領域G1は無効化される。4つの選択領域166のいずれかをタッチすることを「機能選択入力」とよぶ。
【0037】
本実施形態におけるデータ入力は通常モードにおける「通常入力」と貫通モードにおける「貫通入力(特殊入力)」の2種類がある。データ入力(主として、文字または画像の入力)は、ウィンドウ領域内への指またはスタイラスによるタッチ入力により可能であるが、マウス等の他の入力デバイスを利用することも可能である。通常モードにおいては、実行ウィンドウX2よりも前面にあるコードウィンドウX1がフォーカスウィンドウであり、ユーザはコードウィンドウX1を対象としてデータ入力を行う。これを「通常入力」とよぶ。
【0038】
ユーザが対象化選択領域162をタッチしているときには、貫通モードとなり、背面側にある実行ウィンドウX2がフォーカスウィンドウとなり、ユーザは実行ウィンドウX2を対象としてデータ入力を行う。これを「貫通入力」とよぶ。
【0039】
貫通入力のとき、レイヤー管理部124はコードウィンドウX1と実行ウィンドウX2の前後関係を変更しない。いいかえれば、貫通入力においては、コードウィンドウX1が前面にあるにも関わらず、あたかも、コードウィンドウX1を突き抜けて背面にある実行ウィンドウX2を直接触っているかのような特有の操作感が提供される。この操作感については次の
図6,7に関連して更に説明する。
【0040】
図6は、通常入力を説明するための模式図である。
上述したように、ユーザから視認可能なレイヤーは、コードウィンドウX1および実行ウィンドウX2の2つ通常レイヤーである。コードウィンドウX1は前面側、実行ウィンドウX2は背面側にある。コードウィンドウX1は半透明であるため、ユーザはコードウィンドウX1だけでなく、背面にある実行ウィンドウX2も同時に視認できる。したがって、ユーザは、プログラムコードを書いたり確かめたりしながら、同時に、プログラムの実行状態を確認できる。
【0041】
通常モードにおいては、コードウィンドウX1がフォーカスウィンドウとなっている。ユーザがモニタ画面102をタッチしたときにはデータ入力部118はこれをコードウィンドウX1(フォーカスウィンドウ)に対するデータ入力(通常入力)として判定する。ユーザは、タッチ操作によりコードウィンドウX1を対象としてデータ入力を行う。表示更新部122は入力結果にしたがってコードウィンドウX1内にて入力されたデータを表示させ、あるいは、カーソルを移動させる。また、コードウィンドウの移動または文字領域のスクロールを行うこともできる。
【0042】
図7は、貫通入力を説明するための模式図である。
ユーザが対象化選択領域162(選択領域128L1または選択領域128R1)をタッチしているとき、通常モードから貫通モードに移行する。レイヤー管理部124はコードウィンドウX1ではなく実行ウィンドウX2をフォーカスウィンドウに設定する。この状態で、ユーザがモニタ画面102をタッチしたときには、データ入力部118はこれを実行ウィンドウX2に対するデータ入力(貫通入力)と判定する。ユーザは、タッチ操作により実行ウィンドウX2を対象としてデータ入力を行う。表示更新部122は入力結果にしたがって実行ウィンドウX2に画像を描画する。また、表示更新部122は、実行ウィンドウX2への画像入力の結果に対応してコードウィンドウX1を更新する。
【0043】
貫通モードにおいては、ユーザは、あたかも前面にあるコードウィンドウX1を自分の指が突き抜けて、背面にある実行ウィンドウX2を操作しているかのような感覚をもつ。なお、貫通モードのときには、表示更新部122はコードウィンドウX1を一時的に非表示化(完全透明化)してもよい。この場合には、ユーザは実行ウィンドウX2だけを見ながらデータ入力ができる。
以下においては、貫通モードにおいては、前面のコードウィンドウX1を非表示にするものとして説明する。
【0044】
図8は、対象化選択領域162へのタッチが検出されたときの処理過程を示すフローチャートである。
図8に示す処理は、モニタ画面102のうち対象化選択領域162へのタッチが検出されたときに実行される。まず、機能入力部114は、モニタ画面102へのタッチが検出されたとき、対象化選択領域162(選択領域128L1,選択領域128R1)(モニタ画面102の左下隅または右下隅)へのタッチであるか否かを判定する。対象化選択領域162へのタッチであれば、レイヤー管理部124は、貫通モードに設定する(S10)。このとき、実行ウィンドウX2がフォーカスウィンドウとなる。表示更新部122はコードウィンドウX1を非表示に設定する(S12)。すなわち、対象化選択領域162がタッチされて貫通モードに移行するとき、実行ウィンドウX2がフォーカスウィンドウとなり、実行ウィンドウX2の前面側にあるコードウィンドウX1は完全透明化(非表示化)される。コードウィンドウX1は不可視となるが、クローズされるわけでもない。また、コードウィンドウX1が実行ウィンドウX2の背面にレイヤー変更されるわけでもない。
なお、ジェスチャー有効化領域164へのタッチが検出されたときの処理については、
図17に関連して後述する。
【0045】
図9は、選択領域166以外へのタッチが検出されたときの処理過程を示すフローチャートである。
選択領域166以外へのタッチが検出されたとき、通常モードであれば(S20:通常モード)、データ入力部118はタッチポイントがコードウィンドウX1と実行ウィンドウX2が重なる領域(以下、「重畳領域」とよぶ)であるか否かを判定する(S22)。重畳領域へのタッチであれば(S22のY)、データ入力部118はコードウィンドウX1を対象としてデータ入力を受け付ける(S24)。すなわち、コードウィンドウX1と実行ウィンドウX2の重畳領域がタッチされたときであって、コードウィンドウX1(前面側)がフォーカスウィンドウであるときには通常入力がなされる。
【0046】
タッチされたポイントが重畳領域でないときには(S22のN)、データ入力部118はコードウィンドウX1または実行ウィンドウX2を対象としてデータ入力を受け付ける(S26)。このとき、レイヤー管理部124はタッチ操作を受け付けるウィンドウを一時的にフォーカスウィンドウとして扱う。たとえば、タッチポイントにコードウィンドウX1のみがあるときにはコードウィンドウX1への通常入力となり、実行ウィンドウX2のみがあるときには実行ウィンドウX2への通常入力として扱われる。いずれの場合にも、コードウィンドウX1が前面、実行ウィンドウX2が背面というレイヤーの前後関係は維持される。
【0047】
タッチが検出されたとき、貫通モードであれば(S20:貫通モード)、データ入力部118はタッチポイントが重畳領域であるか否かを判定する(S28)。重畳領域へのタッチであれば(S28のY)、データ入力部118は実行ウィンドウX2を対象としてデータ入力を受け付ける(S30)。すなわち、コードウィンドウX1と実行ウィンドウX2の重畳領域がタッチされたときであって、実行ウィンドウX2(背面側)がフォーカスウィンドウであるときには貫通入力がなされる。
【0048】
タッチされたポイントが重畳領域でないときには(S28のN)、データ入力部118はコードウィンドウX1または実行ウィンドウX2のうちタッチされたウィンドウを対象としてデータ入力を受け付ける(S32)。このときも、レイヤー管理部124はタッチ操作を受け付けるウィンドウを一時的にフォーカスウィンドウとして扱う。
【0049】
図10は、デタッチが検出されたときの処理過程を示すフローチャートである。
図10に示す処理は、モニタ画面102からのデタッチ(タッチオフ)が検出されたときに実行される。まず、貫通モード中のデタッチの場合(S40のY)、表示更新部122はS12(
図8)において非表示化されていたコードウィンドウX1を再表示させる(S42)。このとき、コードウィンドウX1は通常の半透明表示となる。レイヤー管理部124は、通常モードに設定する(S44)。コードウィンドウX1が対象化される。
【0050】
表示更新部122はデータ入力にしたがって、非フォーカスウィンドウのデータ更新を行う。たとえば、コードウィンドウX1へのデータ入力がなされた場合には、表示更新部122はコードウィンドウX1への入力内容に応じて実行ウィンドウX2の画像を変化させる。また、実行ウィンドウX2へのデータ入力がなされた場合には、表示更新部122は実行ウィンドウX2への入力内容に応じてコードウィンドウX1の描画像を変化させる。データ更新については
図12以降に関連して詳述する。
【0051】
通常モード中のデタッチの場合(S40のN)、処理はS46に移行する。
【0052】
図11は、データ入力対象の切り替えを説明するための外観図である。
ユーザは、一般的なマルチウィンドウと同様、コードウィンドウX1等の位置とサイズを自由に変更できる。
図11においては、前面側のコードウィンドウX1は右下に移動している。一方、背面側の実行ウィンドウX2はモニタ画面102全面に表示されている。
【0053】
重畳領域132は、コードウィンドウX1(前面)によって実行ウィンドウX2(背面)が隠される領域を示す。露出領域134は、前面のコードウィンドウX1が右下に移動したことによって背面の実行ウィンドウX2が露出する領域を示す。ユーザが、露出領域134の点P1をタッチしたときには、貫通モードであるか否かに関わらず、背面にあって露出している実行ウィンドウX2がフォーカスウィンドウ(データ入力の対象となるウィンドウ)となる。レイヤー管理部124は、露出領域134がタッチされたときには一時的に実行ウィンドウX2をフォーカスウィンドウとして扱う。
【0054】
ユーザが、重畳領域132の点P2をタッチしたときには、上述したように、貫通モードまたは通常モードのいずれであるかに応じて、コードウィンドウX1または実行ウィンドウX2のいずれかがフォーカスウィンドウ(データ入力の対象となるウィンドウ)となる。なお、実行ウィンドウX2が移動され、コードウィンドウX1のみが存在する領域にタッチがなされたときには、コードウィンドウX1がデータ入力の対象となる。
【0055】
次に、ユーザインタフェースの具体例として、貫通入力と通常入力を使い分けながら、円を描くコードを作成する過程について
図12~
図15に関連して説明する。
【0056】
図12は、実行ウィンドウX2への貫通入力時の状態を示す第1画面図である。
ユーザは、右手親指で選択領域128L1(対象化選択領域162)をタッチしつつ、右手中指でモニタ画面102をタッチしている。選択領域128L1のタッチにより貫通モードとなる。選択領域128L1がタッチされたとき、表示更新部122はコードウィンドウX1を非表示化(完全透明化)する。データ入力部118は、コードウィンドウX1への貫通入力として座標(849,581)へのタッチを検出する。データ入力部118は、この座標P3へのタッチを実行ウィンドウX2への打点操作として検出する。
【0057】
図13は、コードウィンドウX1への通常入力時の状態を示す第2画面図である。
ユーザが、右手親指を選択領域128L1から離すと(デタッチ)、表示更新部122はコードウィンドウX1を再表示させる。コードウィンドウX1は半透明表示されるため、ユーザは、コードウィンドウX1を通して背面にある実行ウィンドウX2の打点P3を視認できる。表示更新部122は、直前の打点操作に対応して、座標P3(849,581)の付近にコードメニュー136を表示させる。コードメニュー136は、コードウィンドウX1の一部であり、コードを作成するための複数のボタンを含む。
【0058】
コードメニュー136のボタンにより、さまざまなコードを作成できる。ユーザはここで円を描くコードを実行したいとする。ユーザは、まず、始点ボタン135をタッチすることで座標P3をいったん登録する。また、同様にして、実行ウィンドウX2において2点目の座標P4を貫通入力によりタッチする。以上の入力をしたあと円描画ボタン138をタッチする。このとき、座標P3が円の中心座標となり、座標P3から座標P4までの距離が円の半径となる。
【0059】
図14は、コードウィンドウX1への通常入力時の状態を示す第3の画面図である。
円描画138のボタンで入力されるプログラムコードの描画色は、ユーザは、あらかじめ色選択パレット(不図示)から選択してもよいし、初期設定としてあらかじめ指定されている色であってもよい。ここでは、「半径:100」、「色:赤」を指定したとする。表示更新部122は、コードウィンドウX1にコード「drawcircle(849,581,100,color.r ed)」を表示させる。この「drawcircle」は円の描画を指示するためのコードであり、円描画ボタン138にあらかじめ対応づけられている。第1引数は中心点のX座標、第2引数は中心点のY座標を示す。本実施形態においては、
図12の打点P3の座標(849,581)がそのまま中心点の座標として代入される。第3引数「100」は半径を示す。第4引数「color.red」は、円を「赤色」で描くことを示す。このように、ユーザは、コードメニュー136からボタンを選択することでコードを作成できる。なお、ユーザは、コード「drawcircle」をコードウィンドウX1に直接入力することもできる。
【0060】
図15は、実行ウィンドウX2に円が描画されたときの状態を示す第4の画面図である。コード「drawcircle」が入力されると、表示制御部120は実行ウィンドウX2に指定された円140を描画する。円140は、コード「drawcircle(849,581,100,color.red)」によって指示されたように、点P3(849,581)を中心とする半径100の赤い円である。
図15では、コードウィンドウX1を非表示としているが、コードウィンドウX1は半透明表示のままでもよい。このように、ユーザは、コードウィンドウX1と実行ウィンドウX2を視認しつつ、打点P3の設定(実行ウィンドウX2への貫通入力)、打点P3に基づくコードの入力(コードウィンドウX1への通常入力)を行ったあと、コードの実行結果を実行ウィンドウX2において確認できる。このような制御方法によれば、コードとその実行結果のつながりを確認しやすいユーザインタフェースを提供できる。
【0061】
ユーザは「円を描くプログラムを作りたい」と考えたとする。このとき、円の中心座標をコード「drawcircle」の引数として直接入力してもよい。しかし、プログラミング初心者にとってはコードごとにどのような引数を入力すればいいのか調べる作業は負担が大きい。そこで、本実施形態においては、プログラムの実行結果を示す実行ウィンドウX2に対して「円の中心にしたいところ(点P)」をタッチにより直接指定させている。実行ウィンドウX2に点P3、P4を打点したあとは、円描画ボタン138などの支援ツールを提供しながら、ユーザに円描画ボタン138を選ばせる。これにより、コード「drawcirc le(849,581,100,color.red)」がコードウィンドウX1に表示される。
【0062】
ユーザは、コード「drawcircle(849,581,100,color.red)」が半自動的に生成されることにより、円を描くためには「drawcircle」というコード(命令)を入力すればよく、そのために引数として中心点の座標、半径、色彩を指定すればいいというプログラミング常識を感覚的に理解できる。コード「drawcircle」を入力したあと、このコードにしたがって実行ウィンドウX2に実際に円が描かれるので、ユーザはコードによってイメージしたとおりの円が描かれることを確認できる。コードウィンドウX1および実行ウィンドウX2の双方の視認性と入力容易性を維持することにより、ユーザに双方のウィンドウの連動性を意識させやすくなる。このような制御方法により、ユーザに「コード」と「実行結果」の関係、いいかえれば、「どのようにコードを書くとどのようなアウトプットになるのか」をユーザに認識させることができる。
【0063】
図16は、機能入力の説明を表示したときの画面図である。
ユーザは、対象化選択領域162(選択領域128L1,128R1)をタッチすることで貫通モードを設定し、ジェスチャー有効化領域164(選択領域128L2,128R2)をタッチすることでジェスチャーモードを設定する。ユーザが選択領域128L1をタッチし続けたまま、データ入力をすることなく所定時間、たとえば、5秒間が経過したとき、表示更新部122は選択領域128L1によってアクティブとなる貫通入力機能を説明するための説明領域142を表示させる。選択領域128R1についても同様である。ジェスチャー有効化領域164(選択領域128L2,128R2)へのタッチが継続したときには、表示更新部122はジェスチャー入力に関する説明領域142を表示する。
【0064】
選択領域128の数あるいは種類が多い場合、ユーザは、モニタ画面102の4隅に不可視の選択領域128が存在することは認識しつつも、どの選択領域128が何の機能を提供するのか忘れてしまう、あるいは、理解しづらくなることも考えられる。モニタ画面102の端部にある不可視の選択領域128をしばらくタッチしつづけることで説明領域142が表示されるため、ユーザは選択領域128等の機能を簡易に確認しやすくなる。
【0065】
選択領域166をタッチしたとき、表示更新部122はすぐに説明領域142を表示させてもよい。ただし、この場合、ユーザがモニタ画面102の選択領域166を触るごとに説明領域142が表示されてしまうため、選択領域166を所定時間継続してタッチしたことを条件として説明領域142を表示させる方がより好ましいと考えられる。また、ユーザが、選択領域166をタッチした状態で別の入力をしたことを条件として説明領域142を表示させてもよい。たとえば、ユーザが選択領域128L1をタッチしたあと所定単語、たとえば、「説明」と発話したときに説明領域142を表示させるとしてもよい。
【0066】
図17は、ジェスチャー入力をするときの画面図である。
ユーザは、ジェスチャー有効化領域164(選択領域128L2,128R2)をタッチすることでジェスチャー領域G1を有効化できる。
図17においては、ユーザは左手の親指で選択領域128L2をタッチしている。このとき、レイヤー管理部124はジェスチャー領域G1を有効化し、通常モードからジェスチャーモードに移行させる。ジェスチャー領域G1は有効化しても不可視のままである。表示更新部122はジェスチャーモードであることをユーザが理解しやすいように画面全体の色彩を変化させるなど表示態様を変化させてもよい。あるいは、ジェスチャーモード中であることを示すアイコンをモニタ画面102の所定領域に表示させてもよい。ジェスチャー入力部116は、ジェスチャーモード中の入力はすべてジェスチャー入力として検出する。
【0067】
ジェスチャー入力部116は、モニタ画面102におけるユーザの指の動きがあらかじめ登録されているいずれかのジェスチャーパターンに該当するか否かを判定する。ジェスチャーパターンに該当するときには、ジェスチャーパターンに応じた処理を、コードウィンドウX1(フォーカスウィンドウ)を対象として実行する。たとえば、
図17に示すように、ユーザが二本の指を同時に上下スライドさせると、表示更新部122はコードウィンドウX1を上下にスクロールさせる。表示更新部122は、ジェスチャー入力により、コードウィンドウX1を通常より高速に上下にスクロールできる、としてもよい。
【0068】
このほかにも、以下のようなジェスチャーパターンが登録されている。・ユーザが一本指でモニタ画面102をタップしたときには、コードウィンドウX1のタップされた箇所においてコンテキストメニューを表示させることができる。コンテキストメニューは、一般的にはマウスの右クリックのときに表示されるメニューであり、各種操作オプションをリスト表示させるものである。ユーザは、コンテキストメニューから、実行したいメニューを選ぶことができる。・ユーザが二本指でモニタ画面102をダブルタップしたときには、表示更新部122はコードウィンドウX1を拡大または縮小表示する。・ユーザが二本指でモニタ画面102をピンチ操作したときにも、表示更新部122はコードウィンドウX1を拡大または縮小表示する。・ユーザが二本指を左右にスライドさせたときには、表示更新部122はコードウィンドウX1のページを変更する。・ユーザが三本指でモニタ画面102をダブルタップしたときには、表示更新部122はコードウィンドウX1を 大化する。
以上は例示であり、これ以外にも、さまざまなジェスチャーパターンが登録されてもよい。たとえば、使用する指の本数あるいは組合せに応じて、あるいは、円形移動、線形移動、多角形型移動(例:N字型移動、W字型移動)などにおうじて多彩なジェスチャーパターンを定義可能である。
【0069】
ジェスチャーモードに設定すれば、モニタ画面102全体をつかってさまざまなジェスチャー入力が可能となる。ユーザは、タブレット端末100を支える左手で選択領域128L2をタッチしつつ、右手でモニタ画面102全体に大きくジェスチャーを指で描くことにより、コードウィンドウX1に対してさまざまな操作を施すことができる。
【0070】
以上、実施形態に基づいてタブレット端末100を説明した。本実施形態のタブレット端末100によれば、コードウィンドウX1および実行ウィンドウX2が重畳表示されているとき、コードウィンドウX1および実行ウィンドウX2の前後関係を入れ替える前面化操作をしなくても、背面側の実行ウィンドウX2にデータ入力できる。
【0071】
従来、コードウィンドウX1を前面、実行ウィンドウX2を背面に階層表示しているとき、実行ウィンドウX2にデータ入力するためには実行ウィンドウX2を前面化する操作が必要だった。前面化操作により、実行ウィンドウX2が前面に移行し、コードウィンドウX1が背面に移行する。前面化のためには、タッチパネルやマウスなどのデバイスを「押して離す」という作業が必要だった。マウスであれば、コードウィンドウX1の「閉じるボタン」あるいは「縮小ボタン」をクリックするという操作が必要である。この場合、マウスポインターを「閉じるボタン」等の位置に移動させ、マウスの左ボタンを押し、手を離すという一連の作業が必要となる。前面化操作に際して、ユーザは「前面にある邪魔なコードウィンドウX1を排除することで背面にある実行ウィンドウX2を前面に移動させる」というレイヤー入替作業を意識する。前面化操作によりウィンドウのレイヤーを入れ替えるという点においては、ショートカットキーによる作業の場合も同様である。
【0072】
一方、本実施形態におけるタブレット端末100においては、ユーザは対象化選択領域162をタッチするだけで実行ウィンドウX2を対象化できる。ユーザは、たとえば、タブレット端末100を握る左手で対象化選択領域162を触りつつ、右手で背面の実行ウィンドウX2にデータ入力できる。コードウィンドウX1にデータ入力したいときには対象化選択領域162から指を離すだけでよい。左手でフォーカスウィンドウを選びつつ、右手でデータ入力する方式のため、ユーザにとってはフォーカスウィンドウの変更時にも中断の感覚をもたずに作業を継続しやすい。特に、コードウィンドウX1および実行ウィンドウX2を頻繁に行き来しながら作業する場合、ユーザは空いている手で対象化選択領域162のタッチ・デタッチを繰り返すだけでよいのでフォーカスウィンドウの変更にともなう操作性が格段に向上する。
【0073】
また、フォーカスウィンドウの変更に際し、コードウィンドウX1および実行ウィンドウX2の前後関係は維持されているため、ユーザはレイヤー構造の変化を意識する必要がない。いいかえれば、多数のウィンドウがあるときにフォーカスウィンドウを次々に切り替えたとしても「どのウィンドウがどのレイヤーに移動しているか」を気にする必要がない。本実施形態においては、更に、対象化選択領域162がタッチされたときにコードウィンドウX1を非表示にすることで実行ウィンドウX2(フォーカスウィンドウ)の視認性を高めている。
【0074】
通常モードにおいては、コードウィンドウX1は半透明表示されるため、コードウィンドウX1および実行ウィンドウX2を同時に視認できる。コードウィンドウX1および実行ウィンドウX2を並置させたり、実行ウィンドウX2を確認するためにコードウィンドウX1を移動させたり、閉じる必要がない。
【0075】
ユーザが選択領域166等をタッチしつづけるとき、説明領域142が表示される。機能判定領域M1は見えなくても、ユーザはモニタ画面102の端部付近をタッチすることで機能選択入力ができることを理解している。モニタ画面102の端部をタッチしつづければ説明領域142が表示されるので、ユーザはどこをタッチすればどのような機能選択入力ができるのかを簡単に理解できる。
【0076】
その他のユーザ補助として、表示更新部122は、利用可能な選択領域あるいは各選択領域の役割を示す情報を表示してもよい。この情報表示は、選択領域それぞれが光り、その機能名とともに表示されてもよい。たとえば、ユーザがある機能選択入力をしたあと次の入力を行うことなく一定時間が経過したとき、いいかえれば、説明領域142の出現から更に所定時間が経過したとき、表示更新部122はこのような補助機能を有効化してもよい。
【0077】
ユーザは、ジェスチャー有効化領域164(選択領域128L2,128R2)をタッチすることでジェスチャー領域G1を有効化できる。ジェスチャー領域G1が有効化されると、ユーザはモニタ画面102いっぱいに指を動かしながらさまざまなジェスチャー入力が可能となる。モニタ画面102を大きくつかってジェスチャー入力ができるため、モニタ画面102が小さいときでも高い操作性を実現できる。また、ジェスチャー入力とデータ入力がジェスチャー有効化領域164のタッチ・デタッチによって切り替えられるため、ジェスチャー入力をしているときに誤ってデータ入力がなされることがない。同様にして、データ入力のための操作をジェスチャー入力と誤認識されることがない。
【0078】
以上のように、本実施形態によれば、たとえば、右利きのユーザであれば、右利きによってデータ入力作業を行い、空いている左手をつかってモードを適宜変更できる。
【0079】
なお、本発明は上記実施形態や変形例に限定されるものではなく、要旨を逸脱しない範囲で構成要素を変形して具体化することができる。上記実施形態や変形例に開示されている複数の構成要素を適宜組み合わせることにより種々の発明を形成してもよい。また、上記実施形態や変形例に示される全構成要素からいくつかの構成要素を削除してもよい。
【0080】
1台のタブレット端末100により学習ソフトウェアが実行されるとして説明したが、学習ソフトウェアあるいはタブレット端末100の機能の一部はサーバなどの他の装置により実現されてもよい。
【0081】
[変形例]
図18は、3以上のウィンドウのフォーカスコントロールを説明するための概念図である。
図18においては、機能判定領域M1、ジェスチャー領域G1のほかに4つのウィンドウW1~W4により6つのレイヤーが構成される。機能判定領域M1の左上部にはジェスチャー有効化領域164が設定され、下辺部にはW1選択領域150、W2選択領域152、W3選択領域154および選W4選択領域156の4つの対象化選択領域162が設定される。ジェスチャー有効化領域164をタッチしたときにはジェスチャー領域G1が有効化される。
【0082】
W1選択領域150にはウィンドウW1、W2選択領域152にはウィンドウW2、W3選択領域154にはウィンドウW3、W4選択領域156にはウィンドウW4が対応づけられる。ユーザは、W1選択領域150をタッチしたときにはウィンドウW1をフォーカスウィンドウに設定できる。同様にして、ユーザはW2選択領域152をタッチしたときにはウィンドウW2をフォーカスウィンドウに設定できる。W3選択領域154、W4選択領域156についても同様である。
【0083】
レイヤー管理部124は、ターゲットウィンドウが変更されてもレイヤーの変更を行わない。このため、ウィンドウW1~W4の前後関係は維持される。たとえば、ウィンドウW1はウェブ画面、ウィンドウW2は文章作成ソフトウェアによる編集画面、ウィンドウW3は図形編集ソフトウェアの編集画面、ウィンドウW4は表計算ソフトウェアの編集画面であるとする。ユーザは、4つのソフトウェアを随時切り替えながら作業をする場合には、対象化選択領域162によってフォーカスウィンドウを随時切り替えればよい。レイヤーの前後関係が変更されないため、複数のウィンドウがあるときでも所望のウィンドウがどのレイヤーにあるかを気にする必要がない。
【0084】
なお、ウィンドウW1~W4のうち、選択されたウィンドウが前面側にあるいずれかのウィンドウによってその一部または全部が遮蔽されていることを条件として、選択されたウィンドウをフォーカスウィンドウに設定するとしてもよい。いいかえれば、前面が遮蔽されていないときには機能選択入力によるフォーカス変更を無効として扱うとしてもよい。たとえば、W3選択領域154によりウィンドウW3が選択されたとする。前面側にあるウィンドウW1またはウィンドウW2によりウィンドウW3の一部が遮蔽されているときにはレイヤー管理部124はウィンドウW3をフォーカスウィンドウに設定する。一方、ウィンドウW1およびウィンドウW2の双方が閉じられているなどの理由によりウィンドウW3の前面が遮蔽されていないときには、W3選択領域154がタッチされてもウィンドウW3をフォーカスウィンドウに設定変更しないとしてもよい。
【0085】
本実施形態においては、コードウィンドウX1を半透明表示させ、コードウィンドウX1と実行ウィンドウX2を同時に視認できるとして説明した。変形例として、コードウィンドウX1を通常表示(不透明表示)させてもよい。
【0086】
本実施形態においては、選択領域166を機能判定領域M1(モニタ画面102)の四隅に配置するとして説明した。変形例として、複数の選択領域166を機能判定領域M1の左辺部分に配列してもよいし、底辺部分に配列してもよい。このほか、上辺、右辺など、選択領域166の配置は任意に設定可能である。
【0087】
本実施形態においては、学習ソフトウェアをタブレット端末100において実行するとして説明したが、この学習ソフトウェアは、スマートフォンやラップトップPCなどの他のモバイルコンピュータにおいて実行されてもよい。同様にして、デスクトップPCなどの据置型のコンピュータにおいて学習ソフトウェアを実行してもよい。
【0088】
本実施形態においては、通常モードではコードウィンドウX1をフォーカスウィンドウに設定するとして説明した。変形例として、通常モードでは背面側の実行ウィンドウX2をフォーカスウィンドウに設定し、特殊モードのときに前面側のコードウィンドウX1をフォーカスウィンドウに設定変更するとしてもよい。
【0089】
貫通モードへの変更は、対象化選択領域162へのタッチ以外の方法も考えられる。たとえば、マウスのダブルクリックや、キーボードにおける所定のキーが押されたときに貫通モードに変更してもよい。このほか、音声入力により貫通モードに変更してもよいし、ユーザがモニタ画面102の所定領域に視線を合わせたときに貫通モードに変更するとしてもよい。ペダルのような足用のデバイスをつかって貫通モードへの変更がなされてもよい。同様にして、タッチのほか、マウス、キーボード、音声等によりデータ入力がなされてもよい。
【0090】
本実施形態においては、対象化選択領域162のタッチが継続している期間だけ貫通モードに設定されるとして説明した。変形例として、対象化選択領域162がタッチされてから所定の有効期間、たとえば、3秒間は、レイヤー管理部124は貫通モードを継続させるとしてもよい。有効期間中に貫通入力がなされれば、有効期間は更に3秒間延長されるとしてもよい。無入力が3秒間続いたとき、レイヤー管理部124は、貫通モードから通常モードに戻すとしてもよい。
【0091】
本実施形態においては前面にあるコードウィンドウX1を半透明表示させるとして説明した。変形例として、表示更新部122は、コードウィンドウX1を通常表示(不透明表示)としてもよい。表示更新部122は、コードウィンドウX1と実行ウィンドウX2が重なることを条件として、コードウィンドウX1を半透明表示または透明表示に変更してもよい。あるいは、コードウィンドウX1と実行ウィンドウX2が重なるとき、表示更新部122はコードウィンドウX1の重畳領域のみを半透明表示または透明表示に設定してもよい。
【0092】
本実施形態においては、レイヤー管理部124は、コードウィンドウX1および実行ウィンドウX2の前後関係を入れ替えないとして説明した。変形例として、レイヤー管理部124は、コードウィンドウX1および実行ウィンドウX2の前後関係を条件付きで入れ替えてもよい。実行ウィンドウX2の露出領域、いいかえれば、実行ウィンドウX2のうちコードウィンドウX1によって遮蔽されていない領域を対象としてデータ入力操作がなされたときには、レイヤー管理部124は実行ウィンドウX2とコードウィンドウX1の前後関係を入れ替えるとしてもよい。たとえば、
図11の点P1(露出領域134)をタッチしたときには、レイヤー管理部124は実行ウィンドウX2をコードウィンドウX1の前面に表示させ、実行ウィンドウX2をフォーカスウィンドウに設定してもよい。
【0093】
貫通モードにおいて、ユーザが露出領域134の点P1をタッチしたときには、レイヤー管理部124はコードウィンドウX1と実行ウィンドウX2の前後関係をそのまま維持するとしてもよい。実行ウィンドウX2(背面)の露出領域134をタッチしたとき、貫通モードであれば前後関係を維持し、通常モードであれば実行ウィンドウX2を前面に移動させるとしてもよい。
【0094】
本実施形態においては、貫通モードが設定されるときには半透明のコードウィンドウX1を非表示化(完全透明化)するとして説明した。変形例として、コードウィンドウX1および実行ウィンドウX2はどちらも通常表示されてもよい。そして、貫通モードが設定されたときには、表示更新部122はコードウィンドウX1の透明度を上昇させることにより、実行ウィンドウX2(フォーカスウィンドウ)の視認性を高めてもよい。
【0095】
また、貫通モードに設定されたときには実行ウィンドウX2の透明度を低下させてもよい。たとえば、コードウィンドウX1および実行ウィンドウX2のどちらもが半透明表示されているとする。貫通モードが選択されたときには、フォーカスウィンドウとなる実行ウィンドウX2の透明度を低下させることにより、実行ウィンドウX2(フォーカスウィンドウ)の視認性を高めてもよい。
【0096】
図18に示したように3以上のウィンドウを備える場合も同様である。一例として、ウィンドウW1~W4をいずれも半透明表示しておく。ユーザが、ウィンドウW2を対象化したときには、ウィンドウW2の透明度を低下させれば、ユーザはウィンドウW2がフォーカスウィンドウであることを認識しやすくなる。このとき、前面にあるウィンドウW1の透明度を上昇させてもよい。
【0097】
背面側のウィンドウはボタン等の入力インタフェースを備えるウィンドウ、たとえば、ダイアログボックスやソフトウェアキーボードであってもよい。ユーザは、ダイアログボックスを操作したいときには対象化選択領域162(選択領域128L1,128R1)をタッチすればよい。このときには、背面にある操作卓としてのウィンドウを貫通入力により操作し、そのあとに、前面側にあるメインのウィンドウに戻って通常入力によりこれを操作してもよい。
【0098】
本実施形態においては対象化選択領域162をタッチすることによって貫通モードに移行し、その状態でデータ入力のための操作をするとして説明した。変形例として、データ入力のための操作をするときの設定に応じて、コードウィンドウX1および実行ウィンドウX2のいずれをフォーカスウィンドウとするかを動的に選択してもよい。
【0099】
一例として、タッチパネルは、タッチ圧を検出する機能を備えてもよい。この場合、レイヤー管理部124は、軽くタッチされたときはコードウィンドウX1をフォーカスウィンドウとして設定し、強くタッチされたときには実行ウィンドウX2をフォーカスウィンドウに設定してもよい。また、操作検出部110は、タッチされた指の面積により、どの指でタッチされているかを検出してもよい。たとえば、人差し指でタッチしたときにはコードウィンドウX1がフォーカスウィンドウとなり、小指でタッチしたときには実行ウィンドウX2がフォーカスウィンドウに設定されるとしてもよい。
【0100】
操作検出部110は、静電容量の違いにより、指とスタイラスペンのタッチを区別してもよい。この場合には、指でタッチされたときにはコードウィンドウX1がフォーカスウィンドウに設定され、スタイラスペンでタッチしたときには実行ウィンドウX2をフォーカスウィンドウに設定するとしてもよい。
【0101】
スタイラスペンを複数種類用意し、操作検出部110はそれぞれを識別してもよい。複数のスタイラスペンそれぞれにウィンドウを対応づける。この場合には、複数のスタイラスペンを使い分けることで複数のウィンドウに対して、データ入力が可能となる。たとえば、下塗りのウィンドウ、素描のウィンドウ、荒描きのためのウィンドウ、仕上げのウィンドウを重ねて油絵のように絵を描くソフトウェアが考えられる。この場合には、ユーザはスタイラスペン(筆の種類)を取替えながら、半透明の4つのウィンドウを同時に操作してもよい。そして、4つの半透明のウィンドウを重ねることで絵を完成させてもよい。
【0102】
貫通モード中にジェスチャー入力を可能としてもよい。たとえば、ユーザが対象化選択領域162のみをタッチしているときにはコードウィンドウX1がジェスチャー入力の対象となる。一方、ユーザが対象化選択領域162およびジェスチャー有効化領域164を同時にタッチしているときには、ユーザによるジェスチャー入力により実行ウィンドウX2を操作できるとしてもよい。
【0103】
学習ソフトウェア以外にも、本実施形態において示した貫通入力は利用可能である。たとえば、コンピュータゲームにおいて2種類のウィンドウを用意する。1つはゲームフィールドのウィンドウであり、その背面に装備を選ぶメニューウィンドウを用意する。この場合には、ユーザは、前面側のウィンドウを操作対象としつつ、必要に応じて貫通入力によりメニューウィンドウを操作してもよい。また、複数のゲームフィールドに対応して複数のウィンドウを用意してもよい。前面のゲームフィールドと背面のゲームフィールドにおいてゲームを同時進行させ、ユーザは2つのウィンドウのフォーカスを切り替えながらゲームを進めてもよい。
【0104】
SNS(Social Networking Service)ソフトウェアなどでは、チャット画面の入力中にポップアップ画面が表示され、チャット画面へのデータ入力がポップアップ画面への誤入力と認識されてしまうことがある。このための対策として、通常モードにおいては、チャット画面をフォーカスウィンドウとしてもよい。チャット画面の前面にポップアップ画面が表示されても、背面側のチャット画面がフォーカスウィンドウのままなのでチャット中にポップアップ画面への入力がなされるのを防ぐことができる。ユーザは、ポップアップ画面への入力に変更したいときには選択領域166にタッチしてポップアップ画面をフォーカスウィンドウに設定すればよい。この場合にも、ポップアップ画面とチャット画面の前後関係を維持される。このような制御方法によれば、ユーザはチャット画面に入力しているつもりなのに突然あらわれたポップアップ画面への入力と解釈されてしまうのを防ぐことができる。
【符号の説明】
【0105】
100 タブレット端末、102 モニタ画面、104 ユーザインタフェース処理部、106 データ処理部、108 データ格納部、110 操作検出部、112 出力部、114 機能入力部、116 ジェスチャー入力部、118 データ入力部、120 表示制御部、122 表示更新部、124 レイヤー管理部、126 通信部、128L1 選択領域、128L2 選択領域、128R1 選択領域、128R2 選択領域、132 重畳領域、134 露出領域、135 始点ボタン、136 コードメニュー、138 円描画ボタン、140 円、142 説明領域、150 W1選択領域、152 W2選択領域、154 W3選択領域、156 W4選択領域、162 対象化選択領域、164 ジェスチャー有効化領域、166 選択領域、300 プロセッサ、302 第1バス、304 メモリ、308 ブリッジ、310 第2バス、312 ストレージ、314 入力デバイス、316 出力デバイス、318 周辺機器、G1 ジェスチャー領域、M1 機能判定領域、X1 コードウィンドウ、X2 実行ウィンドウ