JP2008542919A5 - - Google Patents
Download PDFInfo
- Publication number
- JP2008542919A5 JP2008542919A5 JP2008514742A JP2008514742A JP2008542919A5 JP 2008542919 A5 JP2008542919 A5 JP 2008542919A5 JP 2008514742 A JP2008514742 A JP 2008514742A JP 2008514742 A JP2008514742 A JP 2008514742A JP 2008542919 A5 JP2008542919 A5 JP 2008542919A5
- Authority
- JP
- Japan
- Prior art keywords
- raised
- elements
- drawn
- display
- order
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000009877 rendering Methods 0.000 claims description 14
- 230000001276 controlling effect Effects 0.000 claims description 7
- 239000000306 component Substances 0.000 description 23
- 239000008186 active pharmaceutical agent Substances 0.000 description 12
- 238000010586 diagram Methods 0.000 description 11
- 239000003973 paint Substances 0.000 description 7
- 230000001413 cellular Effects 0.000 description 5
- 238000000034 method Methods 0.000 description 5
- 230000006399 behavior Effects 0.000 description 2
- 230000005055 memory storage Effects 0.000 description 2
- 238000010422 painting Methods 0.000 description 2
- 240000003877 Perilla frutescens Species 0.000 description 1
- 210000003491 Skin Anatomy 0.000 description 1
- 241001248035 Trigonidiinae Species 0.000 description 1
- 239000008358 core component Substances 0.000 description 1
- 230000000875 corresponding Effects 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002452 interceptive Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006011 modification reaction Methods 0.000 description 1
- 230000003287 optical Effects 0.000 description 1
- 229920001690 polydopamine Polymers 0.000 description 1
- 230000035943 smell Effects 0.000 description 1
Images
Description
本出願は、米国特許仮出願番号第60/686,349号、2005年5月31日出願、に優先権を主張し、そしてその全体はこの引用によって本明細書中にここに取り込まれている。
本発明は、一般にユーザ・インターフェースの変数処理に係る。より詳しくは、本発明は、ユーザ・インターフェース・エレメントを描画すること(rendering)を制御することに関する。
階層分類されたデータ言語及びマークアップ言語、XMLベースの言語を含む、を含むデータ言語において、ディスプレイ上に表示されるユーザ・インターフェース(UI:user interface)エレメントは、レイアウトのために順序を与えられる。(注:UIエレメントは、スクリーン上に表示されることができるいずれかのものである。例えば、コード・エレメントは、XMLベースの言語中の1行のコード又は1つのタグであり得る。UIエレメントは、1又はそれより多くのコード・エレメントによって特徴付けられることができる。さらに、コード・エレメントは、表示を記述しないことがある、すなわち、それは動作(behavior)を記述することができる。)
レイアウト順序は、一般的に、UIエレメントに関係するコード・エレメントが言語中にどのように宣言されるかによって定義される。ディスプレイ上にこれらのUIエレメントをペイントする(すなわち、描画する)ときに、ペイントする順序は、レイアウト順序にしたがう。
レイアウト順序は、一般的に、UIエレメントに関係するコード・エレメントが言語中にどのように宣言されるかによって定義される。ディスプレイ上にこれらのUIエレメントをペイントする(すなわち、描画する)ときに、ペイントする順序は、レイアウト順序にしたがう。
ディスプレイ上で、水平と垂直、長さと幅、等は、一般的に“x−y”座標で参照され、x−y平面におけるそれらの表示を特定する。表示中にてUIエレメントを表示するときに、それらの“z−順序”は、それらが互いに関連して置かれる順序を呼ぶ。全てのUIエレメントが一般的にx−y平面において見られるが、他のものの上に描画されるUIエレメントが(それらがいくらかの透明性を持たない限り)その下に描画されるUIエレメントを覆い得るので、表示のz−順序は関心事である。
一例としてXMLを使用すると、XML中で指定されるユーザ・インターフェース(UI)は、UIエレメントがコードにおいて宣言されている順序と同じ、UIエレメントに関する暗黙の(implicit)ペイント順序を有する。複雑なUIは、見られるUIエレメントが(XML系列において後で宣言される)別のUIエレメントの上に描かれることを可能にする能力を必要とする。それゆえ、描画のz−順序を変更することを可能にする必要性がある。
現在のUIデータ言語方式は、この問題に対処していない、又はこの問題に対する不十分な解決策しか提供していない。具体的に、スカラ・ベクトル・グラフィックス(SVG:Scalar Vector Graphics)第2版は、z−順序制御に対処することを既に提案している。この制御を与える機構は、まだ確立されていない、又は定義されていない。ある示唆は、インデックスを使用できることを示している。z−制御のためのインデックスの使用は、UIにおいて望ましくないクリッピングの影響を受ける。
別の1つの解決策は、表示されるべきUIエレメントを含んでいるページの複数の版を作り出すことを含んでおり、各ページは関係するコード・エレメントのz−順序を変化させる。しかしながら、この解決策は、追加のページの開発を必要とすることにより、複数のページを記憶することにより、そして複数のページ全体にわたるコードへの変更を保存することによる追加のリソースを伴い、そしてz−順序の動的制御を扱う力ずくの、すなわち非効率的な、方法である。
本発明に整合するシステム及び方法は、ユーザ・インターフェース・エレメントを描画すること及び表示を制御するシステム、方法及び装置を作り出すことによって現在のシステムの欠点を克服する。
本発明の1つの実施形態では、表示の中に描画される第1のエレメントのz−順序を制御するための方法は、表示の中のレイアウトの該順序を表している複数のエレメントの順序付きリストを受け取ること、該順序付きリスト中の該第1のエレメントをレイズコンテナ・エレメント(raisecontainer element)に割り当てること、ここにおいて、該第1のエレメントは該順序付きリスト中のいくつかのエレメントのうちの1つであることができ、該第1のエレメントを除く該順序付きリストのエレメントの該表示をペイントすること、及び該表示に該第1のエレメントを含んでいる該レイズコンテナをペイントすることを具備する。
本発明の別の1つの実施形態では、複数のユーザ・インターフェース・エレメントを描画するための方法は、レイズ・ユーザ・インターフェース・エレメント(raise user interface element)を定義し、該複数のユーザ・インターフェース・エレメントをディスプレイ上に描画し、そして該レイズ・ユーザ・インターフェース・エレメントを該ディスプレイ上に描画する、ここにおいて、該レイズ・ユーザ・インターフェース・エレメントは、該複数のユーザ・インターフェース・エレメントを該描画することの後に描画される。この方法では、該レイズ・ユーザ・インターフェース・エレメントは、該複数のユーザ・インターフェース・エレメントのうちの1つであり、そして該複数のユーザ・インターフェース・エレメントを該ディスプレイ上に描画するステップは、該レイズ・ユーザ・インターフェース・エレメントを描画しない。該複数のユーザ・インターフェース・エレメントを含む構造は、ツリー構造であり得る。それに加えて、該レイズ・ユーザ・インターフェース・エレメントは、該ディスプレイ上に描画されるときにクリッピングされないことができる。しかも、該レイズ・ユーザ・インターフェース・エレメントは、表示されたユーザ・インターフェース・エレメント上にフォーカスすることによって定義されることができる。
さらに別の1つの実施形態では、表示の中に描画される第1のエレメントのz−順序を制御するためのデバイスは、プログラム・コードを記憶するためのメモリ、ここにおいて、該プログラム・コードは、該表示の中のレイアウトの該順序を表しているエレメントの順序付きリストに対する命令を含む、及び
該順序付きリスト中の該第1のエレメントをレイズコンテナ・エレメントに割り当てるように構成されたプロセッサ、を具備し、ここにおいて、該第1のエレメントは該順序付きリスト中の複数のエレメントのうちの1つであり、該第1のエレメントを除き該順序付きリストのエレメントを用いる該表示をペイントし、そして該表示のために該第1のエレメントを含んでいる該レイズコンテナをペイントする。
該順序付きリスト中の該第1のエレメントをレイズコンテナ・エレメントに割り当てるように構成されたプロセッサ、を具備し、ここにおいて、該第1のエレメントは該順序付きリスト中の複数のエレメントのうちの1つであり、該第1のエレメントを除き該順序付きリストのエレメントを用いる該表示をペイントし、そして該表示のために該第1のエレメントを含んでいる該レイズコンテナをペイントする。
さらに別の1つの実施形態では、ディスプレイに複数のユーザ・インターフェース・エレメントを描画するためのデバイスは、該複数のユーザ・インターフェース・エレメントを含んでいる構造を定義するためのプログラム・コードを含むメモリ、及びレイズ・ユーザ・インターフェース・エレメントを定義するために、該複数のユーザ・インターフェース・エレメントを該ディスプレイ上に描画するために、そして該レイズ・ユーザ・インターフェース・エレメントをディスプレイ上に描画するように構成されたプロセッサを具備し、ここにおいて、該レイズ・ユーザ・インターフェース・エレメントは、該複数のユーザ・インターフェース・エレメントを描画した後で描画される。
本発明のその他の目的、利点及び特徴は、図面の簡単な説明、本発明の詳細な説明及び特許請求の範囲の記載に鑑みて本明細書を概観した後で明らかになるであろう。
[詳細な説明]
同じ参照符号は、全体を通して同じ要素を表す図面を参照する。
同じ参照符号は、全体を通して同じ要素を表す図面を参照する。
本発明は、クリッピングに関する効率をそしてそれゆえ描画する速度を維持しつつ、z−順序の精密なグレイン(grain)制御を可能にすることによって本分野における問題に対処する。技術が真の3D表示(2次元表面上の単なる3D表示ではない)を開発するために十分な程度に高性能になるならば、本発明は、そのようなシステムにも同様に適用できる。
さらなる利点は、レイズ・ユーザ・インターフェース・エレメントがスクリーンの大きさよりはむしろ指定された制約にクリッピングされることができること;あるエレメントは、レイズされることができるが、xmlベースの構文解析シーケンスにおいてその前又は後に宣言されうる他のエレメントのまだ明らかに下方であること;複数の及び/又は入れ子にされたレイズコンテナのユーザによって、UIの複数のレベル及び/又は入れ子になったレベルが実現されることができ、そしてそれらのz−順序が動的に変えられることができることが含まれる。
参照は、添付した図面に図示されるように本発明の現在の具体例の実施形態及び好ましい実施形態に対して詳細にここに行われ、図面では、同じ参照符号は、複数の図面を通して同じ部分又は対応する部分を示す。本発明の本質、目的、及び利点は、図面に関連して以下に述べる詳細な説明を考慮した後で、当業者にとってさらに明確になるであろう。
用語の使用に関して、本明細書では、用語“無線デバイス”、“無線電話機”、及び“移動デバイス”は、互換的に使用される。本明細書中に使用されるように用語“アプリケーション”は、実行可能なそして実行できないソフトウェア・ファイル、生データ、データの集合、パッチ、コンテント、ユーザ・インターフェース及びユーザ・インターフェース・コンポーネント、及び他のコード・セグメントを包含するように意図される。さらに、類似の参照符号は、複数の図面を通して類似の要素を呼び、そして冠詞“a”と“the”は、明細書中に指定されない限り、複数の表示を含む。
TrigMLは、ユーザ・インターフェースを開発する際に有用なデータ駆動型言語である。TrigMLは、QUALCOMM(クァルコム)社により所有される製品である。XMLの下で定義されるデータ言語のように、TrigMLコードは、タグの使用を含む。複数の実施形態が無線デバイス上のユーザ・インターフェースに関するTrigMLの関係で説明されるが、それが説明の目的だけのためであり、そして本発明についての限定ではないことが理解される。本明細書中に記載される装置及び方法は、同様に、非ユーザ・インターフェース環境においても、そして上記のように、異なるデータ言語を使用する環境を使用するものにおいても利用可能である。
図1は、その環境においてデバイスが本発明の1実施形態で動作することができる通信環境100の機能図である。この例では、通信環境100は、無線ネットワーク122を含む。無線ネットワーク122は、無線サービス・プロバイダによって操業されている通信ネットワークであり得て、移動デバイスへのデータ接続性又は電気通信接続性を提供する。さらに、無線ネットワーク122は、有線ネットワーク、インターネット、ワイド・エリア・ネットワーク、公衆交換電話ネットワーク(PSTN:Public Switch Telephone Network)、及び他の公開ネットワーク及び/又は非公開ネットワークを同様に含むことができ、その結果、デバイスは、これらに接続されている他のデバイスを使用して直接的に又は間接的にこれらのネットワークに通信することができる。
1つの例では、無線ネットワーク122は、セルラ電話ネットワークを含むことができる。例えば、セルラ電話機112、ラップトップ・コンピュータ116、PDA118、及び移動メッセージ通信デバイス120の様な、複数の移動デバイスが、無線ネットワーク122と通信している。これらのデバイスは、無線ネットワーク122を経由して通信することができる多くの型のデバイスの例示として示されているだけである。
図1に図示されているものは、アプリケーション・サーバ124及びユーザ・インターフェース・サーバ126である。ユーザ・インターフェース・サーバ126は、ユーザ・インターフェース・コンポーネント130(下記にさらに詳細に説明される)を取り扱う計算デバイスである。これらのユーザ・インターフェース・コンポーネント130は、無線ネットワーク122に接続された他のデバイスにダウンロードされることができる。ユーザ・インターフェース・コンポーネントは、ユーザ・インターフェース(例えば、機能コール、メニュー、コンテント・コールのためのコード、スキン、等)を描画する(render)ためのコード及び/又はデータを含む。コンテント・サーバを含む複数の他のサーバが、ネットワークに接続するために使用されることができ、情報を配信することができることに、注意する。利用可能にされ得る情報の型は、制限がなく、そして非常に多くの異なる例が、当業者に明らかであろう。ユーザ・インターフェース・サーバ126は、サーバ・ソフトウェアを含み、それは無線ネットワーク122を経由して要請しているデバイスにユーザ・インターフェース・コンポーネント130を提供するように構成される。
アプリケーション・サーバ124は、無線ネットワーク122に接続された計算デバイス又は計算システムであり、それはソフトウェア・アプリケーション128が移動デバイスによってダウンロードされることを可能にする。一般的に述べると、アプリケーション128は、無線ネットワーク122に接続されたデバイス、例えば、セルラ電話機112、上で実行するためにそれらのデバイスによってダウンロードされることができる。この特定の実施において、アプリケーション・ダウンロード・サーバ124によって取り扱われるアプリケーション128のうちの少なくとも1つは、少なくとも1つの移動デバイス上での実行のために構成されたコンテント・ベースのアプリケーションである。コンテント・ベースのアプリケーション(クライアント)は、移動デバイスによる表示のためにユーザ・インターフェースを介してコンテント・サーバ(図示されず)からコンテントを検索するように構成される。
図2は、本発明の1実施形態において、1つのサンプルの移動デバイス201の構成要素を一般的に説明する機能ブロック図である。移動デバイス201は、計算機能を有する任意のデバイスであることができ、例えば、セルラ電話機、個人ディジタル補助装置、手持ち“パームトップ”デバイス、ラップトップ・コンピュータ、携帯型音楽プレーヤ、全地球位置決定衛星(GPS:global positioning satellite)デバイス、又はその他である。
移動デバイス201は、コンピュータ・プラットフォーム250を有し、それはソフトウェア・アプリケーションを受信しそして実行することができ、データを表示することができる。コンピュータ・プラットフォーム250は、プロセッサ252を含み、例えば、用途特定集積回路“ASIC(application specific integrated circuit)”、ディジタル信号プロセッサ(“DSP(digital signal processor)”)、マイクロプロセッサ、マイクロコントローラ、論理回路、ステート・マシーン、又は他のデータ処理デバイスである。プロセッサ252は、アプリケーション・プログラミング・インターフェース( “API(application programming interface)”)層254を実行し、それは移動デバイスのメモリ256中の任意の常駐プログラムをインターフェースする。メモリ256は、ランダム・アクセス・メモリ又は読み取り専用メモリ(RAM又はROM)、EPROM、EEPROM、フラッシュ・メモリ、又はコンピュータ・プラットフォームに一般的ないずれかのメモリを含むことができる。コンピュータ・プラットフォーム250は、しかもローカル記憶装置258を含み、それはメモリ256中でアクティブに使用されないソフトウェア・アプリケーション、ファイル、又はデータ、例えば、ユーザ・インターフェース・サーバ126(図1)からダウンロードされたソフトウェア・アプリケーション又はユーザ・インターフェース・コンポーネント、を保持することができる。ローカル記憶装置258は、一般的に1又はそれより多くのフラッシュ・メモリ・セルを備えるが、本分野において公知のいずれかの2次記憶デバイス又は3次記憶デバイスであり得て、例えば、磁気媒体、EPROM、EEPROM、光学的媒体、テープ、若しくはソフト・ディスク又はハード・ディスクであり得る。
コンピュータ・プラットフォーム250は、しかもディスプレイ260も含み、それはユーザ・インターフェース(図示されず)を使用してデータを表示するためにソフトウェア・アプリケーションによって使用されることができる。
図2に示される構成要素は、多くの型の移動デバイスで一般的であるが、他の構成要素が移動デバイス201に追加されることができ、そしてあるケースでは、図2に示されたある構成要素は、移動デバイス201から省略されることがある。
図3は、本発明の1実施形態において、1つのサンプルの計算デバイス301の核となる構成要素を一般的に説明する機能ブロック図である。計算デバイス301は、任意の固定計算デバイス、例えば、デスクトップ・コンピュータ又はサーバであり得る。
この例では、計算デバイス301は、プロセッサ・ユニット304、メモリ306、記憶媒体313、及びオーディオ・ユニット331を含む。プロセッサ・ユニット304は、好都合なことにマイクロプロセッサ又はディジタル信号プロセッサのような特殊用途プロセッサを含むが、代わりにいずれかの従来形式のプロセッサ、コントローラ、マイクロコントローラ、又はステート・マシーンであり得る。プロセッサ・ユニット304は、メモリ306に接続され、それはプロセッサ・ユニット304によって実行されるソフトウェア命令を保有しているRAMメモリとして都合の良いことに実装される。代案の実施形態では、メモリ306は、ファームウェア又はフラッシュ・メモリにより構成されることができる。この実施形態では、メモリ306中に記憶されたソフトウェア命令は、オペレーティング・システム310及び1又はそれより多くの別のアプリケーション312、例えば、ユーザ・インターフェースを使用するアプリケーション(図示されず)、を含む。
移動デバイス301は、しかも通信モジュール321を含み、それは計算デバイス301と1又はそれより多くの別の計算デバイス、例えば、移動デバイスとの間の双方向通信を可能にする。通信モジュール321は、RF無線通信又は他の無線通信を可能にする構成要素、例えば、セルラ電話ネットワーク、ブルートース接続、無線ローカル・エリア・ネットワーク、又はおそらく無線ワイド・エリア・ネットワーク、を含むことができる。あるいは、通信モジュール321は、地上回線すなわち配線接続されたネットワーク通信、例えば、イーサネット(登録商標)接続、RJ−11接続、ユニバーサル・シリアル・バス接続、IEEE1394(ファイアワイア)接続、又はその他、を可能にする構成要素を含むことができる。これらは非網羅的なリストとして意図されており、そして多くの他の代案が可能である。オーディオ・ユニット331は、移動デバイス301の構成要素であり、アナログ・フォーマットとディジタル・フォーマットとの間で信号を変換するように構成される。オーディオ・ユニット331は、移動デバイス301によって使用され、スピーカ332を使用して音を出力しそしてマイクロフォン333からの入力信号を受け取る。
図3は、多くの従来型の計算デバイスにおいて一般的に見られるある種の構成要素だけを図示する。非常に多くの他の構成要素が、同様に特定の装置においてごく普通に見られ、そしてある種のケースでは、図3に示されたある構成要素が省略されることができる。しかしながら、図3に示された計算デバイス301は、今日一般的に見られる計算デバイスの典型である。
図4は、本発明の1実施形態における1つのデバイスのアプリケーション・アーキテクチャを図示する。本デバイスは、“コンピュータ・プラットフォーム”を含む。コンピュータ・プラットフォームは、ハードウェア、ソフトウェア、又は両方を含むデバイスの構成要素を呼ぶことができる。例えば、それはオペレーティング・システム、基盤となるハードウェア構成要素を含むことができ、そのハードウェア構成要素は、チップ、ユーザ・インターフェース・ハードウェア(例えば、ディスプレイ、入力デバイスと出力デバイス)、ライブラリ、サポーティングAPI、オペレーティング・システムへの追加の拡張、等を含む。
1つの実施形態では、無線デバイスのアプリケーション・アーキテクチャ400は、Device API405、BREW API410、BREW Extension415、Trigplayer420、Actor425、及びTrig430を含む。Device API405は、そのデバイスに明確に関係付けられた機能に対処するためのソフトウェア・プラットフォームによって使用されるそれらのAPIを含むことができ、例えば、特定のプロセッサ又はASIC機能、特定のデバイス・ハードウェア機能、等である。
BREW API410は、QUALCOMM株式会社によって開発されたソフトウェア・プラットフォームである。BREW API410は、そのデバイスに対して特別に書き込まれることを必要とせずにDevice API405及びその他の機能を呼び出すためのアプリケーションに対する能力を提供する。言い換えると、アプリケーションからハードウェアの特定の側面を取り出し、それによってそのデバイス上でアプリケーションを実行する各特定のデバイスに対して、合わせる必要なく又はわずかに合わせることを必要とするだけで、アプリケーションが複数のデバイスに対して書き込まれることを可能にする。
BREW Extension415は、BREWプラットフォームに追加の能力、例えば、MP3プレーヤ、Java(登録商標) Virtual Machines(ジャヴァ仮想マシーン)、等、を追加する能力を提供する。
Trigplayer420、Trig430及びActor425は、QUALCOMM株式会社によって開発されたuiOne(登録商標)アーキテクチャのコンポーネントである。これらのコンポーネントは、一般的にデバイス400のユーザ・インターフェースの側面を呼ぶ。1つの実施形態では、Trig430は、コンパイルされたTrigML(登録商標)コード、及びデバイス400上にユーザ・インターフェースを与えるためのアプリケーションによって使用される他のリソース(それはメタデータ、テキスト・ファイル、及び画像を含むことができる)である。複数のTrig430及びTrigへの最新版、Triglet(図示されず)と呼ばれる、は、ユーザ・インターフェースに対して使用されることができる。
TrigMLコード、QUALCOMM株式会社によって所有される、は、XMLに基づくデータ言語であり、そしてTrig430を書き表すためのユーザ・インターフェース表示言語として使用されることができ、そして移動体に的を絞った機能性、双方向ユーザ・インターフェース・イベント・モデルの利点を含み、そしてその他の利点の中でピクセル位置決定の利点を含む。
Actor425は、基盤となるCコードを含み、Trigを基盤となるDevice API405及び/又はBREW API410に結びつける。Actor425は、しかも入力/出力のための実行可能なもの(executables)として機能することができる。そして複数のアクタが基盤となるDevice API及びBREW APIを結び付けるので、それらはコンピュータ・プラットフォーム機能へのアクセスを有する。
たとえ、Trigplayer420が図4では分離されているとしても、Trigplayer420は、BREW Extension415として与えられることができる。Trigplayerは、Trig及びActorを使用してユーザ・インターフェースを与えるために使用される。
図4の考察は、QUALCOMM株式会社のuiOneアーキテクチャ(コンパイルされたTrigML、Trigplyer、BREW API、等を含む)に関してであるが、これは説明の目的のためであり、そして本発明が他のデータ言語、コンピュータ・プラットフォームとソフトウェア・プラットフォーム並びにデバイス・アーキテクチャを含むことが、理解されるであろう。
図5は、本発明の1実施形態におけるユーザ・インターフェースを更新するシステム及びTrigplayer420、Actor425及びTrig430を図示するアーキテクチャを説明するブロック図である。デバイス500は、Trigplayer420、Actor425及びTrig430を含む。Trigは、TrigMLコード505、テキスト・ストリング510、画像515、及び更新チャネル520(更新チャネルは、URLを定義しそしてTriglet530を引き出すタイミング方式を定義することができる)を含むことができる。Trigは、無線を介して更新されることができ、それによってデバイスが製造者をとっくに離れてしまった後で、ユーザ・インターフェースが更新されることを可能にする。サーバ525は、新たなTrig及び又はTrigの更新されたコンポーネント(例えば、Triglet530)をダウンロードするために使用されることができ、それゆえデバイスのためのユーザ・インターフェースがカスタム化されることを可能にする。
ユーザ・インターフェース・エレメントの精密なグレインのz−順序制御のより詳細な態様に対処するために、1つの実施形態では、描画ツリーは、UIエレメント・ツリーの親を先頭にした下り順により通常は処理される。UIエレメント・ツリーは、UIエレメントに関係付けられるコード・エレメントがTrigリソース・ファイルにおいてどのようにして宣言されたかに基づいて作り出された。親は、自身をペイントし、そして次にその複数の子を順番にペイントするようにその子のそれぞれに要求する。Trigリソース・ファイル。親は、しかも自分自身の範囲に自分の子のそれぞれをクリッピングする。レイズ属性(raise attribute)の導入で、それによってUIエレメントは、通常の描画が終わる後まで自身を描画することを遅らせることができる−すなわち、全ての非レイズド(non-raised)UIエレメントが描画され、その後、全てのレイズド(raised)UIエレメントが描画される。例えば、UIエレメントが制御フォーカスを有するときに、そのUIエレメントはレイズされることができる。(1つの実施形態では、“フォーカス”は、選択の拡大又は強調など、注意がそこに与えられる表示の一部を呼び、カーソルは、選択された場合にどのオプションが選択されるかをユーザに示すためのものである。)レイズドUIエレメントは、それが描画の通常のサイクルの外であるので、その親のフレームによってクリッピングされず、そのため、その通常の限界の外側を描画することができる。
この描画属性を使用するプログラム・コードの一例は、TrigMLを使用して:
<trigml>
<group w=”20” h=”20”>
<group bgcolor=”red” w=3-“h=”30”raise=”false”>
<att when=”focus” name=”raise” value=”true”/>
</group>
<group bgcolor=”blue”/>
</group>
</trigml>
図6に示されるように、このTrigMLプログラム・コードの部分が描画されるとき、赤のグループは、ディスプレイ260上に20×20の赤の四角605として表示される(それは自身の親のグループによりクリッピングされる、クリッピングは図示されない)。青のグループは、次にその上に描画され、そのためユーザによって見られるように最終的に描画されるページは、青の20×20の四角610だけから構成される。
<trigml>
<group w=”20” h=”20”>
<group bgcolor=”red” w=3-“h=”30”raise=”false”>
<att when=”focus” name=”raise” value=”true”/>
</group>
<group bgcolor=”blue”/>
</group>
</trigml>
図6に示されるように、このTrigMLプログラム・コードの部分が描画されるとき、赤のグループは、ディスプレイ260上に20×20の赤の四角605として表示される(それは自身の親のグループによりクリッピングされる、クリッピングは図示されない)。青のグループは、次にその上に描画され、そのためユーザによって見られるように最終的に描画されるページは、青の20×20の四角610だけから構成される。
図7に示されるように、フォーカスが次に赤のグループに移る場合、<att>コード・エレメントは、その赤のグループのレイズ特性を変更し、値を真に設定する。ページが描画されるときに、赤のグループは、(それがレイズされているために)スキップされ、そして次に青のグループが20×20の青の四角705として描かれる。最後に、レイズされた赤のグループが描画され(それがレイズされているために、クリッピングされない)、そしてユーザによって見られる、描画される最後のページは、30×30の赤の四角710から構成される。
1つの実施形態は、全体の先送り描画リストの暗黙の存在をあてにしており、そして描画することを先送りする任意のUIエレメントが、この全体リストに追加される。これは、従来技術の解決策に対する改善である。
別の実施形態は、UIエレメントを全体レベルまでレイズしない、その結果、それらは全ての非レイズドUIエレメントの後でペイントされる。<raisecontainer(レイズコンテナ)>エレメントの追加は、レイズドUIエレメントを“取り込む(catch)”。これは、例えば、UIエレメントがレイズされることを可能にするが、他の(非レイズド)UIエレメントがその後に描画され続けることを可能にして、永久的な最高レベルのアクティビティを可能にする。TrigMLプログラム・コードを使用するこの一例は、下記によって説明される:
<trigml>
<group w=”20” h=”20” bgcolor=”red” raise=”false”>
<att when=”focus” name=”raise” value=”highplace”/>
</group>
<group w=”20” h=”20” bgcolor=”blue”>
<raisecounter id=”highplace”/>
<group bgcolor=”green” w=”10” h=”10”/>
</trigml>
ツリーは、UIエレメントがその中で宣言された順序を使用して上に説明されたように作り出される。ここでの通常の描画する順序は、赤、青、緑であり、そしてユーザは、20×20の青の四角の上に重ねられた10×10の緑の四角を見る。通常の描画において、レイズコンテナは空であり、そのためそれが評価されるときには何も描画されるものがない。
<trigml>
<group w=”20” h=”20” bgcolor=”red” raise=”false”>
<att when=”focus” name=”raise” value=”highplace”/>
</group>
<group w=”20” h=”20” bgcolor=”blue”>
<raisecounter id=”highplace”/>
<group bgcolor=”green” w=”10” h=”10”/>
</trigml>
ツリーは、UIエレメントがその中で宣言された順序を使用して上に説明されたように作り出される。ここでの通常の描画する順序は、赤、青、緑であり、そしてユーザは、20×20の青の四角の上に重ねられた10×10の緑の四角を見る。通常の描画において、レイズコンテナは空であり、そのためそれが評価されるときには何も描画されるものがない。
しかしながら、赤のグループがレイズされると、z−順序は変更され、その結果、上に示されたように、レイズコンテナを使用することによって赤のグループがペイントされる。描画は、したがって、青、赤、緑であり、結果として、20×20の赤の四角の上に重ねられた10×10の緑の四角をもたらす。これは、UIエレメントのレイズを実現することができ、しかも重ねられた緑の四角を維持するように管理するという利点を有する。UIエレメントをレイズするレベルに対するこの特別な制御は、重なりを維持するための方法を提供する。典型的な使用ケースは、ポップ・アップ・メニューであり、それは、それら自体が既にレイズされている現在フォーカスされているいずれのUIエレメントも含む他の全てのものの上に描かれるはずである。
レイズコンテナは、入れ子にすることができ、そしてレイズコンテナそれ自身がレイズされることができ、UIのレイヤ及び下位レイヤに対してそれが以前に可能であったものよりもはるかに多くの制御を与える。要するに、レイズコンテナは、1つのレイヤであるが、そのレイヤは、そのz−順序を変更でき、そして必ずしもスクリーン全面である必要はない。そのように、z−順序に関しての精密なグレイン制御を実現する、すなわち、UIエレメントを単に複数のレイヤの最上部まで押し上げること又は最下部まで押し下げることに対して、レイヤ内部でのz−順序を制御する。
それに加えて、レイズドUIエレメントは、レイズコンテナによって既にペイントされており、そしてそのためレイズコンテナのフレームによってクリッピングされ、レイズドUIエレメントを変更することは、スクリーン全体のリフレッシュをもはやトリガする必要がないことを意味する。これは、さらに複雑なUIが処理能力の増加を必要とせずに実行されることを可能にする。
図8は、本発明の1つの実施形態においてレイズ・エレメント(raise element)を描画するプロセスを図示するフローチャートである。最初に、複数のユーザ・インターフェース・エレメントを含む1つの構造が定義される(ステップ805)。この構造は、上記で定義されたような又は別のファイルのツリー構造、若しくはユーザ・インターフェース・エレメントが描画されることを追跡することが可能なデータ構造であり得る。次に、レイズ・ユーザ・インターフェース・エレメントが定義される(ステップ810)。レイズ・ユーザ・インターフェース・エレメントは、他のエレメントの後に描画されるように望まれるエレメントである。レイズ・エレメントは、一般的にステップ805に関連して構造によって定義される順序で描画されるように定義されることができる、しかしながら、このレイズ・エレメントを通常の順序でなく描画することが望まれる。
ユーザ・インターフェース・エレメントは、次にディスプレイ上に描画される(ステップ815)。この描画することは、ステップ805において定義された構造を通して段階的に行われる。描画することが単に表示のためだけではなく、動作を定義するプログラム・コードであることに、注意する。このステップにおいてレイズ・ユーザ・インターフェース・エレメントを描画しないことが好ましく、その理由は、それが再び描画されるためであり(下記のステップ820において定義される)、そのようにしてそのレイズ・ユーザ・インターフェース・エレメントが2回描画されることを防止する。
そして最後に、レイズ・ユーザ・インターフェース・エレメントが表示される(ステップ820)。説明がたった1つのレイズ・ユーザ・インターフェース・エレメントを定義するとはいえ、複数のユーザ・インターフェース・エレメントが“レイズされる”ように定義されることができ、そしてそれゆえ複数のユーザ・インターフェース・エレメントが通常のユーザ・インターフェース・エレメント構造の順序から外れて描画されることができる。
上の方法及びソフトウェア設計の説明は、同様に装置に実装されることができ、RAM中に又は他のメモリ記憶デバイス中に命令として記憶されることができる。
上の方法及びソフトウェア設計の説明は、同様に装置に実装されることができ、RAM中に又は他のメモリ記憶デバイス中に命令として記憶されることができる。本明細書中に示されたプロセスが特定の順序で連続的に例示されそして説明されてきているとはいえ、他の実施形態では、プロセスのステップは、別の順序で、複数回、及び/又は並行に実行されることができる。さらに、ある複数の実施形態では、複数のプロセスにおいて記載された1又はそれより多くのステップは、別々のステップとして実行されることができ、より少ない数のステップへと統合されることができる、又はおそらく完全に省略されることができる。
これまでの開示が本発明の例示的な実施形態を示している一方で、様々な変更及び変形が添えられた特許請求の範囲によって定義されるように本発明の精神及び範囲から逸脱することなく記載された実施形態に行われることができることに、注意すべきである。さらに本発明の要素が、単数形で記載される又は特許請求されることがあるが、複数形は、単数形への限定が明確に述べられない限り予期される。
100…通信環境,250…コンピュータ・プラットフォーム,400…アプリケーション・アーキテクチャ,505…TrigMLコード,510…テキスト・ストリング,515…画像,520…更新チャネル,530…URL及びTriglet。
Claims (12)
- 下記を具備する、表示の中に描画されるレイズド・エレメントのz−順序を制御する方法:
該表示の中のレイアウトの該順序を表している複数のエレメントの順序付き構造を定義すること;
該順序付き構造中の該レイズド・エレメントをレイズコンテナ・エレメントに割り当てること、該レイズド・エレメントは順序付きリスト中にあり、該レイズコンテナ・エレメントは該順序付きリスト中にある;及び
複数のエレメントの該順序付き構造の該表示を描画すること、該レイズド・エレメントは、該レイズコンテナ・エレメントが描画されるときに該表示中に描画され、さらに該レイズド・エレメントは該レイズコンテナ・エレメントによって制御される複数の描画属性の集合に基づいて描画され、複数の描画属性の該集合はz−順序属性を含む。 - 該レイズコンテナ・エレメントが描画されるときにだけ該レイズド・エレメントを描画することをさらに具備する、請求項1の方法。
- 該複数のエレメントを含んでいる該構造をツリー構造として定義することをさらに具備する、請求項1の方法。
- 複数の描画属性の該集合を、クリッピング属性を含むように定義することをさらに具備する、請求項1の方法。
- 表示されたユーザ・インターフェース・エレメント上にフォーカスすることによって該レイズド・エレメントを定義することをさらに具備する、請求項1の方法。
- 下記を具備する、表示の中に描画されるレイズド・エレメントのz−順序を制御するためのデバイス:
プログラム・コードを記憶するためのメモリ(256,306)、ここにおいて、該プログラム・コードは、該表示の中のレイアウトの該順序を表している複数のエレメントの順序付き構造に関する命令を含む;及び
該順序付き構造中の該レイズド・エレメントをレイズコンテナ・エレメントに割り当てるように構成されたプロセッサ(252,304)、ここにおいて、該レイズド・エレメントは該順序付き構造中にあり、ここにおいて、該レイズコンテナ・エレメントは複数のエレメントの該順序付き構造を用いて該表示を描画するために該順序付き構造中にあり、ここにおいて、該レイズド・エレメントは該レイズコンテナ・エレメントが描画されるときに該表示中に描画され、ここにおいて、該レイズド・エレメントは該レイズコンテナ・エレメントによって制御される複数の描画属性の集合に基づいて描画され、ここにおいて、複数の描画属性の該集合はz−順序属性を含む。 - 該レイズド・エレメントは、該レイズコンテナ・エレメントが描画されるときにだけ描画される、請求項6のデバイス。
- 該複数のエレメントを含んでいる該構造はツリー構造である、請求項6のデバイス。
- 複数の描画属性の該集合はクリッピング属性を含む、請求項6のデバイス。
- 該レイズド・エレメントは、表示されたユーザ・インターフェース・エレメント上にフォーカスすることによって定義される、請求項6のデバイス。
- 下記を具備する、表示の中に描画されるレイズド・エレメントのz−順序を制御するためのデバイス:
該表示の中のレイアウトの該順序を表している複数のエレメントの順序付き構造を定義するための手段;
該順序付き構造中の該レイズド・エレメントをレイズコンテナ・エレメントに割り当てるための手段、ここにおいて、該レイズド・エレメントは該順序付き構造中にあり、ここにおいて、該レイズコンテナ・エレメントは該順序付き構造中にある;及び
複数のエレメントの該順序付き構造の該表示を描画するための手段、ここにおいて、該レイズド・エレメントは該レイズコンテナ・エレメントが描画されるときに該表示中に描画され、さらに該レイズド・エレメントは該レイズコンテナ・エレメントによって制御される複数の描画属性の集合に基づいて描画され、ここにおいて、複数の描画属性の該集合はz−順序属性を含む。 - 実行されるときに該方法を行う、表示の中に描画されるレイズド・エレメントのz−順序を制御するための、コンピュータに実装される複数の命令を含んでいるコンピュータ読み取り可能な媒体、該複数の命令は、下記を具備する:
該表示の中のレイアウトの該順序を表している複数のエレメントの順序付き構造を定義するための少なくとも1つの命令;
該順序付き構造中の該レイズド・エレメントをレイズコンテナ・エレメントに割り当てるための少なくとも1つの命令、該レイズド・エレメントは順序付きリスト中にあり、該レイズコンテナ・エレメントは該順序付きリスト中にある;及び
複数のエレメントの該順序付き構造の該表示を描画するための少なくとも1つの命令、該レイズド・エレメントは該レイズコンテナ・エレメントが描画されるときに該表示中に描画され、さらに該レイズド・エレメントは該レイズコンテナ・エレメントによって制御される複数の描画属性の集合に基づいて描画され、複数の描画属性の該集合はz−順序属性を含む。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US68634905P | 2005-05-31 | 2005-05-31 | |
US60/686,349 | 2005-05-31 | ||
PCT/US2006/020704 WO2006130538A2 (en) | 2005-05-31 | 2006-05-31 | Fine-grained control of z-order elements in a xml presentation |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2008542919A JP2008542919A (ja) | 2008-11-27 |
JP2008542919A5 true JP2008542919A5 (ja) | 2011-06-02 |
JP4782828B2 JP4782828B2 (ja) | 2011-09-28 |
Family
ID=36999854
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008514742A Expired - Fee Related JP4782828B2 (ja) | 2005-05-31 | 2006-05-31 | 表示におけるz−順序エレメントの精密なグレイン制御 |
Country Status (7)
Country | Link |
---|---|
US (1) | US7610561B2 (ja) |
EP (1) | EP1886220A2 (ja) |
JP (1) | JP4782828B2 (ja) |
KR (1) | KR101025949B1 (ja) |
CN (1) | CN101213515B (ja) |
BR (1) | BRPI0611325A2 (ja) |
WO (1) | WO2006130538A2 (ja) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8078979B2 (en) * | 2007-11-27 | 2011-12-13 | Microsoft Corporation | Web page editor with element selection mechanism |
US9442960B2 (en) * | 2008-05-16 | 2016-09-13 | Lawrence Livermore National Security, Llc | High performance data layout and processing |
JP5067881B2 (ja) * | 2008-07-11 | 2012-11-07 | キヤノン株式会社 | 画像処理装置および画像処理方法 |
US7721209B2 (en) * | 2008-09-08 | 2010-05-18 | Apple Inc. | Object-aware transitions |
US20100064222A1 (en) | 2008-09-08 | 2010-03-11 | Apple Inc. | Object-aware transitions |
CN101695119A (zh) * | 2009-10-17 | 2010-04-14 | 中兴通讯股份有限公司 | 移动多媒体广播的网络侧及播放器、播放器皮肤更新方法 |
USD660864S1 (en) | 2010-01-27 | 2012-05-29 | Apple Inc. | Graphical user interface for a display screen or portion thereof |
US8836714B2 (en) | 2010-10-29 | 2014-09-16 | The University Of Utah Research Foundation | Rapid, interactive editing of massive imagery data |
US20120159363A1 (en) * | 2010-12-16 | 2012-06-21 | Microsoft Corporation | Z-order bands |
USD683346S1 (en) | 2011-02-04 | 2013-05-28 | Apple Inc. | Portable display device with graphical user interface |
US9013510B2 (en) * | 2011-07-29 | 2015-04-21 | Google Inc. | Systems and methods for rendering user interface elements in accordance with a device type |
US10437911B2 (en) * | 2013-06-14 | 2019-10-08 | Business Objects Software Ltd. | Fast bulk z-order for graphic elements |
USD762223S1 (en) | 2014-09-09 | 2016-07-26 | Apple Inc. | Display screen or portion thereof with animated graphical user interface |
US20170285930A1 (en) * | 2016-04-01 | 2017-10-05 | Microsoft Technology Licensing, Llc. | Document content replay |
USD829223S1 (en) | 2017-06-04 | 2018-09-25 | Apple Inc. | Display screen or portion thereof with graphical user interface |
US10665008B2 (en) * | 2018-05-31 | 2020-05-26 | Microsoft Technology Licensing, Llc | Hybrid traversal of object sets |
USD937858S1 (en) | 2019-05-31 | 2021-12-07 | Apple Inc. | Display screen or portion thereof with graphical user interface |
USD937295S1 (en) | 2020-02-03 | 2021-11-30 | Apple Inc. | Display screen or portion thereof with graphical user interface |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2929824B2 (ja) * | 1992-02-18 | 1999-08-03 | 日本電気株式会社 | ユーザ・インタフェース制御方式 |
US5519825A (en) * | 1993-11-16 | 1996-05-21 | Sun Microsystems, Inc. | Method and apparatus for NTSC display of full range animation |
AUPQ808700A0 (en) * | 2000-06-09 | 2000-07-06 | Honeywell Limited | Human-machine interface |
US20050091666A1 (en) * | 2000-08-14 | 2005-04-28 | Transvirtual Technologies, Inc. | Portable operating environment for information devices |
JP3800524B2 (ja) * | 2002-03-15 | 2006-07-26 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 表示制御方法、これを用いたプログラム及び情報処理装置 |
US6928619B2 (en) * | 2002-05-10 | 2005-08-09 | Microsoft Corporation | Method and apparatus for managing input focus and z-order |
US20040046789A1 (en) * | 2002-08-23 | 2004-03-11 | Angelo Inanoria | Extensible user interface (XUI) framework and development environment |
GB2411331A (en) | 2004-02-19 | 2005-08-24 | Trigenix Ltd | Rendering user interface using actor attributes |
-
2006
- 2006-05-31 US US11/421,375 patent/US7610561B2/en not_active Expired - Fee Related
- 2006-05-31 CN CN2006800242822A patent/CN101213515B/zh not_active Expired - Fee Related
- 2006-05-31 JP JP2008514742A patent/JP4782828B2/ja not_active Expired - Fee Related
- 2006-05-31 EP EP06771458A patent/EP1886220A2/en not_active Withdrawn
- 2006-05-31 KR KR1020077030836A patent/KR101025949B1/ko not_active IP Right Cessation
- 2006-05-31 WO PCT/US2006/020704 patent/WO2006130538A2/en active Application Filing
- 2006-05-31 BR BRPI0611325-7A patent/BRPI0611325A2/pt not_active Application Discontinuation
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4782828B2 (ja) | 表示におけるz−順序エレメントの精密なグレイン制御 | |
JP2008542919A5 (ja) | ||
CN102971688B (zh) | 跨平台应用程序框架 | |
Meier | Professional Android 4 application development | |
WO2020063019A1 (zh) | 信息处理方法、装置、存储介质、电子设备及系统 | |
US10088980B2 (en) | Method and system for providing menu data for mobile applications | |
US11706331B2 (en) | Information processing method and apparatus, storage medium, and electronic device | |
WO2009126591A1 (en) | Systems and methods for programming mobile devices | |
US20110119601A1 (en) | Method and apparatus for presenting a web application instance to multiple user interfaces | |
JP2006236323A (ja) | アプリケーション提供システム、サーバ、クライアントおよびアプリケーション提供方法 | |
KR20120022831A (ko) | 플랫폼 확장성 프레임워크 | |
US20080092052A1 (en) | Method and system for customizing multiple user interfaces mapped to functions | |
WO2022184077A1 (zh) | 文档编辑的方法、装置、终端及非暂时性存储介质 | |
CN112235132B (zh) | 动态配置服务的方法、装置、介质以及服务器 | |
JP5437322B2 (ja) | データ言語中の複数の言語の管理 | |
EP4160416A1 (en) | Device control method and device | |
JP4927830B2 (ja) | データ言語における変数の自動更新 | |
CN114489607A (zh) | 跨栈应用处理与页面渲染方法、装置、设备及存储介质 | |
CN110399040A (zh) | 多模态交互方法、用户端设备、服务器及系统 | |
KR102385381B1 (ko) | 카메라 이펙트를 위한 스크립트 생성 방법 및 시스템 | |
CN117440073A (zh) | 显示方法、装置、电子设备和可读存储介质 | |
Berti et al. | An environment for designing and developing multi-platform interactive applications |