JP2020529055A - ルールベースのユーザインタフェース生成 - Google Patents

ルールベースのユーザインタフェース生成 Download PDF

Info

Publication number
JP2020529055A
JP2020529055A JP2019561853A JP2019561853A JP2020529055A JP 2020529055 A JP2020529055 A JP 2020529055A JP 2019561853 A JP2019561853 A JP 2019561853A JP 2019561853 A JP2019561853 A JP 2019561853A JP 2020529055 A JP2020529055 A JP 2020529055A
Authority
JP
Japan
Prior art keywords
user interface
interface manager
manager
application
type
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
Application number
JP2019561853A
Other languages
English (en)
Other versions
JP7007401B2 (ja
Inventor
バラスブラマニアン,ラムラジュプラブ
アール. デイヴィス,ダレン
アール. デイヴィス,ダレン
エー. シプリー,ケントン
エー. シプリー,ケントン
ティー. ラデボー,ネイサン
ティー. ラデボー,ネイサン
ダイクストラ,ポール
ハロルド カラチャレ,ジャン
ハロルド カラチャレ,ジャン
デビッド クロス,ブライアン
デビッド クロス,ブライアン
ジェー. デルクス,パトリック
ジェー. デルクス,パトリック
スコット スタウバー,ウィリアム
スコット スタウバー,ウィリアム
ムーライ,ニシャド
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2020529055A publication Critical patent/JP2020529055A/ja
Application granted granted Critical
Publication of JP7007401B2 publication Critical patent/JP7007401B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)
  • Electrophonic Musical Instruments (AREA)
  • Stored Programmes (AREA)

Abstract

本明細書に記載のユーザインタフェースを生成するシステムは、システム内に存在する、又はシステムに結合されたハードウェアコンポーネントに基づいて、システムのタイプを検出し、及びシステムのタイプに基づいて、実行するユーザインタフェースマネージャを決定するためのプロセッサを含み得る。このプロセッサは、システムのユーザインタフェースを生成するために、ユーザインタフェースマネージャを実行することもでき、ユーザインタフェースマネージャのタイプは、ユーザインタフェースのレイアウトを示すための複数のルールを有する。

Description

背景
[0001] どのようなサイズのコンピュータデバイスも、一般的に意図された設計に固定されたユーザエクスペリエンスを生じさせることができる。各デバイスは、個別に、固定されたアプリケーション機能に基づいて、ユーザインタフェースを生成し得る。例えば、各デバイスは、ハードコーディングによって、又はアプリケーションを表示するための固定フォーマットを使用して、ユーザインタフェースを個別に生成し得る。
概要
[0002] 以下は、本明細書に記載する幾つかの局面の基本的理解をもたらすための簡略化した概要を提示する。この概要は、クレームされた特定事項の詳細な概説ではない。この概要は、クレームされた特定事項の主要又は必須の要素を識別すること、又はクレームされた特定事項の範囲を明確化することを意図したものではない。この概要の唯一の目的は、後に示されるより詳細な説明への準備段階として、クレームされた特定事項の幾つかの概念を簡略化した形式で提示することである。
[0003] 本明細書に記載の一実施形態は、システム内に存在する、又はシステムに結合されたハードウェアコンポーネントに基づいて、システムのタイプを検出するプロセッサを含む、ユーザインタフェースを生成するシステムを含む。このプロセッサは、システムのタイプに基づいて、実行するユーザインタフェースマネージャを決定し、及びシステムのユーザインタフェースを生成するために、ユーザインタフェースマネージャを実行することもでき、ユーザインタフェースマネージャは、ユーザインタフェースのレイアウトを示すための複数のルールを有する。
[0004] 本明細書に記載の別の実施形態では、ユーザインタフェースを生成する方法は、システム内に存在する、又はシステムに結合されたハードウェアコンポーネントに基づいて、システムのタイプを検出することを含み得る。この方法は、システムのタイプに基づいて、実行するユーザインタフェースマネージャを決定すること、及びシステムのユーザインタフェースを生成するために、ユーザインタフェースマネージャを実行することも含んでもよく、ユーザインタフェースマネージャは、ユーザインタフェースのレイアウトを示すための複数のルールを有する。
[0005] 本明細書に記載のさらに別の実施形態では、ユーザインタフェースを生成するシステムは、プロセッサと、プロセッサによる実行に応答して、システム内に存在する、又はシステムに結合されたハードウェアコンポーネントに基づいて、システムのタイプを検出すること、及びシステムのタイプに基づいて、ユーザインタフェースマネージャのビジュアルツリーから実行するユーザインタフェースマネージャを選択することであって、ビジュアルツリーがユーザインタフェースホストに存在することをプロセッサに行わせる複数の命令を保存するストレージデバイスとを含み得る。複数の命令は、システムのユーザインタフェースを生成するために、選択されたユーザインタフェースマネージャを実行することであって、選択されたユーザインタフェースマネージャが、ユーザインタフェースのレイアウトを示すための複数のルールを有することもプロセッサに行わせ得る。
[0006] 以下の説明及び添付の図面は、クレームされた特定事項のある特定の例示的局面を詳細に記載する。ただし、これらの局面は、本革新技術の原理が用いられ得る様々な方法のほんの幾つかを示すものであり、及びクレームされた特定事項は、そのような局面及びそれらの均等物の全てを含むことが意図される。クレームされた特定事項の他の利点及び新規の特徴は、図面と併せて考慮すると、本革新技術の以下の詳細な説明から明らかとなるだろう。
図面の簡単な説明
[0007] 以下の詳細な説明は、開示される特定事項の多数の特徴の具体的な例を包含する添付の図面を参照することによって、より理解され得る。
[0008]ルールに基づいてユーザインタフェースを生成し得るコンピューティングシステムの一例のブロック図である。 [0009]ルールに基づいてユーザインタフェースを生成する方法例のプロセスフロー図である。 [0010]ルールに基づいて複数のユーザアプリケーション用のユーザインタフェースを生成し得るシステム例のブロック図である。 [0011]ルールに基づいてユーザインタフェースを生成し得るコンピュータ可読ストレージ媒体例のブロック図である。 [0012]ユーザインタフェースマネージャ内でユーザインタフェースマネージャをホスティングするためのシステム例のブロック図である。
詳細な説明
[0013] ユーザインタフェースは、様々な静的再使用不可能な技術を使用して生成され得る。例えば、異なるデバイスに対するユーザインタフェースは、異なる機能セット、異なるデータ経路、及び異なるビジュアルコンポジションを用いて生成され得る。従って、アプリケーションは、デバイスのタイプごとにユーザインタフェースを生成するために、異なるコードを含むことが多い。これらのアプリケーションは、アプリケーションが実行されているデバイスに関する深いコンテキストも備え、及びユーザインタフェース制御部を直接ディスプレイデバイス上の画素座標にマッピングすることが多い。例えば、アプリケーションは、特にテキストフィールドなどのユーザ制御要素を表示させるために画素座標を指定し得る。
[0014] 本明細書に記載する技術は、ルールに基づいてユーザインタフェースを生成するシステムを提供する。幾つかの例では、ルールは、ある特定のデバイスのタイプに対応し得る。例えば、デスクトップコンピューティングデバイスのユーザインタフェースを生成するためのルールは、モバイルデバイスのユーザインタフェースを生成するためのルールとは異なり得る。幾つかの実施形態では、システムは、システム内に存在するハードウェアコンポーネントに基づいてシステムのタイプを検出し、及びシステムのタイプに基づいて、実行するユーザインタフェースマネージャのタイプを決定し得る。システムは、ユーザインタフェースマネージャを実行して、システムのユーザインタフェースを生成することもでき、ユーザインタフェースマネージャは、ユーザインタフェースのレイアウトを示すための複数のルールを有する。
[0015] 本明細書に記載の技術は、任意の数の異なるデバイスのユーザインタフェースを作成しながら、共有されるユーザインタフェースを生成するコードを可能にする。例えば、本明細書に記載の技術は、特に、共有コードがデスクトップデバイス、タブレットデバイス、モバイルデバイス、電話機器、ゲーム機デバイス、及び拡張現実デバイスのユーザインタフェースを生成するのを可能にし得る。共有コードは、デバイスの各タイプに対応したルールに基づいて、異なるユーザインタフェースを生成し得る。例えば、あるルールを用いてユーザアプリケーションを表示するコードは、デバイスの異なるタイプに対応した任意の数の異なるユーザインタフェースマネージャ間で共有され得る。
[0016] 予備事項として、図の幾つかは、機能性、モジュール、特徴、要素などと呼ばれる1つ又は複数の構造コンポーネントの文脈における概念を示す。図に示す様々なコンポーネントは、任意の態様で、例えば、ソフトウェア、ハードウェア(例えば、個別論理コンポーネントなど)、ファームウェアなど、又はこれらの実施の任意の組み合わせによって実施され得る。ある実施形態では、様々なコンポーネントは、実際の実施における対応するコンポーネントの使用を反映し得る。他の実施形態では、図に示されるどの単一のコンポーネントも、幾つかの実際のコンポーネントによって実施され得る。図における何れの2つ以上の個別のコンポーネントの描写も、単一の実際のコンポーネントによって行われる異なる機能を反映し得る。以下に述べる図1は、図に示す機能を実施するために使用され得る異なるシステムに関する詳細を提供する。
[0017] 他の図は、フローチャート形式で概念を示す。この形式では、ある複数の動作は、ある順序で行われる異なるブロックを構成するものとして示される。このような実施は、例示的及び非限定的なものである。本明細書に記載のある複数のブロックは、一緒にグループ化され、及び単一の動作で行われてもよく、ある複数のブロックは、複数のコンポーネントブロックに分割されてもよく、並びにある複数のブロックは、ブロックの並列実施態様を含む、本明細書に示される順序とは異なる順序で行われてもよい。フローチャートに示すブロックは、ソフトウェア、ハードウェア、ファームウェアなど、又はこれらの実施の任意の組み合わせによって実施され得る。本明細書では、ハードウェアは、コンピュータシステム、特定用途向け集積回路(ASIC)などの個別論理コンポーネントなど、及びこれらの任意の組み合わせを含み得る。
[0018] 専門用語に関しては、「構成された(configured to)」という表現は、ある種類の構造コンポーネントが識別された動作を行うように構築され得るあらゆるやり方を網羅する。構造コンポーネントは、ソフトウェア、ハードウェア、ファームウェアなど、又はこれらの任意の組み合わせを用いて動作を行うように構成され得る。例えば、「構成された」という表現は、関連付けられた機能性を実施するためのハードウェア要素の論理回路構造を指し得る。「構成された」という表現は、ファームウェア又はソフトウェアの関連付けられた機能性のコーディング設計を実施するためのハードウェア要素の論理回路構造も指し得る。「モジュール」という用語は、任意の適切なハードウェア(例えば、特にプロセッサ)、ソフトウェア(例えば、特にアプリケーション)、ファームウェア、又はハードウェア、ソフトウェア、及びファームウェアの任意の組み合わせを用いて実施され得る構造要素を指す。
[0019] 「論理」という用語は、タスクを行うためのあらゆる機能性を網羅する。例えば、フローチャートに示す各動作は、その動作を行うための論理に対応する。動作は、ソフトウェア、ハードウェア、ファームウェアなど、又はこれらの任意の組み合わせを用いて行われ得る。
[0020] 本明細書では、「コンポーネント」、「システム」、「クライアント」などの用語は、ハードウェア、ソフトウェア(例えば、実行中の)、及び/又はファームウェア、又はこれらの組み合わせの何れかであるコンピュータ関連エンティティを指すことが意図される。例えば、コンポーネントは、プロセッサ上で実行中のプロセス、オブジェクト、実行ファイル、プログラム、関数、ライブラリ、サブルーチン、及び/又はコンピュータ若しくはソフトウェア及びハードウェアの組み合わせでもよい。例示として、サーバ上で実行中のアプリケーション及びサーバの両方が、コンポーネントでもよい。1つ又は複数のコンポーネントが、プロセス内に存在してもよく、並びにコンポーネントは、1つのコンピュータ上でローカライズされてもよく、及び/又は2つ以上のコンピュータ間で分散されてもよい。
[0021] さらに、クレームされた特定事項は、開示した特定事項を実施するようにコンピュータを制御するためのソフトウェア、ファームウェア、ハードウェア、又はこれらの任意の組み合わせを作るための標準プログラミング及び/又はエンジニアリング技術を使用して、方法、装置、又は製品として実施され得る。本明細書における「製品」という用語は、どのような有形コンピュータ可読デバイス又は媒体からもアクセス可能なコンピュータプログラムを網羅することが意図される。
[0022] コンピュータ可読ストレージ媒体は、限定されないが、磁気ストレージデバイス(例えば、特にハードディスク、フロッピーディスク、及び磁気ストライプ)、光ディスク(例えば、特にコンパクトディスク(CD)及びデジタル多用途ディスク(DVD))、スマートカード、並びにフラッシュメモリデバイス(例えば、特にカード、スティック、及びキードライブ)を含み得る。対照的に、コンピュータ可読媒体一般(すなわち、ストレージ媒体ではない)は、無線信号などのための伝送媒体などの通信媒体を追加的に含み得る。
[0023] 図1は、ルールに基づいてユーザインタフェースを生成し得るコンピューティングシステムの一例のブロック図である。例示的システム100は、コンピューティングデバイス102を含む。コンピューティングデバイス102は、処理装置104、システムメモリ106、及びシステムバス108を含む。幾つかの例では、コンピューティングデバイス102は、他のコンピューティングデバイスの中でも、ゲーム機、パーソナルコンピュータ(PC)、付属コンソール、ゲームコントローラでもよい。幾つかの例では、コンピューティングデバイス102は、クラウドネットワークにおけるノードでもよい。
[0024] システムバス108は、限定されないがシステムメモリ106を含むシステムコンポーネントを処理装置104に結合させる。処理装置104は、様々な利用可能なプロセッサの何れであってもよい。処理装置104として、デュアルマイクロプロセッサ及び他のマルチプロセッサアーキテクチャも用いられ得る。
[0025] システムバス108は、当業者に知られている任意の各種の利用可能なバスアーキテクチャを使用した、メモリバス又はメモリコントローラ、周辺機器用バス又は外部バス、及びローカルバスを含む、幾つかのタイプのバス構造の何れであってもよい。システムメモリ106は、揮発性メモリ110及び不揮発性メモリ112を含むコンピュータ可読ストレージ媒体を含む。
[0026] 幾つかの実施形態では、起動中などにコンピュータ102内の要素間で情報を転送する基本ルーチンを包含する、統一拡張可能ファームウェアインタフェース(UEFI)マネージャ又は基本入出力システム(BIOS)が、不揮発性メモリ112に保存される。限定ではなく例示として、不揮発性メモリ112は、読出し専用メモリ(ROM)、プログラマブルROM(PROM)、電気的プログラマブルROM(EPROM)、電気的消去可能プログラマブルROM(EEPROM)、又はフラッシュメモリを含み得る。
[0027] 揮発性メモリ110は、外部キャッシュメモリとして機能するランダムアクセスメモリ(RAM)を含む。限定ではなく例示として、RAMは、スタティックRAM(SRAM)、ダイナミックRAM(DRAM)、シンクロナスDRAM(SDRAM)、ダブルデータレート方式SDRAM(DDR SDRAM)、エンハンストSDRAM(ESDRAM)、SynchLink(商標)DRAM(SLDRAM)、Rambus(登録商標)ダイレクトRAM(RDRAM)、ダイレクトRambus(登録商標)ダイナミックRAM(DRDRAM)、及びRambus(登録商標)ダイナミックRAM(RDRAM)などの多くの形式で利用可能である。
[0028] コンピュータ102は、取り外し可能/固定型、揮発性/不揮発性コンピュータストレージ媒体などの他のコンピュータ可読媒体も含む。図1は、例えば、ディスクストレージ114を示す。ディスクストレージ114は、限定されないが、磁気ディスクドライブ、フロッピーディスクドライブ、テープドライブ、Jazドライブ、Zipドライブ、LS-210ドライブ、フラッシュメモリカード、又はメモリスティックのようなデバイスを含む。
[0029] 加えて、ディスクストレージ114は、個別に、又は限定されないが、コンパクトディスクROMデバイス(CD−ROM)、CD記録可能ドライブ(CD−Rドライブ)、CD書換え可能ドライブ(CD−RWドライブ)、又はデジタル多用途ディスクROMドライブ(DVD−ROM)などの光ディスクドライブを含む他のストレージ媒体と組み合わせてストレージ媒体を含み得る。システムバス108に対するディスクストレージデバイス114の接続を容易にするために、インタフェース116などの取り外し可能又は固定型インタフェースが一般的に使用される。
[0030] 図1は、ユーザと、適切な動作環境100に示された基本コンピュータ資源との間の仲介者として機能するソフトウェアを示すと理解されるものとする。このようなソフトウェアは、オペレーティングシステム118を含む。ディスクストレージ114に保存され得るオペレーティングシステム118は、コンピュータ102の資源の制御及び割振りを行うように機能する。
[0031] システムアプリケーション120は、プログラムモジュール122及びシステムメモリ106又はディスクストレージ114に保存されたプログラムデータ124を用いたオペレーティングシステム118による資源の管理を利用する。開示される特定事項は、様々なオペレーティングシステム又はオペレーティングシステムの組み合わせを用いて実施され得ることが理解されるものとする。
[0032] ユーザは、入力デバイス126を用いて、コマンド又は情報をコンピュータ102に入力する。入力デバイス126は、限定されないが、マウス、トラックボール、スタイラスなどのポインティングデバイス、キーボード、マイクロフォン、ジョイスティック、サテライトディッシュ、スキャナ、TVチューナカード、デジタルカメラ、デジタルビデオカメラ、ウェブカメラ、任意の適切なダイヤルアクセサリ(物理的又は仮想)などを含む。幾つかの例では、入力デバイスは、ナチュラルユーザインタフェース(NUI)デバイスを含み得る。NUIは、マウス、キーボード、遠隔制御装置などの入力デバイスによって課せられる人工的な制約のない「自然な」態様で、ユーザがデバイスとインタラクトすることを可能にするあらゆるインタフェース技術を指す。幾つかの例では、NUIデバイスは、会話認識、接触及びスタイラス認識、スクリーン上及びスクリーンに隣接したジェスチャ認識、エアジェスチャ、頭部及び目の追跡、音声及び会話、視覚、接触、ジェスチャ、及び機械知能に依存したデバイスを含む。例えば、NUIデバイスは、タッチセンサ式ディスプレイ、音声及び会話認識、意図及び目標の理解、並びに立体カメラシステム、赤外線カメラシステム、RGBカメラシステム、及びこれらの組み合わせなどのデプスカメラを使用したモーションジェスチャ検出を含み得る。NUIデバイスは、加速度計又はジャイロスコープを用いたモーションジェスチャ検出、顔認識、3次元(3D)ディスプレイ、頭部、目、及び視線の追跡、没入型拡張現実及び仮想現実システムも含むことができ、これらは全て、より自然なインタフェースを提供する。NUIデバイスは、電界感知電極を使用して脳活動を感知する技術も含み得る。例えば、NUIデバイスは、脳の電気活動を検出するための脳波記録(EEG)及び関連の方法を使用し得る。入力デバイス126は、インタフェースポート128を介してシステムバス108を通して処理装置104に接続する。インタフェースポート128は、例えば、シリアルポート、パラレルポート、ゲームポート、及びユニバーサルシリアルバス(USB)を含む。
[0033] 出力デバイス130は、入力デバイス126と同じタイプのポートの幾つかを使用する。従って、例えば、USBポートは、入力をコンピュータ102に提供するため、及びコンピュータ102からの情報を出力デバイス130に出力するために使用され得る。
[0034] 出力アダプタ132は、出力デバイス130の中でも、アダプタを介してアクセス可能なモニタ、スピーカ、及びプリンタのような幾つかの出力デバイス130が存在することを示すために提供される。出力アダプタ132は、限定ではなく例示として、出力デバイス130とシステムバス108との間の接続手段を提供するビデオ及びサウンドカードを含む。遠隔コンピューティングデバイス134などの他のデバイス及びデバイスのシステムは、入力能力及び出力能力の両方を提供することが注目され得る。
[0035] コンピュータ102は、遠隔コンピューティングデバイス134などの1つ又は複数の遠隔コンピュータへの論理接続を使用したネットワーク化環境において様々なソフトウェアアプリケーションをホスティングするサーバでもよい。遠隔コンピューティングデバイス134は、ウェブブラウザ、PCアプリケーション、携帯電話アプリケーションなどを用いて構成されたクライアントシステムでもよい。遠隔コンピューティングデバイス134は、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ワークステーション、マイクロプロセッサベースの電化製品、携帯電話、ピアデバイス、又は他の共通ネットワークノードなどでもよく、及び一般的に、コンピュータ102に関連して記載される要素の多く又は全てを含む。
[0036] 遠隔コンピューティングデバイス134は、ネットワークインタフェース136を通してコンピュータ102に論理的に接続され、及び次に、無線でもよい通信接続138を介して接続され得る。ネットワークインタフェース136は、ローカルエリアネットワーク(LAN)及び広域ネットワーク(WAN)などの無線通信ネットワークを網羅する。LAN技術は、光ファイバ分散データインタフェース(FDDI)、銅線配線インタフェース(CDDI)、イーサネット、トークンリングなどを含む。WAN技術は、限定されないが、二地点間リンク、サービス総合デジタル網(ISDN)のような回線交換網及びそれらのバリエーション、パケット交換網、並びにデジタル加入者回線(DSL)を含む。
[0037] 通信接続138は、ネットワークインタフェース136をバス108に接続するために用いられるハードウェア/ソフトウェアを指す。通信接続138は、コンピュータ102内の図示の明瞭さのために示されるが、これは、コンピュータ102の外部にあってもよい。ネットワークインタフェース136への接続を行うためのハードウェア/ソフトウェアは、例示目的で、携帯電話スイッチ、通常の電話等級のモデム、ケーブルモデム、及びDSLモデムを含むモデム、ISDNアダプタ、及びイーサネットカードなどの内部及び外部技術を含み得る。
[0038] コンピュータ102は、さらに無線機140を含み得る。例えば、無線機140は、1つ又は複数の無線帯域で動作し得る無線ローカルエリアネットワーク無線機でもよい。例えば、無線機140は、2.4GHz又は5GHzの工業、科学、及び医療(ISM)無線帯域で動作し得る。幾つかの例では、無線機140は、任意の無線周波数の任意の適切な無線帯域で動作し得る。
[0039] コンピュータ102は、システム分析器142、ユーザインタフェース選択器144、及びユーザインタフェース生成器146などの1つ又は複数のモジュール122を含む。幾つかの実施形態では、システム分析器142は、システム内に存在する、又はシステムに結合されたハードウェアコンポーネントに基づいて、システムのタイプを検出し得る。例えば、閾値サイズ未満のディスプレイスクリーンを含むデバイスは、モバイルデバイスとして識別することができ、又はゲームコントローラに結合されたデバイスは、ゲーム機として識別することができる。幾つかの実施形態では、ユーザインタフェース選択器144は、システムのタイプに基づいて実行するユーザインタフェースマネージャのタイプを決定し得る。幾つかの例では、各タイプのデバイスは、別のユーザインタフェースマネージャに関連付けられ得る。本明細書で言及されるように、ユーザインタフェースマネージャは、オペレーティングシステムの外観を生成し得る任意の適切なアプリケーションを含み得る。幾つかの実施形態では、ユーザインタフェース生成器146は、システムのユーザインタフェースを生成するためにユーザインタフェースマネージャを実行することができ、ユーザインタフェースマネージャのタイプは、ユーザインタフェースのレイアウトを示すための複数のルールを有する。本明細書で言及されるように、レイアウトは、可視アプリケーション及びシステム制御部の2次元表現を含み得る。複数のルールは、特に、アプリケーションウィンドウがオーバーラップされ得るか否か、アプリケーションが全画面モードで、又は様々なオペレーティングシステムのメニュー及び機能に対応したディスプレイスクリーン上のある場所で見えるか否かを含み得る。ルールセットは、3Dユーザエクスペリエンス、又は音声のみのエクスペリエンスなどの非ビジュアルユーザエクスペリエンスさえも定義し得ることが分かる。
[0040] 図1のブロック図は、コンピューティングシステム102が図1に示すコンポーネントの全てを含むものであることを示す意図はないことが理解されるものとする。代わりに、コンピューティングシステム102は、より少ない数のコンポーネント、又は図1に示されない追加のコンポーネント(例えば、追加のアプリケーション、追加のモジュール、追加のメモリデバイス、追加のネットワークインタフェースなど)を含み得る。さらに、システム分析器142、ユーザインタフェース選択器144、及びユーザインタフェース生成器146の機能性の何れも、ハードウェアにおいて、及び/又は処理装置(本明細書ではプロセッサとも呼ばれる)104において、部分的又は完全に実施され得る。例えば、機能性は、特定用途向け集積回路を用いて実施され得る(論理的に、処理装置104において、又はその他のデバイスにおいて実施され得る)。
[0041] 図2は、ルールに基づいてユーザインタフェースを生成する方法例のプロセスフロー図である。方法200は、図1のコンピューティングシステム102などの任意の適切なコンピューティングデバイスを用いて実施され得る。
[0042] ブロック202では、システム分析器142は、システム内に存在する、又はシステムに結合されたハードウェアコンポーネントに基づいて、システムのタイプを検出し得る。例えば、システムのタイプは、特に、拡張現実デバイス、タブレットデバイス、モバイルデバイス、電話機器、ゲーム機デバイス、又はデスクトップデバイスを含み得る。幾つかの実施形態では、システム分析器142は、ディスプレイスクリーン、プロセッサ、グラフィックプロセッサ、セルラー無線機などの任意の適切なハードウェアコンポーネントに基づいて、システムのタイプを検出し得る。幾つかの例では、システム分析器142は、セルラー無線機を含むシステムが電話機器であると決定し得る。幾つかの実施形態では、システム分析器142は、デバイスのディスプレイスクリーンのサイズに基づいて、デバイスのタイプを決定し得る。例えば、所定の閾値サイズよりも小さいディスプレイスクリーンを含むデバイスは、モバイルデバイスとして識別され得る。幾つかの実施形態では、システム分析器142は、3次元ユーザインタフェースをサポートするデバイスが拡張現実デバイスであり、及びゲームコントローラに接続するデバイスがゲーム機デバイスであることを決定し得る。幾つかの実施形態では、システム分析器142は、電源、グラフィックプロセッサ、メモリデバイスなどの他のハードウェアコンポーネントに基づいて、デバイスのタイプを検出し得る。これらの実施形態のそれぞれにおいて、システム分析器142は、モバイルデバイスに使用されるモジュール122の特定の組み合わせ、又はデスクトップデバイスに使用されるモジュール122の別の組み合わせの存在などの所定の条件の組み合わせ、並びに、現在のシステムのタイプ及び構成の最終決定を行うためにここで呼び出されるヒューリスティックを使用し得る。
[0043] ブロック204では、ユーザインタフェース選択器144は、システムのタイプに基づいて実行するユーザインタフェースマネージャを決定し得る。幾つかの実施形態では、ユーザインタフェースマネージャ(本明細書ではコンポーザとも呼ばれる)は、システムのタイプに基づいてユーザインタフェースを生成し得る。例えば、ユーザインタフェースは、オーバーラップするウィンドウをデスクトップデバイス上では有効にするが、モバイルデバイス上では有効にしないことが可能である。加えて、ユーザインタフェースマネージャは、特徴の中でも、実行中のアプリケーションに対応するアイコンと共に情報端末へのリンクを含むアプリケーションスイッチャを含み得る。ユーザインタフェース選択器144は、デバイスに対応するユーザエクスペリエンスを生じさせるように実行するユーザインタフェースマネージャを決定し得る。幾つかの実施形態では、デバイスの各タイプは、特定のユーザインタフェースマネージャに関連付けられる。例えば、拡張現実デバイスは、第1のユーザインタフェースマネージャを備えてもよく、及びゲーム機デバイスは、第2のユーザインタフェースマネージャを備えてもよい。以下により詳細に述べるように、各ユーザインタフェースマネージャは、実行中のアプリケーションに関するユーザインタフェースがどのように生成されるかを示し得る。
[0044] ブロック206では、ユーザインタフェース生成器146は、システムのユーザインタフェースを生成するためにユーザインタフェースマネージャを実行することができ、ユーザインタフェースマネージャのタイプは、ユーザインタフェースのレイアウトを示すための複数のルールを有する。複数のルールは、実行中のアプリケーション、並びに特に、アプリケーションランチャ、アプリケーションスイッチャ、及びウィンドウリストなどの他のビジュアル(これらは、独立したアプリケーション、又は例えばクロックを示す方法を定義するユーザマネージャルールの一群であってもよいし、或いはそうでなくてもよい)を表示する方法を示し得る。本明細書で言及されるように、アプリケーションランチャは、システムにインストールされた実行可能アプリケーションのリスト、最近アクセスされ、システムにインストールされたアプリケーションのリスト、システムにインストールされる推奨アプリケーションなどを含み得る。幾つかの例では、アプリケーションランチャは、プログラム、文書、及び設定にアクセスし得るコマンドを含み得る。これらのコマンドは、ローカルに保存されたアプリケーション及びファイルに基づいた検索機能、デバイス上でローカルに、又は遠隔サーバ上で利用可能な文書のリスト、デバイスのコンポーネントを構成するための制御パネル、デバイスの電源状態を変更するための電源機能コマンドなどを含み得る。本明細書で言及されるように、プリケーションスイッチャは、情報端末へのリンク、全ての開いたアプリケーションを示すタスクビュー、実行中のアプリケーションに対応したアイコンセット、並びにデバイスが電力を受け取るたびに有効にされるアプリケーション及びハードウェア特徴に対応する様々なアイコンを含み得る。
[0045] 幾つかの実施形態では、複数のルールは、アプリケーションランチャ、アプリケーションスイッチャ、及び実行中のアプリケーションに対応したウィンドウによって占有されるスクリーンのエリアを示し得る。複数のルールは、実行中のアプリケーションによる画素ごとのマッピングに依存しなくてもよい。例えば、ユーザインタフェース制御部は、ルールに基づいて、ディスプレイスクリーンの領域に表示され得る。幾つかの例では、テキストフィールドが、アプリケーションの中心に表示されてもよく、及びテキストフィールドの場所は、複数のルールに基づいて、ユーザインタフェース生成器146によって決定されてもよい。例えば、テキストフィールドの場所は、アプリケーションウィンドウが互いにオーバーラップしているか否か、2つ以上のアプリケーションウィンドウが見えるかどうかなどに依存し得る。ユーザインタフェース制御部の場所は、アプリケーションスイッチャのサイズ及び場所に基づいて調節することもできる。例えば、アプリケーションスイッチャは、ディスプレイスクリーンの上部、下部、左側、又は右側に沿って表示され得る。各タイプのユーザインタフェースマネージャは、アプリケーションスイッチャの場所との関連でアプリケーションウィンドウの場所を決定し得る。幾つかの実施形態では、ユーザインタフェース生成器146は、ユーザインタフェースマネージャに対応する少なくとも1つの表示特徴に基づいて、ユーザインタフェースを表示し得る。例えば、ゲーム機デバイスのユーザインタフェースマネージャは、フレーム又はアドーンメントなしの全画面モードでアプリケーションを表示し得る。幾つかの実施形態では、ユーザインタフェースマネージャ146は、アプリケーションスイッチャ及びデスクトップ背景も表示し得る。以下により詳細に記載するように、アプリケーションスイッチャは、ハードウェア制御アプリケーション、実行アプリケーション、情報端末などに対応する任意の数のアイコンを含み得る。デスクトップ背景は、任意の適切な画像、任意の数のローカルに保存されたファイルへのリンク、ディレクトリへのリンクなどを含み得る。
[0046] アプリケーションランチャ、アプリケーションスイッチャ、ウィンドウアドーンメント、アクションセンター、及び本明細書で述べるユーザインタフェースエクスペリエンスの他の例などのユーザインタフェース概念は、本質的に例示的なものであることが分かる。ユーザインタフェース生成器146に提示された複数のルールは、望まれるどのようなユーザエクスペリエンスも生じさせ得る。また、このようなルールの複雑さに制限はない。あるルールは、単に、テキストの要素が何時及びどのようにスクリーン上に置かれるかを示し、他のルールは、多数の可能性のある結果を有する多段3Dエクスペリエンスを定義し得る。
[0047] ある実施形態では、図2のプロセスフロー図は、方法200のブロックが特定の順序で実行されることを示すことが意図される。代替的に、他の実施形態では、方法200のブロックは、任意の適切な順序で実行することができ、及び方法200の任意の適切な数のブロックが含まれ得る。さらに、特定のアプリケーションに応じて、方法200内で任意の数の追加のブロックが含まれてもよい。幾つかの実施形態では、方法200は、システム又はデバイスが、第1のタイプのデバイスから第2のタイプのデバイスへと変わったことを検出することを含み得る。例えば、モバイルデバイスは、より大きなディスプレイスクリーンを提供するドッキングステーションに挿入され得る。ユーザインタフェース生成器146は、モバイルデバイスの利用可能なハードウェア資源への変更を検出し、及びモバイルデバイスベースのユーザインタフェースに代わるデスクトップベースのユーザインタフェースを生成し得る。幾つかの実施形態では、方法200は、外部モニタがモバイルデバイス又は電話機器に結合されたことを検出することも含み得る。ユーザインタフェースマネージャ146は、外部モニタのサイズが所定の閾値を超える場合には、デスクトップユーザインタフェースに基づいて、別個のユーザインタフェースを生成し得る。
[0048] 幾つかの実施形態では、方法200は、少なくとも1つのアクティブアプリケーション及び少なくとも1つの可視アプリケーションを含むユーザインタフェースを生成することを含み得る。アクティブアプリケーションは、アプリケーションがユーザ入力を受け付けていることを示すことができ、一方、可視アプリケーションは、表示され得るが、ユーザ入力は受け付けていない。幾つかの実施形態では、方法200は、第2のユーザインタフェースマネージャを実行することも含むことができ、第2のユーザインタフェースマネージャは、アクションセンター及び通知検出器アプリケーションを実行するものである。幾つかの実施形態では、方法200は、少なくとも2つの下位ユーザインタフェースマネージャを管理することも含むことができ、少なくとも2つの下位ユーザインタフェースマネージャのそれぞれは、別個のアプリケーションを実行するものである。
[0049] 幾つかの実施形態では、方法200は、入力デバイスがシステムに結合されたことを検出すること、及び入力デバイスに基づいて、新しいユーザインタフェースマネージャを生成することも含むことができ、入力デバイスは、ゲームコントローラであり、及び新しいユーザインタフェースマネージャは、ゲーム機ユーザインタフェースを提供するものである。加えて、方法200は、ユーザインタフェースマネージャから新しいユーザインタフェースマネージャへの移行に応答して、ユーザインタフェースの状態を保存することを含み得る。
[0050] 幾つかの実施形態では、ユーザインタフェースマネージャは、様々な構成を用いて実施され得る。例えば、ユーザインタフェースマネージャは、特に、ビジュアル及びアドーンメントを含む実行アプリケーション、ユーザインタフェースマネージャのメインスレッドにおける持続的ユーザインタフェース、ユーザインタフェースマネージャの非メインスレッドにおける持続的ユーザインタフェース(プロセスアプリケーション外のホストシェルエクスペリエンスとして)、又は再帰的に作成されたユーザインタフェースマネージャを用いて実施され得る。ユーザインタフェースマネージャの様々な構成が、図3に関連して以下に例示及び説明される。
[0051] 図3は、ルールに基づいて複数のユーザアプリケーション用のユーザインタフェースを生成し得るシステム例のブロック図である。ルールは、ある領域の中心にテキストブロックを表示するなどの高レベル概念、又はルール作成者が、ある領域のサイズを決定し、及びその領域においてテキストを数学的中心に置くことを必要とする概念などの低レベル概念として表すことができる。ユーザインタフェースマネージャ300は、任意の適切な数のアプリケーション及びソフトウェアコンポーネントを用いて実行され得る。例えば、ユーザインタフェースマネージャ300は、Windows.UI.Composition又はExtensible Application Markup Language(XAML)を使用して、ユーザインタフェース又はビジュアルツリーのルート302で開始するシェルの作成をもたらす様々なルールを命令的又は宣言的に記述することができる。他の実施形態では、ユーザインタフェースマネージャ300は、様々な形式の何れかのHTML、OpenGL、Vulkan、Collada、又はオンスクリーンエクスペリエンスを記述するビジュアルツリーを生成するためにユーザエクスペリエンスルールが変換されるやり方の定義及び管理を行うための他の既存のユーザエクスペリエンスフレームワークなどの任意の利用可能な技術を使用し得る。ユーザインタフェースマネージャ300は、他のシェルコンポーネントアプリケーション又は他のアプリケーションエクスペリエンスの他のトップレベルビジュアルなどにおける、プロセスの外で実行中のビジュアルを作成するためにこれらのルールを使用することが可能となる。幾つかの実施形態では、ユーザインタフェースマネージャ300は、シェルエクスペリエンス全体を反映するやり方で、シェルの異なるより小さな共通コンポーネントを一緒に作成することによって、特定のユーザインタフェース又はシェルエクスペリエンスを実施し得る。また、ユーザインタフェースマネージャ300は、システム分析器142に基づいて、ある特定のシェルエクスペリエンスを実現するためにコンポーネントの特性を構成し得る。
[0052] 幾つかの実施形態では、ユーザインタフェースマネージャ300は、プライベートアプリケーションプログラミングインタフェース(API)のセットを用いて、基礎となるシェル又はユーザインタフェースと通信し得る。これらのプライベートAPIは、ユーザインタフェースマネージャがシェルに関連付けられたシェルタスクに対応する命令を実行することを可能にし得る。シェルタスクは、アプリケーションの起動及び寿命管理、アプリケーション又はプロセスロック、アプリケーションのサイズ変更、アプリケーションの可視性の変更、シャットダウン、並びに他のシェル特徴を含み得る。幾つかの実施形態では、ユーザインタフェースマネージャ300は、シェルの現在の状態も反映し得る。シェルの状態は、アクティブビュー、実行中アプリケーション、現在のスクリーン解像度、及び他のシェル状態情報を含み得る。
[0053] 幾つかの実施形態では、ユーザインタフェースマネージャ300は、シェルエクスペリエンスの他に、ユーザアプリケーションのビジュアルをユーザに提示し得る。これらのアプリケーションは、アプリケーションの選択のフレームワークを使用して、バッファ(DCOMPビジュアル面又は他の類似の技術によって表現される)内にペイントし得る。このような例においては、バッファは、スクリーンに直接ペイントせず、及びデフォルト設定で、スクリーン上に単独でのることはない。より正確に言えば、ユーザインタフェースマネージャ300は、アプリケーションのビジュアルを選択し、及びそのアプリケーションを表示することができる。幾つかの実施形態では、ユーザインタフェースマネージャ300は、ユーザアプリケーションのトップレベルのビジュアルの上に、タイトルバー又はドロップシャドウなどのアドーンメントも追加し得る。幾つかの実施形態では、ユーザインタフェースマネージャ300は、特にスプラッシュスクリーンなどの任意のアプリケーションごとのウィンドウコンテンツも示し得る。
[0054] 一例では、ユーザインタフェースマネージャ300は、システム上で実行中のアプリケーションのリストを提供するウィンドウリスト制御部304の機能と通信し得る。ユーザインタフェースマネージャ300によって適用されるユーザインタフェースルールに基づいて、リスト中の各アプリケーションは、タイトルバー310又は312、及びウィンドウコンテンツホスト314又は316にも関連付けられる、ウィンドウユーザインタフェース制御部306又は308に関連付けられ得る。結果として得られるユーザインタフェースルールは、例えば、ドラッグされたウィンドウが、移動のレンダリング変換が偶然協調的にアプリケーションのコンポジションビジュアルである子ビジュアルに適用されるため、ウィンドウのコンテンツも移動させることを可能にする。図3の例では、ウィンドウコンテンツホスト314は、アクティブユーザアプリケーション1(318)を表示し、及びウィンドウ制御ホスト316は、可視ユーザアプリケーション2(320)を表示する。アクティブアプリケーション318を包むタイトルバー310と、アクティブアプリケーション320を包むタイトルバー312との間のビジュアル表現の差も示され、及びユーザインタフェース生成器146によって処理されたユーザインタフェースルールにより管理される。ユーザインタフェースマネージャ300は、ユーザアプリケーション1(318)及びユーザアプリケーション2(320)がオーバーラップされ得るかどうか、サイドバイサイドで見られ得るかどうか、サイズ変更され得るかどうかなどを示し得る。
[0055] 図3のブロック図は、ユーザインタフェースマネージャ300が図3に示すコンポーネントの全てを包含するビジュアル表現を作成するものであることを示すことが意図されないことが理解されるものとする。より正確に言えば、ユーザインタフェースマネージャ300は、より少ない数のコンポーネント、又は図3に示されない追加のコンポーネント(例えば、追加のアプリケーション、追加のモジュール、追加のエクスペリエンスなど)をビジュアルツリーに含ませることができる。
[0056] 図4は、ルールに基づいてユーザインタフェースを生成し得るコンピュータ可読ストレージ媒体例のブロック図である。有形コンピュータ可読ストレージ媒体400は、コンピュータバス404上でプロセッサ402によってアクセスされ得る。さらに、有形コンピュータ可読ストレージ媒体400は、プロセッサ402に本方法のステップを行うように指示するコードを含み得る。
[0057] 本明細書で述べる様々なソフトウェアコンポーネントは、図4に示すように、有形コンピュータ可読ストレージ媒体400に保存され得る。例えば、有形コンピュータ可読ストレージ媒体400は、システム内に存在するハードウェア及びソフトウェアコンポーネントに基づいてシステムのタイプを検出し得るシステム分析器406を含み得る。幾つかの実施形態では、ユーザインタフェース選択器408は、システムのタイプに基づいて実行するユーザインタフェースマネージャを決定し得る。幾つかの実施形態では、ユーザインタフェース生成器410は、システムのユーザインタフェースを生成するためにユーザインタフェースマネージャの上記タイプを実行することができ、このユーザインタフェースマネージャのタイプは、ユーザインタフェースのレイアウトを示すための複数のルールを有する。
[0058] 特定のアプリケーションに応じて、有形コンピュータ可読ストレージ媒体400内に、図4に示されない任意の数の追加のソフトウェアコンポーネントが含まれ得ることが理解されるものとする。
[0059] 図5は、ユーザインタフェースマネージャ内でユーザインタフェースマネージャをホスティングするためのシステム例のブロック図である。幾つかの実施形態では、複数のユーザインタフェースマネージャは、同時にアクティブになることが可能であり、並びにシステムは、システムの状態及び任意の数のルールに基づいて、これらのユーザインタフェースマネージャの1つ又は複数間でモーフィングし得る。幾つかの例では、ユーザインタフェースマネージャは、同時に表現されることも可能であり、その場合、複数のユーザインタフェースマネージャが互いに独立して使用される。例えば、デスクトップPCなどのデバイスのユーザインタフェースは、より効率的にタブレットモードへと、及びタブレットモードからモーフィングし得る。幾つかの例では、モーフィングが可能となるようにこれらのエクスペリエンスにおいてホスティングされる要素を理解し、及び表現するグローバルデータモデル及びビューモデルが存在する。
[0060] 図5に示すように、ユーザインタフェースホスト500は、システムのタイプに基づいて実行するユーザインタフェースマネージャを決定するためにシステム分析器142によって使用及び解釈され得る、製品ポリシー、並びに表示及び入力ポリシー502などのルールを含み得る。ユーザインタフェースホスト500は、製品ポリシー、表示及び入力ポリシー502、及びシステムの状態に基づいて、ビジュアルツリー504を生成し得る。ビジュアルツリー504は、ルートビジュアル506、ユーザインタフェースマネージャ1(508)、ユーザインタフェースマネージャ2(510)、及びユーザインタフェースマネージャ3(512)を含み得る。ルール及びシステムの状態に応じて、ユーザインタフェースを生成するために、ユーザインタフェースマネージャ1(508)、ユーザインタフェースマネージャ2(510)、又はユーザインタフェースマネージャ3(512)の何れかが使用され得る。ユーザインタフェースホスト500が、それぞれが1つ若しくは複数のユーザインタフェースマネージャ、又はユーザインタフェースマネージャ自体が他のユーザインタフェースマネージャをカプセル化し得る状況を有する複数のビジュアルルートを作成する代替実施形態が存在する。
[0061] ある実施形態では、図5のユーザインタフェースホスト500は、ツーインワンポータブルコンピュータ用のユーザエクスペリエンスを提示することが可能なユーザインタフェースホストを表し得る。キーボードを取り付け、且つアクティブにすると、このようなデバイスは、従来のラップトップコンピュータのように挙動するが、キーボードを取り外すと、同じデバイスがタブレットコンピュータのように挙動する。ユーザインタフェースホスト500は、特に、キーボードがアクティブであるとき、又はアクティブではないときを決定するためにシステム分析器406を使用する。キーボードがアクティブであるとユーザインタフェースホスト500が決定すると、ユーザインタフェースホスト500は、ユーザインタフェースマネージャ508を有効にする。前述の通り、ユーザインタフェースマネージャ508は、ラップトップコンピュータのユーザに適したユーザエクスペリエンスを生じさせるために、ユーザインタフェース生成器410と共に複数のルールを使用する。このようなユーザエクスペリエンスは、アプリケーションのオーバーラップするウィンドウの使用、並びに特にマウス及びキーボードの使用に最適化されたユーザエクスペリエンスを含み得る。
[0062] 後で、ユーザは、キーボードを取り外す(これは、キーボードがもはやアクティブではないことをシステム分析器406に認識させ、及びユーザインタフェースマネージャ508がもはやユーザに提示する正しいエクスペリエンスではないことをユーザインタフェースホスト500に決定させる)などのアクションを行い得る。ここに記載する能力により、ユーザインタフェースホスト500は、システムとインタラクトするユーザの能力に影響を与えることなく、よりタブレットに適したエクスペリエンスを表現するユーザマネージャ510へとユーザマネージャ508をモーフィングさせることが可能となる。タブレットモードエクスペリエンスは、オーバーラップするウィンドウの使用を単一の全画面エクスペリエンス及び特にタッチ使用に最適化されたユーザエクスペリエンスに置き換え得る。本明細書で言及されるように、モーフィングのプロセスは、全て、ユーザ入力をサポートするため、又は他のタスクを行うためのタイトルバー310又はタイトルバー312などのコンポーネント化ビジュアル要素の能力を維持しながら、アニメーション技術などを使用した、システムのあるビジュアル状態から別のビジュアル状態への滑らかなビジュアル移行を示唆する。このような実施形態の1つでは、これは、トップレベルアプリケーションビジュアル及びシステム全体を通して提示される他の主要ビジュアルコンポーネントの状態に関する情報の中央集中リポジトリを備えることによって達成される。このリポジトリに保存されたこの状態は、これらのトップレベルアプリケーションビジュアル及び他の要素を提示するために各ユーザインタフェースマネージャによって使用されるルール及び情報から独立している。リポジトリ内のこの状態情報の一部は、これらのビジュアル要素と、それらをスクリーン上に示す責任を負うユーザインタフェースマネージャとの間に存在する関連性である。キーボードがもはやアクティブではないことをシステム分析器406が決定し、及びユーザインタフェースマネージャ508がユーザインタフェースマネージャ510に置き換えられることを示すことによってユーザインタフェースホスト500が応答すると、この状態リポジトリ内の情報、及びユーザインタフェースマネージャとのゆるい結合の組み合わせにより、ユーザインタフェースマネージャ510へのユーザインタフェースマネージャ508の迅速且つ効率的な置き換えが可能となる。加えて、アニメーション及び他の挙動のルールを同時に解釈するためのユーザインタフェース生成器410の使用は、ユーザインタフェースマネージャ508からユーザインタフェースマネージャ510へのビジュアル及び入力の滑らかな移行をもたらす。トップレベルアプリケーションビジュアルのための共通状態リポジトリの使用などの、ここで呼び出される方法及び技術は、単なる例であり、並びに他の実施形態は、同様の効果を得るために、異なるアプローチや、ハードウェア及びソフトウェアの異なる組み合わせを用い得ることが分かる。
[0063] 代替実施形態では、ユーザインタフェースホスト500は、ユーザインタフェースマネージャが再帰的に互いに埋め込まれる環境を生じさせることが可能となる。オーバーラップするウィンドウを使用し、及び仮想デスクトップパラダイムを含む従来のデスクトップコンピュータを考察する。仮想デスクトップは、ユーザが別のデスクトップを作成することを可能にする、多くの近代オペレーティングシステムユーザエクスペリエンスの1つの特徴である。この場合、ユーザは、異なるタスクを分離する方法として、これらのデスクトップをそれぞれ切り替えることができる。例えば、ユーザは、あるプロジェクトに関連した仕事関連アプリケーションを管理するためのあるデスクトップ、別のプロジェクト用の仕事関連アプリケーションを管理するための別のデスクトップ、及び私生活に関連したアプリケーションを管理するための別のデスクトップを使用し得る。多くの場合、このような仮想デスクトップの実施は、各仮想デスクトップ上で、デスクトップ背景などの異なるカスタマイズを適用することを可能にする。幾つかの例では、それらは、相互排他的であり、これは、仕事用仮想デスクトップ及び個人用仮想デスクトップの両方を同時に見ることはできないことを意味する。図5及びユーザインタフェースホスト500に戻り、ユーザインタフェースマネージャ508、510、及び512の各インスタンスが、デスクトップエクスペリエンスを表現する適宜のルールセットを用いてユーザインタフェース生成器410によって構成されることを考察する。次に、ユーザによって、ユーザインタフェースマネージャ508が第1の仕事プロジェクト用のアプリケーションと関連付けられ、ユーザインタフェースマネージャ510が第2の仕事プロジェクト用のアプリケーションと関連付けられ、及びユーザインタフェースマネージャ512が第3の仕事プロジェクト用のアプリケーションと関連付けられると仮定する。上述の例に記載したような技術を使用して、ユーザの選択に応じて適宜のユーザインタフェースマネージャ508、510、又は512を提示するために、システム分析器406によって提供されるユーザフィードバックをユーザインタフェースホスト500が使用することが可能である。この機能性は、仮想デスクトップ実施にマッチする。
[0064] ある実施形態では、ユーザインタフェースマネージャ510がデスクトップエクスペリエンスの独立したインスタンスである(これ自体が、ユーザインタフェースマネージャ508及び512から分離している)という事実により、ユーザが、ユーザインタフェースマネージャ508、510、及び512の任意の組み合わせを同時にユーザに提示させることを可能にする。これにより、例えば、ユーザがユーザインタフェースマネージャ508及びユーザインタフェースマネージャ510の両方を同時に示し、及びそれらとインタラクトすることが可能となり、ユーザが両デスクトップエクスペリエンスと同時にインタラクトすることが可能となる。このようなこのエクスペリエンスの実施形態の1つは、ユーザマネージャ508内で、別個のオーバーラップウィンドウとして、ユーザマネージャ510をホスティングすることを可能にする。同様に、個人情報を含んでいるユーザインタフェースマネージャ512は、ユーザエクスペリエンスマネージャ508によってウィンドウでホスティングされ得る。このような構成では、図5に示すようなルートビジュアル506と、ユーザインタフェースマネージャ510及び512との間の接続が除去され、並びにそれらは、代わりに、ユーザインタフェースマネージャ508の子として接続される。前述したような技術を使用して、ユーザインタフェースマネージャ510及び512は、それらがユーザインタフェースマネージャ508の下でホスティングされるため、滑らかにそれらのエクスペリエンスを適切にモーフィングすることが可能となるであろう。
[0065] ある代替実施形態では、システム400は、システム分析器、並びに他の適宜のハードウェア及びソフトウェアアフォーダンスにより、システムの区分化を生じさせるために、図1に示すような入力デバイス126及び出力デバイス130の異なる関連性を生じさせることが可能となり得る。例えば、4つの入力デバイス126(2つのマウス及び2つのキーボードなど)、並びに取り付けられた2つの出力デバイス130(コンピュータモニタなど)を備えたデスクトップコンピュータを考察する。これらのハードウェア及びソフトウェアアフォーダンスを使用して、システムは、マウス、キーボード、及びモニタの2つの異なる群に区分することができる。これらの区分のそれぞれは、システム分析器406を介してユーザインタフェースホスト500に可視となるであろう。ユーザインタフェースホスト500によって提供されるアフォーダンスを使用して、別個のユーザエクスペリエンスをこれらの区分のそれぞれと関連付けることができる。例えば、ユーザインタフェースホスト500は、ユーザインタフェース508を第1の区分と関連付け、及びユーザインタフェース510を第2の区分と関連付けることにより、1人又は複数のユーザがこれらのユーザインタフェースと同時にインタラクトすることが可能となり得る。
[0066] 本明細書に記載のこれらの例のそれぞれにおいて、ユーザインタフェースホスト500がこれらの構成においてユーザエクスペリエンス508及び510を同時に示すことができる環境を生じさせることができる(これは、ユーザエクスペリエンス508及び510を相互排他的に示すために必要とされる環境と異なるものでなくてもよい)。ユーザインタフェースマネージャ及びユーザインタフェース生成器の使用により、これらの状況の複雑さを生じさせ、且つそれを管理する負担は、効果的に大幅に単純化されており、より大きな全体的エクスペリエンスのコンポーネントとしてのシステムユーザエクスペリエンス全体の再利用を可能にする。さらに、本明細書で用いた例は、いかなる形式又は機能にも限定されないことが分かる。ある代替実施形態では、ユーザインタフェースマネージャ508、510、及び512は、全てが同じエクスペリエンスであるのではなく、デスクトップエクスペリエンス、ゲーム機エクスペリエンス、及びメディア室エンターテイメントエクスペリエンスなどの異なる別のエクスペリエンスを表し得る。
例1
[0067] ある実施形態では、システム内に存在する、又はシステムに結合されたハードウェアコンポーネントに基づいて、システムのタイプを検出するプロセッサを含むユーザインタフェースを生成するシステム。プロセッサは、システムのタイプに基づいて、実行するユーザインタフェースマネージャを決定し、及びシステムのユーザインタフェースを生成するためにユーザインタフェースマネージャを実行することもでき、ユーザインタフェースマネージャは、ユーザインタフェースのレイアウトを示すための複数のルールを有する。
[0068] 代替的又は追加的に、ユーザインタフェースは、少なくとも1つのアクティブアプリケーション及び少なくとも1つの可視アプリケーションを含み得る。代替的又は追加的に、システムのタイプは、モバイルシステム、ゲーム機システム、拡張現実システム、タブレットシステム、又はデスクトップシステムを含む。代替的又は追加的に、プロセッサは、ユーザインタフェースマネージャに対応する少なくとも1つの表示特徴に基づいて、ユーザインタフェースを表示するものである。代替的又は追加的に、ユーザインタフェースマネージャは、少なくとも2つの下位ユーザインタフェースマネージャを管理するものであり、少なくとも2つの下位ユーザインタフェースマネージャのそれぞれは、別個のアプリケーションを実行するものである。代替的又は追加的に、ユーザインタフェースマネージャは、エクスペリエンスをサポートするシェルアプリケーションを管理するものでもある。代替的又は追加的に、ユーザインタフェースマネージャは、エクスペリエンスをサポートするシェルエクスペリエンスホストを管理するものでもある。代替的又は追加的に、プロセッサは、入力デバイスがシステムに結合されていることを検出し、及び入力デバイスに基づいて新しいユーザインタフェースマネージャを生成するものである。代替的又は追加的に、入力デバイスは、ゲームコントローラであり、及び新しいユーザインタフェースマネージャは、ゲーム機ユーザインタフェースを提供するものである。代替的又は追加的に、プロセッサは、ユーザインタフェースマネージャから新しいユーザインタフェースマネージャへの移行に応答して、ユーザインタフェースの状態を保存するものである。
例2
[0069] 本明細書に記載の別の実施形態では、ユーザインタフェースを生成する方法は、システム内に存在する、又はシステムに結合されたハードウェアコンポーネントに基づいて、システムのタイプを検出することを含み得る。この方法は、システムのタイプに基づいて、実行するユーザインタフェースマネージャを決定すること、及びシステムのユーザインタフェースを生成するためにユーザインタフェースマネージャを実行することも含んでもよく、ユーザインタフェースマネージャは、ユーザインタフェースのレイアウトを示すための複数のルールを有する。
[0070] 代替的又は追加的に、ユーザインタフェースは、少なくとも1つのアクティブアプリケーション及び少なくとも1つの可視アプリケーションを含み得る。代替的又は追加的に、システムのタイプは、モバイルシステム、ゲーム機システム、拡張現実システム、タブレットシステム、又はデスクトップシステムを含む。代替的又は追加的に、この方法は、ユーザインタフェースマネージャに対応する少なくとも1つの表示特徴に基づいて、ユーザインタフェースを表示することを含み得る。代替的又は追加的に、ユーザインタフェースマネージャは、少なくとも2つの下位ユーザインタフェースマネージャを管理するものであり、少なくとも2つの下位ユーザインタフェースマネージャのそれぞれは、別個のアプリケーションを実行するものである。代替的又は追加的に、ユーザインタフェースマネージャは、エクスペリエンスをサポートするシェルアプリケーションを管理するものでもある。代替的又は追加的に、ユーザインタフェースマネージャは、エクスペリエンスをサポートするシェルエクスペリエンスホストを管理するものでもある。代替的又は追加的に、この方法は、入力デバイスがシステムに結合されていることを検出すること、及び入力デバイスに基づいて新しいユーザインタフェースマネージャを生成することを含み得る。代替的又は追加的に、入力デバイスは、ゲームコントローラであり、及び新しいユーザインタフェースマネージャは、ゲーム機ユーザインタフェースを提供するものである。代替的又は追加的に、この方法は、ユーザインタフェースマネージャから新しいユーザインタフェースマネージャへの移行に応答して、ユーザインタフェースの状態を保存することを含み得る。
例3
[0071] 本明細書に記載のさらに別の実施形態では、ユーザインタフェースを生成するシステムは、プロセッサと、プロセッサによる実行に応答して、システム内に存在する、又はシステムに結合されたハードウェアコンポーネントに基づいて、システムのタイプを検出すること、及びシステムのタイプに基づいてユーザインタフェースマネージャのビジュアルツリーから実行するユーザインタフェースマネージャを選択することをプロセッサに行わせる複数の命令を保存するストレージデバイスとを含んでもよく、ビジュアルツリーは、ユーザインタフェースホスト内に存在するものである。複数の命令は、システムのユーザインタフェースを生成するために選択されたユーザインタフェースマネージャを実行することをプロセッサに行わせることもでき、選択されたユーザインタフェースマネージャは、ユーザインタフェースのレイアウトを示すための複数のルールを有する。
[0072] 代替的又は追加的に、ユーザインタフェースは、少なくとも1つのアクティブアプリケーション及び少なくとも1つの可視アプリケーションを含み得る。代替的又は追加的に、システムのタイプは、モバイルシステム、ゲーム機システム、拡張現実システム、タブレットシステム、又はデスクトップシステムを含む。代替的又は追加的に、複数の命令は、ユーザインタフェースマネージャに対応する少なくとも1つの表示特徴に基づいて、ユーザインタフェースを表示することをプロセッサに行わせ得る。代替的又は追加的に、ユーザインタフェースマネージャは、少なくとも2つの下位ユーザインタフェースマネージャを管理するものであり、少なくとも2つの下位ユーザインタフェースマネージャのそれぞれは、別個のアプリケーションを実行するものである。代替的又は追加的に、ユーザインタフェースマネージャは、エクスペリエンスをサポートするシェルアプリケーションを管理するものでもある。代替的又は追加的に、ユーザインタフェースマネージャは、エクスペリエンスをサポートするシェルエクスペリエンスホストを管理するものでもある。代替的又は追加的に、複数の命令は、入力デバイスがシステムに結合されていることを検出すること、及び入力デバイスに基づいて新しいユーザインタフェースマネージャを生成することをプロセッサに行わせ得る。代替的又は追加的に、入力デバイスは、ゲームコントローラであり、及び新しいユーザインタフェースマネージャは、ゲーム機ユーザインタフェースを提供するものである。代替的又は追加的に、複数の命令は、ユーザインタフェースマネージャから新しいユーザインタフェースマネージャへの移行に応答して、ユーザインタフェースの状態を保存することをプロセッサに行わせ得る。
[0073] 特に、及び上記のコンポーネント、デバイス、回路、システムなどによって行われる様々な機能に関して、このようなコンポーネントを表現するために使用される用語(「手段」への言及を含む)は、別段の記載のない限り、記載されたコンポーネントの指定の機能を行うどのようなコンポーネント(例えば、開示した構造とは構造的に同等ではないとしても、クレームされた特定事項の本明細書に示した例示的局面においてその機能を行う機能的均等物)にも対応することが意図される。この点において、この革新技術が、システム、並びにクレームされた特定事項の様々な方法の動作及びイベントを行うためのコンピュータ実行可能命令を備えたコンピュータ可読ストレージ媒体を含むことも認識されるだろう。
[0074] アプリケーション及びサービスが本明細書に記載の技術を使用することを可能にする、例えば、適宜のAPI、ツールキット、ドライバコード、オペレーティングシステム、制御部、スタンドアロン型又はダウンロード可能ソフトウェアオブジェクトなどのクレームされた特定事項を実施する複数のやり方が存在する。クレームされた特定事項は、API(又は他のソフトウェアオブジェクト)の観点から、及び本明細書に記載の技術に従って動作するソフトウェア又はハードウェアオブジェクトの観点から使用を企図する。従って、本明細書に記載のクレームされた特定事項の様々な実施は、完全にハードウェア、部分的にハードウェア及び部分的にソフトウェア、並びにソフトウェアの局面を備え得る。
[0075] 上述のシステムは、幾つかのコンポーネント間のインタラクションに関して説明を行った。このようなシステム及びコンポーネントは、これらのコンポーネント又は指定されたサブコンポーネント、指定されたコンポーネント又はサブコンポーネントの一部、及び追加のコンポーネントを、並びに上記の様々な変更及び組み合わせに従って含み得ることが分かるだろう。サブコンポーネントは、親コンポーネント内に含まれる(階層的)のではなく、他のコンポーネントと通信可能に結合されたコンポーネントとしても実施され得る。
[0076] 加えて、1つ又は複数のコンポーネントが、集約的機能性を提供する単一コンポーネントにまとめられてもよく、又は幾つかの別個のサブコンポーネントに分割されてもよく、及び管理層などの任意の1つ又は複数の中間層が、統合機能性を提供するために、このようなサブコンポーネントに通信可能に結合するように設けられてもよいことが留意され得る。本明細書に記載の何れのコンポーネントも、本明細書に具体的に記載されないが、一般的に当業者に知られている1つ又は複数の他のコンポーネントとインタラクトすることも可能である。
[0077] 加えて、クレームされた特定事項のある具体的な特徴を幾つかの実施の1つについて開示したかもしれないが、このような特徴は、所与のアプリケーション又は特定のアプリケーションに関して望まれ得るように、及び有利となり得るように、他の実施の1つ又は複数の他の特徴と組み合わせられ得る。さらに、「含む(includes)」という用語、「含んだ(including)」という用語、「備える(has)」という用語、「包含する(contains)」という用語、これらの変形形態、及び他の類似の語が、詳細な説明又は特許請求の範囲で使用される限り、これらの用語は、どのような追加又は他の要素も排除することなく、オープンな移行語としての「有する(comprising)」という用語と同様に包含的であることが意図される。

Claims (15)

  1. ユーザインタフェースを生成するシステムであって、
    前記システム内に存在する、又は前記システムに結合されたハードウェアコンポーネントに基づいて、前記システムのタイプを検出することと、
    前記システムの前記タイプに基づいて、実行するユーザインタフェースマネージャを決定することと、
    前記システムのユーザインタフェースを生成するために、前記ユーザインタフェースマネージャを実行することであって、前記ユーザインタフェースマネージャが、前記ユーザインタフェースのレイアウトを示すための複数のルールを有する、ことと、
    を行うためのプロセッサを有するシステム。
  2. 前記ユーザインタフェースが、少なくとも1つのアクティブアプリケーション及び少なくとも1つの可視アプリケーションを有する、請求項1に記載のシステム。
  3. 前記システムの前記タイプが、モバイルシステム、ゲーム機システム、拡張現実システム、タブレットシステム、又はデスクトップシステムを含む、請求項1又は2に記載のシステム。
  4. 前記プロセッサが、前記ユーザインタフェースマネージャに対応する少なくとも1つの表示特徴に基づいて、前記ユーザインタフェースを表示するものである、請求項1又は2に記載のシステム。
  5. 前記ユーザインタフェースマネージャが、少なくとも2つの下位ユーザインタフェースマネージャを管理するものであり、前記少なくとも2つの下位ユーザインタフェースマネージャのそれぞれが、別個のアプリケーションを実行するものである、請求項1に記載のシステム。
  6. 前記ユーザインタフェースマネージャが、エクスペリエンスをサポートするシェルアプリケーションを管理するものでもある、請求項1又は2に記載のシステム。
  7. 前記ユーザインタフェースマネージャが、エクスペリエンスをサポートするシェルエクスペリエンスホストを管理するものでもある、請求項1又は2に記載のシステム。
  8. 前記プロセッサが、入力デバイスが前記システムに結合されていることを検出し、及び前記入力デバイスに基づいて、新しいユーザインタフェースマネージャを生成するものである、請求項1に記載のシステム。
  9. 前記入力デバイスが、ゲームコントローラであり、及び前記新しいユーザインタフェースマネージャが、ゲーム機ユーザインタフェースを提供するものである、請求項8に記載のシステム。
  10. 前記プロセッサが、前記ユーザインタフェースマネージャから前記新しいユーザインタフェースマネージャへの移行に応答して、前記ユーザインタフェースの状態を保存するものである、請求項8に記載のシステム。
  11. ユーザインタフェースを生成する方法であって、
    システムのタイプを、前記システム内に存在する、又は前記システムに結合されたハードウェアコンポーネントに基づいて検出することと、
    前記システムの前記タイプに基づいて、実行するユーザインタフェースマネージャを決定することと、
    前記システムのユーザインタフェースを生成するために、前記ユーザインタフェースマネージャを実行することであって、前記ユーザインタフェースマネージャが、前記ユーザインタフェースのレイアウトを示すための複数のルールを有する、ことと、
    を含む方法。
  12. 前記ユーザインタフェースが、少なくとも1つのアクティブアプリケーション及び少なくとも1つの可視アプリケーションを含む、請求項11に記載の方法。
  13. 前記システムの前記タイプが、モバイルシステム、ゲーム機システム、拡張現実システム、タブレットシステム、又はデスクトップシステムを含む、請求項11又は12に記載の方法。
  14. 入力デバイスが前記システムに結合されていることを検出すること、及び前記入力デバイスに基づいて、新しいユーザインタフェースマネージャを生成することを含み、前記入力デバイスが、ゲームコントローラであり、及び前記新しいユーザインタフェースマネージャが、ゲーム機ユーザインタフェースを提供するものである、請求項11又は12に記載の方法。
  15. ユーザインタフェースを生成するシステムであって、
    プロセッサと、
    プロセッサによる実行に応答して、
    前記システム内に存在する、又は前記システムに結合されたハードウェアコンポーネントに基づいて、前記システムのタイプを検出することと、
    前記システムの前記タイプに基づいて、ユーザインタフェースマネージャのビジュアルツリーから実行するユーザインタフェースマネージャを選択することであって、前記ビジュアルツリーがユーザインタフェースホストに存在することと、
    前記システムのユーザインタフェースを生成するために、前記選択されたユーザインタフェースマネージャを実行することであって、前記選択されたユーザインタフェースマネージャが、前記ユーザインタフェースのレイアウトを示すための複数のルールを有する、ことと、
    を前記プロセッサに行わせる複数の命令を保存するストレージデバイスと、
    を有するシステム。
JP2019561853A 2017-06-16 2017-06-16 ルールベースのユーザインタフェース生成 Active JP7007401B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2017/038032 WO2018231259A1 (en) 2017-06-16 2017-06-16 Rules based user interface generation

Publications (2)

Publication Number Publication Date
JP2020529055A true JP2020529055A (ja) 2020-10-01
JP7007401B2 JP7007401B2 (ja) 2022-01-24

Family

ID=59270139

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019561853A Active JP7007401B2 (ja) 2017-06-16 2017-06-16 ルールベースのユーザインタフェース生成

Country Status (13)

Country Link
US (2) US11809217B2 (ja)
EP (1) EP3612929B1 (ja)
JP (1) JP7007401B2 (ja)
KR (1) KR102378953B1 (ja)
CN (1) CN110785740A (ja)
AU (1) AU2017418322B2 (ja)
BR (1) BR112019026121A2 (ja)
CA (1) CA3063675A1 (ja)
CO (1) CO2019013990A2 (ja)
IL (1) IL271255B2 (ja)
PH (1) PH12019550259A1 (ja)
RU (1) RU2020100889A (ja)
WO (1) WO2018231259A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111596985B (zh) * 2020-04-24 2023-03-14 腾讯科技(深圳)有限公司 多媒体会议场景下的界面显示方法、装置、终端及介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008099776A1 (ja) * 2007-02-16 2008-08-21 Sharp Kabushiki Kaisha ユーザインタフェース生成装置、情報端末、ユーザインタフェース生成制御プログラム、記録媒体、およびユーザインタフェース生成方法
JP2014519079A (ja) * 2011-05-02 2014-08-07 インテル・コーポレーション ユーザインターフェースおよび入力制御を適応させる方法

Family Cites Families (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5675755A (en) * 1995-06-07 1997-10-07 Sony Corporation Window system preventing overlap of multiple always-visible windows
US6282646B1 (en) * 1998-05-08 2001-08-28 Apple Computer, Inc. System for real-time adaptation to changes in display configuration
US6188399B1 (en) * 1998-05-08 2001-02-13 Apple Computer, Inc. Multiple theme engine graphical user interface architecture
US6753885B2 (en) * 2000-04-06 2004-06-22 Microsoft Corporation System and theme file format for creating visual styles
US7137066B2 (en) * 2000-04-06 2006-11-14 Microsoft Corporation Binary cache file format for themeing the visual appearance of a computer system
US7013297B2 (en) 2001-02-27 2006-03-14 Microsoft Corporation Expert system for generating user interfaces
US7246326B2 (en) * 2001-06-25 2007-07-17 Siemens Medical Solutions Health Services Corporation System and procedure for providing a user interface display
US7392483B2 (en) * 2001-09-28 2008-06-24 Ntt Docomo, Inc, Transformation of platform specific graphical user interface widgets migrated between heterogeneous device platforms
US7234111B2 (en) * 2001-09-28 2007-06-19 Ntt Docomo, Inc. Dynamic adaptation of GUI presentations to heterogeneous device platforms
US7895522B2 (en) * 2001-09-28 2011-02-22 Ntt Docomo, Inc. Layout of platform specific graphical user interface widgets migrated between heterogeneous device platforms
US7952569B2 (en) * 2002-08-08 2011-05-31 Hewlett-Packard Development Company, L.P. System and method of switching between multiple viewing modes in a multi-head computer system
CA2509862A1 (en) * 2002-12-13 2004-07-01 Wagerworks, Inc. Flexible user interface
US7417644B2 (en) * 2003-05-12 2008-08-26 Microsoft Corporation Dynamic pluggable user interface layout
US8196044B2 (en) 2004-01-05 2012-06-05 Microsoft Corporation Configuration of user interfaces
US8130237B2 (en) * 2004-06-24 2012-03-06 Apple Inc. Resolution independent user interface design
US7730484B2 (en) * 2004-11-12 2010-06-01 Opera Software Asa Method and device for providing interfaces that are tailored to specific devices
US7450084B2 (en) * 2004-12-17 2008-11-11 Microsoft Corporation System and method for managing computer monitor configurations
US7907966B1 (en) 2005-07-19 2011-03-15 Aol Inc. System and method for cross-platform applications on a wireless phone
CN100419848C (zh) * 2005-09-28 2008-09-17 联想(北京)有限公司 一种多显示器系统及其自动设置显示模式的方法
US20070079236A1 (en) * 2005-10-04 2007-04-05 Microsoft Corporation Multi-form design with harmonic composition for dynamically aggregated documents
US7707514B2 (en) * 2005-11-18 2010-04-27 Apple Inc. Management of user interface elements in a display environment
EP1884871A1 (en) 2006-07-26 2008-02-06 Research In Motion Limited System and method for adaptive theming of a mobile device
US8869027B2 (en) * 2006-08-04 2014-10-21 Apple Inc. Management and generation of dashboards
WO2008131417A1 (en) * 2007-04-23 2008-10-30 Snac, Inc. Mobile widget dashboard
US8954871B2 (en) * 2007-07-18 2015-02-10 Apple Inc. User-centric widgets and dashboards
US20090150773A1 (en) * 2007-12-05 2009-06-11 Sun Microsystems, Inc. Dynamic product configuration user interface
TW201044255A (en) 2009-06-12 2010-12-16 Acer Inc Electronic device, computer-executable system, and application program display control method thereof
US20110153612A1 (en) 2009-12-17 2011-06-23 Infosys Technologies Limited System and method for providing customized applications on different devices
US20140026086A1 (en) * 2010-04-28 2014-01-23 Adobe Systems Incorporated Methods and Systems for Cross-Platform Computing Applications Featuring Adaptable User Interfaces
US20120017172A1 (en) * 2010-07-15 2012-01-19 Microsoft Corporation Display-agnostic user interface for mobile devices
US20120054634A1 (en) 2010-08-27 2012-03-01 Sony Corporation Apparatus for and method of creating a customized ui based on user preference data
US9621567B2 (en) 2010-11-29 2017-04-11 Biocatch Ltd. Device, system, and method of detecting hardware components
US9043714B1 (en) * 2011-01-07 2015-05-26 Google Inc. Adaptive user interface for widescreen devices
US9013510B2 (en) 2011-07-29 2015-04-21 Google Inc. Systems and methods for rendering user interface elements in accordance with a device type
US20140040819A1 (en) * 2011-09-09 2014-02-06 Adobe Systems Incorporated Methods and systems for managing the presentation of windows on a display device
CA2792662C (en) * 2011-10-18 2017-11-14 Research In Motion Limited Method of rendering a user interface
US8856729B2 (en) * 2011-12-23 2014-10-07 Airstrip Ip Holdings, Llc Systems and methods for developing multi-platform applications for computing devices
US20130191775A1 (en) * 2012-01-25 2013-07-25 Richard James Lawson Adjustable user interface
US20170168782A1 (en) * 2012-05-28 2017-06-15 Ian Boyd System and method for creating a universally compatible application development system
US9239668B2 (en) * 2012-06-29 2016-01-19 Intel Corporation Provision of a user interface based on user interaction with a computing device
US9107076B1 (en) 2012-07-27 2015-08-11 Sprint Communications Company L.P. Data fraud detection via device type identification
US9053243B2 (en) * 2012-10-10 2015-06-09 Google Inc. Unidirectional and bidirectional communication between a host device and a peripheral device
US20140157183A1 (en) * 2012-11-30 2014-06-05 John Gordon Dorsay System and method for the selection, layout, and control of one or more hosted interactive computer application programs using a lightweight supervisor computer application program
US9239713B1 (en) 2013-03-06 2016-01-19 MobileForce Software, Inc. Platform independent rendering for native mobile applications
US9747005B1 (en) * 2013-03-11 2017-08-29 Workday, Inc. Adaptive user interface
US20140325374A1 (en) 2013-04-30 2014-10-30 Microsoft Corporation Cross-device user interface selection
US9626146B2 (en) * 2013-07-24 2017-04-18 Kabushiki Kaisha Toshiba Electronic apparatus, configuration setting method for adjusting display size and storage medium
KR20150014319A (ko) * 2013-07-29 2015-02-06 삼성전자주식회사 사용자 인터페이스 화면을 제공하는 모바일 디바이스와 화상형성장치, 및 모바일 디바이스 및 화상형성장치에서 사용자 인터페이스 화면을 제공하는 방법
US9513763B1 (en) * 2014-03-20 2016-12-06 Amazon Technologies, Inc. Adaptive user interfaces
US9471201B1 (en) 2014-05-20 2016-10-18 Google Inc. Laptop-to-tablet mode adaptation
US10120659B2 (en) * 2014-05-30 2018-11-06 Apple Inc. Adaptive user interfaces
US20160132301A1 (en) * 2014-11-06 2016-05-12 Microsoft Technology Licensing, Llc Programmatic user interface generation based on display size
CN107211040B (zh) 2014-11-24 2019-07-02 思研室公司 动态并自动创建用户界面的方法
US10042655B2 (en) * 2015-01-21 2018-08-07 Microsoft Technology Licensing, Llc. Adaptable user interface display
US10552183B2 (en) * 2016-05-27 2020-02-04 Microsoft Technology Licensing, Llc Tailoring user interface presentations based on user state
US10025548B2 (en) * 2016-08-09 2018-07-17 International Business Machines Corporation Automated display configuration
US10620792B2 (en) * 2017-03-10 2020-04-14 Jonathan Glickman Computing device with an appropriate adaptable user hardware interface

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008099776A1 (ja) * 2007-02-16 2008-08-21 Sharp Kabushiki Kaisha ユーザインタフェース生成装置、情報端末、ユーザインタフェース生成制御プログラム、記録媒体、およびユーザインタフェース生成方法
JP2014519079A (ja) * 2011-05-02 2014-08-07 インテル・コーポレーション ユーザインターフェースおよび入力制御を適応させる方法

Also Published As

Publication number Publication date
BR112019026121A2 (pt) 2020-07-07
CO2019013990A2 (es) 2020-01-17
IL271255B (en) 2022-11-01
US20210286632A1 (en) 2021-09-16
IL271255A (en) 2020-01-30
IL271255B2 (en) 2023-03-01
WO2018231259A1 (en) 2018-12-20
EP3612929A1 (en) 2020-02-26
KR102378953B1 (ko) 2022-03-24
KR20200018574A (ko) 2020-02-19
AU2017418322B2 (en) 2022-06-30
RU2020100889A (ru) 2021-07-16
CN110785740A (zh) 2020-02-11
CA3063675A1 (en) 2018-12-20
US20240143350A1 (en) 2024-05-02
AU2017418322A1 (en) 2019-11-28
JP7007401B2 (ja) 2022-01-24
EP3612929B1 (en) 2022-08-24
US11809217B2 (en) 2023-11-07
PH12019550259A1 (en) 2020-07-13

Similar Documents

Publication Publication Date Title
US11609675B2 (en) Placement of objects in an augmented reality environment
CN110114746A (zh) 显示虚拟现实画面的方法和虚拟现实设备
Febretti et al. Omegalib: A multi-view application framework for hybrid reality display environments
D'Antoni et al. Operating system support for augmented reality applications
CN106462324A (zh) 一种用于在虚拟环境内提供交互性的方法和系统
CN103150012A (zh) 使用头戴式显示的共享协作
CN107168616B (zh) 游戏交互界面显示方法、装置、电子设备及存储介质
KR20150138271A (ko) 전환 목록 상호작용
US20220221970A1 (en) User interface modification
US11989571B2 (en) Generating user interface containers
US20240143350A1 (en) Rules Based User Interface Generation
US20140173508A1 (en) Interactive and dynamic medical visualization interface tools
JP2017532650A (ja) アクション可能なアイテムスイッチャービュー
US20190056857A1 (en) Resizing an active region of a user interface
US10678517B1 (en) User interface synthesis based upon extracted presentation document graphical features
EP3635527B1 (en) Magnified input panels
CN114416234B (zh) 一种页面切换方法、装置、计算机设备及存储介质
Krekhov et al. MorphableUI: a hypergraph-based approach to distributed multimodal interaction for rapid prototyping and changing environments
US10664557B2 (en) Dial control for addition and reversal operations
CN117076265A (zh) 进程指示方法和装置
CN117519541A (zh) 页面显示方法、装置、电子设备及可读存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200525

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210414

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210423

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210719

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20211214

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220106

R150 Certificate of patent or registration of utility model

Ref document number: 7007401

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150