(58)【調査した分野】(Int.Cl.,DB名)
表示画面に表示された親要素上に子要素をドラッグ操作することによって新たな子要素を前記親要素上に配置するユーザインターフェースのレイアウト方法において、前記子要素のドラッグ操作によって前記親要素の領域内に当該子要素を位置させるのに応じて、前記親要素の領域内で、前記子要素を示すカーソルの位置が中心となるサイズに前記子要素を変形させ、ドラッグ操作の終了に応じて、その時点でのサイズで前記子要素が前記親要素上の指定方向に応じて配置されるレイアウト方法。
前記親要素の領域内に既に他の子要素が存在している場合、前記親要素の領域のうち当該子要素が存在していない領域のみを対象として、前記親要素上に配置する新たな子要素を変形させる請求項1に記載のレイアウト方法。
前記親要素の領域内に配置された子要素の領域内に前記カーソルの位置があるとき、当該子要素の領域のみを対象として、前記親要素上に配置する新たな子要素を変形させる請求項1又は2に記載のレイアウト方法。
【発明を実施するための形態】
【0009】
以下、本発明の各実施形態について図面と共に説明する。なお、本発明はこれらの実施形態に何ら限定されるものではなく、技術常識にしたがって特許請求の範囲の各請求項に記載の技術的思想を有し、その要旨を逸脱しない範囲内において、様々な態様で実施し得る。
【0011】
まず本実施形態にて実現されるユーザインターフェースのレイアウト方法を実現するための装置の一例を用いて説明を行う。ユーザは、装置のディスプレイ上の特定の情報の所定の領域である親領域内に要素を入れ込んでアプリケーションプログラムの配置を構成する。
【0012】
図1は、本実施形態のレイアウト方法の機能ブロックの一例を示す図である。同図において示されているように、本実施形態の「レイアウト装置」0100は、「ドラッグ操作受付部」0101と、「要素変形部」0102と、「要素配置部」0103と、からなる。
【0013】
なお、以下で詳しく説明するレイアウトを実現する装置の機能ブロックは、いずれもハードウェア又はソフトウェアとして実現され得る。コンピュータを用いるものを例にすれば、CPUやメインメモリ、GPU、画像メモリ、バス、二次記憶装置(ハードディスクや不揮発性メモリ)、操作ボタンやマウス、キーボード、タッチパネル、タッチパネルをタッチするための電子ペンなどの各種入力デバイス、ディスプレイその他各種出力デバイス、その他の外部周辺装置などのハードウェア構成部、またその外部周辺装置用のインターフェース、通信用インターフェース、それらのハードウェアを制御するためのドライバプログラムやその他のアプリケーションプログラムなどが挙げられる。
【0014】
そしてメインメモリ上に展開したプログラムに従ったCPUの演算処理によって、入力デバイスやその他インターフェースなどから入力されメモリやハードウェア上に保持されているデータなどが加工、蓄積されたり、前記各ハードウェアやソフトウェアを制御するための命令が生成されたりする。ここで、上記プログラムは、モジュール化された複数のプログラムとして実現されてもよいし、2以上のプログラムを組み合わせて一のプログラムとして実現されても良い(本実施形態に限らず、本明細書の全体を通じて同様である)。
【0015】
まず「レイアウト装置」は、スマートフォン、タブレット、PDAその他の携帯端末である場合のほか、通常のパソコンなどのコンピュータであってもよい。典型的には、タブレットやスマートフォンなどの通信機能を備えた携帯端末を用いることが考えられ、それらの端末のディスプレイ上にコンテンツを入力させる枠を表示させ、当該枠の大きさや配置位置を調整することによりレイアウトを実現する。より具体的にいえば、レイアウト装置のディスプレイ等の表示画面に表示された親要素上に子要素をドラッグ操作することによって新たな子要素を前記親要素上に配置する方法により実現する。なおここでいうコンテンツの内容に特段の限定はなく、レイアウトの結果どのようなコンテンツが配置される構成であってもよい。
【0016】
なおここでいう「親要素」「子要素」とは、各要素の配置関係を意味する表現に過ぎず、それぞれの要素間に主従関係その他何らの特別な関係があることを意味するものではない。「親要素」とは、本方法において所与の最大領域として設定された領域である場合もあれば、当該最大領域のなかであらかじめ選択されたある所定範囲の領域であることもある。子要素が親要素よりも大きい場合もあり、この場合子要素は、当該親要素の領域内に重畳された部分についてのみレイアウトの対象となる。
【0017】
子要素は一である場合もあれば、複数の子要素がある場合も考えられる。複数の子要素はそれぞれが独立しており、その配置位置はもちろんその大きさが異なっていてももちろんよい。「子要素を前記親要素上に配置する」とは、親要素上に子要素を重畳させることを意味しており、親要素の領域内に一又は複数の子要素を簡易に配置できる当該処理を可能にすることにより、コンテンツ間の配置関係の柔軟性を確保することができる。
【0018】
なお、親要素の領域内に既に他の子要素が存在している場合には、前記親要素の領域のうち当該子要素が存在していない領域のみを対象として、前記親要素上に配置する新たな子要素を変形させるように構成することが望ましい。このような構成を機械的処理を用いて実現することにより、複数の子要素が重畳し好適なレイアウトとしての機能が損なわれてしまう事態を回避することができる。
【0019】
「ドラッグ操作受付部」0101は、親要素や子要素の配置位置を決めるためのドラッグ操作を受付ける。具体的には、マウスやタッチパネルなどの外部入力装置からの情報に基づいたドラッグ操作を受付ける。なおこのとき、親要素と子要素ともに、ドラッグ操作は当該各要素の中心位置を基点とした要素として表現される。具体的な説明は、後述の要素変形部の説明にて行うが、当該構成を採用することにより、要素間の相対的な配置位置を視認しやすく、より直感的に認識することができる。
【0020】
「要素変形部」0102は、上記ドラッグ操作受付部にて受け付けたドラッグ操作によって、親要素の領域内に子要素を位置させるのに応じて当該親要素の領域内で、前記子要素を示すカーソルの位置が中心となるサイズに前記子要素を変形させるような制御を行う。ここでいう「子要素を示すカーソルの位置」とは、子要素の相対的な位置を説明するために用いられるカーソルであり、ポインタその他の表示形式にて画面上に表出する。当該カーソルは親要素の領域中、子要素の相対的な配置位置を常に示すことを可能とするため、子要素の領域の中心位置に配置される。ここで
図2を示す。同図は親要素0201の中に子要素0202が配置されている様子の一例を示すものであり、子要素0202の中心部分に指さしマークとしてのカーソル0203が配置されている。
【0021】
なお、子要素のサイズは親要素の領域内における子要素の相対位置によって変化するように構成されていることが好ましい。具体的には、記親要素の領域内で前記カーソルの位置が当該親要素の幅方向及び/又は高さ方向の半分の位置にあるとき、前記子要素の幅及び/又は高さが前記親要素の幅及び/又は高さの半分の長さとなり、且つ、前記子要素の高さ及び/又は幅が前記親要素の高さ及び/又は幅と同じ長さとなるような変形制御部を設け、この変形制御部が機能することによって子要素のサイズが適宜決まることが好ましい。当該構成を採用すれば、子要素の大きさについて、いちいちユーザが範囲指定をしたり、領域の大きさを調整したりする手間をかけずとも、スムーズにこれを決することが可能になる。
【0022】
ここで
図3ないし5を示す。同各図は本装置を用いたレイアウト方法によって実現されるレイアウトのうち、様々にその領域のサイズを変化させる様子を説明するための図である。
図3では、親要素0301の高さ方向上半分にカーソルをあてたため、子要素0302も親要素の高さの半分の長さとなり、且つ幅が親要素の幅と同じ長さとなっている。
【0023】
また、
図4に表示されている子要素0402は、相対位置が親要素0401の幅の半分の長さしかなく、かつ中心部分より右側にて配置されていたため、相対位置として右側半分に縦長状形状にて配置されることとなる。さらに
図5に示されているように、カーソル0503が正方形からなる親要素0501からなる場合にあっては、当該正方形上の親要素0501の重心部分にカーソルを合わせた場合、その幅又は高さは子要素0502の幅又は高さと等しくなり、結果として親要素0501に子要素0502が重畳する構成となる。このように、カーソル0303、0403、0503を移動させることにより、子要素の配置位置が変わるだけでなく、特段別の作業を行う必要なくその大きさも柔軟に変化さえることが可能になる。
【0024】
ここでさらに、子要素の配置位置を示すカーソルの移動に伴う子要素のサイズの変化について詳しく説明する。
図6は本実施形態のレイアウト方法に関し、親要素の領域内で子要素ないし子要素のカーソルを移動させた場合の子要素のサイズ又は配置位置の一例を示した図である。同図のうち親要素0601中に重畳されている子要素0602、0603の重心位置に示されている点A、Bは、それぞれ子要素のカーソルの位置を示す点であり、当該各点を中心としてカーソルを移動させた場合に子要素が様々な位置に配置される様子の変化を表している。縦軸がX軸で子要素の高さを示し、横軸がY軸で子要素の幅長をそれぞれ示している。
【0025】
図7及び
図8は、親要素が方形からなる領域である場合に各子要素の重心位置の点A及びBの移動に伴う子要素の幅長及び高さの変化の一例を表した図である。各図中数値が示されているのは、幅及び高さをそれぞれ1とした場合の相対位置を示すための便宜である。
図7において示されているように、Xの値が0.2の位置(左端から0.2だけ右寄りの位置)にある点Aの場合、
図6のY軸で表される幅長は0.4である。Xの値が0.5、すなわち上端及び下端の双方から等距離にある場合には幅長は1となり、これはすなわち子要素の幅長が親要素の幅長と等しくなることを意味している。また、Xの値が0.8の位置(右端から0.2だけ右寄りの位置)にある点Bの場合、
図6のY軸で表される幅長は、先ほどの点Aの場合と同様0.4である。すなわち、本実施形態のレイアウト方法においては、もし幅長を等しくさせようとしたとしても、その横軸の相対位置により子要素が左寄りになるか右寄りになるかが分かれることになる。
【0026】
図8についても同様に説明する。Yの値が0.4の位置(中心からから0.1だけ右寄りの位置)にある点Aの場合、
図6のX軸で表される高さは0.8である。Yの値が0.5、すなわち左端及び右端の双方から等距離にある場合には高さは1となり、これはすなわち子要素の高さが親要素の高さと等しくなることを意味している。また、Yの値が0.95の位置(左端から0.05だけ右寄りの位置)にある点Bの場合、
図6のX軸で表される高さは、0.1である。すなわち、本実施形態のレイアウト方法においては、左右両端からの相対距離だけではなくその配置位置によって子要素の配置位置が変化することになる。
【0027】
これらの図に示されているように、本実施形態のレイアウト方法は、カーソルを移動させるだけで、子要素の配置位置を特定できるだけでなく、その領域のサイズまでをもスムーズに特定できる点において優れた効果をもたらすものであり、当該構成を採用することにより、プログラマーのように特別なコーディング技術を持たないデザイナーなどがその直感又はインスピレーションに則って気軽にアプリケーションにおけるレイアウトを実現することができる。
【0028】
「要素配置部」0103は、ドラッグ操作受付部にて受付け要素変形部により変形された子要素について、ドラッグ操作の受付終了に応じて、その時点でのサイズで子要素が親要素上の指定方向に応じて配置するように構成されている。ここでいう「親要素上の指定方向に応じて」とは、子要素の相対位置に応じて子要素の領域が親要素の領域中左右どちらに対して縦長に配置されるのか、上下どちらに対して横長に配置されるのかが決まることを意味している。要素配置部はドラッグ操作の終了に応じて上記処理を行うが、ここでいう「ドラッグ操作の終了」とは、単にマウスやポインタによる子要素のドラッグ処理が行われなくなった瞬間であってもよいし、所定時間ドラッグ処理が行われなかったことをもってドラッグ操作が終了したと判断してもよい。いずれの構成を採用してもよいし、いずれの構成を採用してもよい。
【0029】
なお、要素配置部による子要素の配置処理は、それ自体が親領域中における終局的な配置処理である必要は全くない。例えば、いちど配置した子要素の配置位置を移動させたり、当該子要素を削除したりすることがあってももちろんよい。このような構成を採用し、子要素の配置位置ないし子要素のサイズを随時調整することにより、親領域内における最適なレイアウトを適宜調整することが可能になる。
【0030】
<具体的な構成>
図9にあるように、本実施形態のレイアウト方法を実現するための装置は、各種演算処理を実行するための「CPU」0901と、「記憶装置(記憶媒体)」0902と、「メインメモリ」0903と、「入力インターフェース」0905、「出力インターフェース」0904、「インターネット通信インターフェース」0906と、を備え、入出力インターフェースを介して、例えば「マウス」0908や「タッチパネル」0909、「ディスプレイ」0907、「プリンタ」などの外部周辺装置と情報の送受信を行う。また、インターネット通信インターフェースを介して「外部サーバ」0980などの外部装置と情報の送受信を行う。このインターネット通信インターフェースの具体的な態様は有線、無線を問わず、また、通信方法も直接、間接を問わない。よって特定の外部装置ないし同装置の利用者と紐づけられた第三者の管理するサーバとの間で情報の送受信を行ういわゆるクラウドコンピューティングの形式を採用することも可能である。
【0031】
記憶装置には以下で説明するような各種プログラムが格納されており、CPUはこれら各種プログラムをメインメモリのワーク領域内に読み出して展開、実行する。なお、これらの構成は、「システムバス」0999などのデータ通信経路によって相互に接続され、情報の送受信や処理を行う(以上の構成の基本的な構成は、以下で説明する他の装置のいずれについても同様である)。
【0032】
(ドラッグ操作受付部の具体的な構成)
コンピュータプログラムとコンピュータハードウェアにより構成され、CPUが記憶装置から「ドラッグ操作受付プログラム」0910をメインメモリに読み出して実行し、入力インターフェースを介して入力されたドラッグ操作に関する情報を受付ける。
【0033】
(要素変形部の具体的な構成)
コンピュータプログラムとコンピュータハードウェアにより構成され、CPUが記憶装置から「要素変形プログラム」0920をメインメモリに読み出して実行し、ドラッグ操作受付プログラムの実行により得られたドラッグ操作に関する情報に基づき、子要素のサイズを変形させる処理を行い、当該処理結果をメインメモリの所定のアドレスに格納する。
【0034】
(要素配置部の具体的な構成)
コンピュータプログラムとコンピュータハードウェアにより構成され、CPUが記憶装置から「要素配置プログラム」0930をメインメモリに読み出して実行し、要素変形プログラムの実行により得られた情報を読みだし親要素の領域中所定の位置に子要素を配置する処理を行い、当該処理結果をメインメモリの所定のアドレスに格納する。このときの子要素の配置位置及びサイズの情報は、親要素の領域内における座標の情報を用いることにより格納することが考えられる。
【0035】
(変形制御部の具体的な構成)
コンピュータプログラムとコンピュータハードウェアにより構成され、ドラッグ操作受付プログラムと要素変形プログラムが実行された場合、CPUが記憶装置から「変形制御プログラム」をメインメモリに読み出して実行し、子要素のサイズを制御する処理を行い当該処理結果をメインメモリの所定のアドレスに格納する。
【0036】
<処理の流れ>
以下で本実施形態のレイアウト方法における処理の流れの一例を
図10を用いて説明する。同図の処理の流れは以下のステップからなる。最初にステップS1001では、親要素の領域内に子要素をドラッグする指示があるかどうかを判断する。ここでドラッグするとの判断結果であればステップS1002の処理に移行し、ドラッグしないとの判断結果であればステップS1001以降の処理を引き続き行う。ステップS1002ではドラッグの指示内容に応じて子要素の形状を変形させながら子要素の配置位置を移動させる。ステップS1003では、ドラッグ操作が終了したかどうかを判断する。ここでの判断結果が終了するとの内容であればステップS1004の処理に移行し、ドラッグ操作を終了しないとの判断結果である場合にはステップS1002以降の処理を引き続き行う。ステップS1004では、ドラッグ操作の内容に応じ子要素を配置するかどうかを判断する処理を行い、そこでの判断結果が配置するとの内容である場合には、ステップS1005として子要素を配置する。配置しないとの内容である場合には、その後の処理を行わずステップS1001以降の処理を引き続き実行する。
【0037】
<効果>
主に以上のような構成をとる本発明によって、UIデザイナーのように特別なコーディング技術を有していない者であっても、直感的にインターフェースをレイアウトすることが可能になる。
【課題】コンテンツに関する従来のレイアウト方法は、あくまでメニューバーなどの特定の用途に限られたユーザインターフェースについてしか適用することができず、それゆえ却ってアプリケーション全体のユーザインターフェースの自由度合いを制約することとなっていた。
【解決手段】端末上に表示された親要素上に子要素をドラッグ操作し、子要素のドラッグされた相対位置に応じてサイズが調整されて配置されるレイアウト方法などを提案する。