BR112019026121A2 - geração de interface com o usuário baseada em regras - Google Patents

geração de interface com o usuário baseada em regras Download PDF

Info

Publication number
BR112019026121A2
BR112019026121A2 BR112019026121-4A BR112019026121A BR112019026121A2 BR 112019026121 A2 BR112019026121 A2 BR 112019026121A2 BR 112019026121 A BR112019026121 A BR 112019026121A BR 112019026121 A2 BR112019026121 A2 BR 112019026121A2
Authority
BR
Brazil
Prior art keywords
user interface
computing device
interface manager
manager
fact
Prior art date
Application number
BR112019026121-4A
Other languages
English (en)
Inventor
Ramrajprabu Balasubramanian
Nishad Mulye
Darren R. Davis
Kenton A. Shipley
Nathan T. RADEBAUGH
Paul DYKSTRA
Jan Harold Karachale
Brian David Cross
Patrick J. Derks
William Scott Stauber
Original Assignee
Microsoft Technology Licensing, Llc
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 Technology Licensing, Llc filed Critical Microsoft Technology Licensing, Llc
Publication of BR112019026121A2 publication Critical patent/BR112019026121A2/pt

Links

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

Abstract

A presente invenção refere-se a um sistema para gerar uma interface com o usuário descrito neste documento podendo incluir um processador para detectar um tipo do sistema baseado nos componentes de hardware residindo no sistema ou acoplados ao sistema e determinar um gerenciador de interface com o usuário a ser executado baseado no tipo do sistema. O processador também pode executar o gerenciador de interface com o usuário para gerar uma interface com o usuário para o sistema, em que o tipo do gerenciador de interface com o usuário compreende várias regras para indicar um layout da interface com o usuário.

Description

Relatório Descritivo da Patente de Invenção para "DISPOSITIVO DE COMPUTAÇÃO E MÉTODO PARA GERAR UMA INTERFACE DE USUÁRIO".
ANTECEDENTES
[001] Dispositivos de computador de qualquer tamanho podem gerar uma experiência do usuário, a qual tipicamente é fixa para o projeto pretendido. Cada dispositivo pode separadamente gerar uma interface com o usuário baseada em funções fixas do aplicativo. Por exemplo, cada dispositivo pode separadamente gerar uma interface com o usuário por codificação fixa ou por utilizar um formato fixo para exibir aplicativos.
[002] US 2013/016711 A1 divulga um sistema de comunicação incluindo dispositivos móveis de computação, sistemas de servidor e uma rede, em que os dispositivos móveis de computação podem operar usando os respectivos sistemas operacionais e em que os mecanismos de interface do usuário específicos para os sistemas operacionais dos respectivos dispositivos de computação estão instalados e são executados nos dispositivos de computação móvel.
[003] US 7.907.966 B1 divulga um método e um telefone sem fio para executar aplicativos de multiplataforma, em que uma ou mais propriedades dos componentes de hardware do telefone sem fio são identificadas por um shell de aplicativo de multiplataforma e um aplicativo de multiplataforma é executado para gerar um layout de exibição em uma tela correspondente às uma ou mais propriedades identificadas dos componentes de hardware do telefone sem fio.
SUMÁRIO
[004] De acordo com um aspecto da presente invenção, um dispositivo de computação compreende um processador e um dispositivo de armazenamento para armazenar uma pluralidade de instruções que, em resposta à execução pelo processador, fazem com que o processador execute um gerenciador de interface do usuário para gerar uma interface do usuário para o dispositivo de computação, em que o gerenciador de interface do usuário compreende uma pluralidade de regras para indicar um layout da interface do usuário. De acordo com a presente invenção, as instruções armazenadas no dispositivo de armazenamento, em resposta à execução do processador, fazem com que o processador detecte, por um analisador de sistema, um tipo de dispositivo de computação baseado em componentes de hardware que residem dentro do dispositivo de computação ou acoplado ao dispositivo de colocação; determinar, por um seletor de interface do usuário, o gerenciador de interface do usuário a ser executado com base no tipo detectado do dispositivo de computação, em que o gerenciador de interface do usuário determinado compreende regras correspondentes ao tipo detectado do dispositivo de computação e regras adicionais compartilhadas entre vários gerenciadores de interface do usuário diferentes, correspondentes a diferentes tipos de dispositivos de computação; e execute, por um gerador de interface do usuário, o gerenciador de interface do usuário determinado para gerar a interface do usuário para o dispositivo de computação detectado.
[005] De acordo com outro aspecto da presente invenção, um método para gerar uma interface de usuário para um dispositivo de computação compreende executar um gerenciador de interface de usuário para gerar uma interface de usuário para o dispositivo de computação, em que o gerenciador de interface de usuário compreende uma pluralidade de regras para indica um layout da interface do usuário. De acordo com a presente invenção, o método compreende ainda: detectar, por um analisador de sistema do dispositivo de computação, um tipo de dispositivo de computação baseado em componentes de hardware residentes no dispositivo de computação ou acoplados ao dispositivo de computação; determinar, por um seletor de interface do usuário do dispositivo de computação, o gerenciador da interface do usuário para executar com base no tipo detectado do dispositivo de computação, em que o gerenciador de interface do usuário determinado compreende regras correspondentes ao tipo detectado do dispositivo de computação e regras adicionais compartilhadas entre um número de gerenciadores de interface de usuário diferentes, correspondentes a diferentes tipos de dispositivos de computação; e executar, por meio de um gerador de interface do usuário do dispositivo de computação, o gerenciador de interface do usuário determinado para gerar a interface do usuário para o dispositivo de computação detectado.
[006] A descrição seguinte e os desenhos anexos expõem em detalhes alguns aspectos ilustrativos do assunto reivindicado. Entretanto, esses aspectos são indicativos de alguns dos vários modos nos quais os princípios da inovação podem ser empregados e é pretendido que o assunto reivindicado inclua todos tais aspectos e seus equivalentes. Outras vantagens e novos aspectos do assunto reivindicado irão se tornar aparentes a partir da descrição detalhada seguinte da inovação quando considerada em conjunto com os desenhos.
BREVE DESCRIÇÃO DOS DESENHOS
[007] A descrição detalhada seguinte pode ser mais bem entendida por referência aos desenhos acompanhantes, os quais contêm exemplos específicos de vários aspectos do assunto revelado.
[008] A Figura 1 é um diagrama de blocos de um exemplo de um sistema de computação que pode gerar uma interface com o usuário baseada em regras;
[009] A Figura 2 é um digrama de fluxo de processo de um método ilustrativo para gerar uma interface com o usuário baseada em regras;
[0010] A Figura 3 é um diagrama de blocos de um sistema ilustrativo que pode gerar uma interface com o usuário para vários aplicativos do usuário baseada em regras;
[0011] A Figura 4 é um diagrama de blocos de um meio de armazenamento legível por computador ilustrativo que pode gerar uma interface com o usuário baseada em regras; e
[0012] A Figura 5 é um diagrama de blocos de um sistema ilustrativo para hospedar gerenciadores de interface com o usuário dentro de um gerenciador de interface com o usuário.
DESCRIÇÃO DETALHADA
[0013] Interfaces com o usuário podem ser geradas utilizando várias técnicas estáticas não reutilizáveis. Por exemplo, interfaces com o usuário para diferentes dispositivos podem ser geradas utilizando diferentes conjuntos de funções, diferentes caminhos de dados, e diferentes composições visuais. Por consequência, os aplicativos frequentemente incluem código diferente para gerar uma interface com o usuário para cada tipo de dispositivo. Esses aplicativos também possuem contexto complexo sobre o dispositivo no qual eles estão executando e frequentemente mapeiam os controles da interface com o usuário diretamente para coordenadas de pixel em um dispositivo de vídeo. Por exemplo, os aplicativos podem especificar coordenadas de pixel para exigir um elemento de controle do usuário tal como um campo de texto, dentre outros.
[0014] As técnicas descritas neste documento proporcionam um sistema para gerar uma interface com o usuário baseada em regras. Em alguns exemplos, as regras podem corresponder a um tipo de dispositivo particular. Por exemplo, as regras para gerar uma interface com o usuário para um dispositivo de computação de mesa podem ser diferentes das regras para gerar uma interface com o usuário para um dispositivo móvel. Em algumas modalidades, um sistema pode detectar um tipo do sistema baseado nos componentes de hardware residindo dentro do sistema e determinar um tipo de gerenciador de interface com o usuário a executar baseado no tipo do sistema. O sistema também pode executar o gerenciador de interface com o usuário para gerar uma interface com o usuário para o sistema, em que o gerenciador de interface com o usuário compreende várias regras para indicar um layout da interface com o usuário.
[0015] As técnicas descritas neste documento permitem que código para gerar interfaces com o usuário seja compartilhado enquanto criando interfaces com o usuário para qualquer número de diferentes dispositivos. Por exemplo, as técnicas descritas neste documento podem permitir código compartilhado para gerar uma interface com o usuário para um dispositivo de mesa, um dispositivo tablet, um dispositivo móvel, um dispositivo de telefone, um dispositivo de console de jogo, e um dispositivo de realidade aumentada, dentre outros. O código compartilhado pode gerar diferentes interfaces com o usuário baseado em regras correspondendo a cada tipo de dispositivo. Por exemplo, código para exibir um aplicativo do usuário com algumas regras pode ser compartilhado entre qualquer número de diferentes gerenciadores de interface com o usuário correspondendo aos diferentes tipos de dispositivos.
[0016] Como uma questão preliminar, algumas das Figuras descrevem conceitos no contexto de um ou mais componentes estruturais, referidos como funcionalidades, módulos, aspectos, elementos, etc. Os vários componentes apresentados nas Figuras podem ser implementados de qualquer maneira, por exemplo, por software, por hardware (por exemplo, componentes lógicos discretos,
etc.), firmware, e assim por diante, ou em qualquer combinação dessas implementações. Em uma modalidade, os vários componentes podem refletir o uso de componentes correspondentes em uma implementação real. Em outras modalidades, qualquer componente único ilustrado nas Figuras pode ser implementado por vários componentes reais. A representação de quaisquer dois ou mais componentes separados nas Figuras pode refletir diferentes funções executadas por um único componente real. A Figura 1 discutida abaixo proporciona detalhes com respeito aos diferentes sistemas que podem ser utilizados para implementar as funções apresentadas nas Figuras.
[0017] Outras Figuras descrevem os conceitos em forma de fluxograma. Nessa forma, algumas operações são descritas como constituindo blocos distintos executados em alguma ordem. Tais implementações são ilustrativas e não limitativas. Alguns blocos descritos neste documento podem ser agrupados e executados em uma única operação, alguns blocos podem ser separados em vários blocos componentes, e alguns blocos podem ser executados em uma ordem que é diferente dessa que é ilustrada neste documento, incluindo uma maneira paralela de execução de blocos. Os blocos apresentados nos fluxogramas podem ser implementados por software, hardware, firmware, dentre outros, ou por qualquer combinação dessas implementações. Como utilizado nesse documento, o hardware pode incluir sistemas de computador, componentes lógicos discretos, tais como circuitos integrados de aplicação específica (ASICs), dentre outros, bem como quaisquer combinações dos mesmos.
[0018] Para terminologia, a frase "configurado para" abrange qualquer modo que qualquer tipo de componente estrutural possa ser construído para executar uma operação identificada. O componente estrutural pode ser configurado para executar uma operação utilizando software, hardware, firmware, dentre outros, ou quaisquer combinações dos mesmos. Por exemplo, a frase "configurado para" pode se referir a uma estrutura de circuito lógico de um elemento de hardware que é para implementar a funcionalidade associada. A frase "configurado para" também pode se referir a uma estrutura de circuito lógico de um elemento de hardware que é para implementar o projeto de codificação de funcionalidade associada de firmware ou software. O termo "módulo" se refere a um elemento estrutural que pode ser implementado utilizando qualquer hardware (por exemplo, um processador, entre outros), software (por exemplo, um aplicativo, dentre outros), firmware, ou qualquer combinação de hardware, software e firmware adequados.
[0019] O termo "lógico" abrange qualquer funcionalidade para executar uma tarefa. Por exemplo, cada operação ilustrada nos fluxogramas corresponde à lógica para executar essa operação. Uma operação pode ser executada utilizando software, hardware, firmware, etc., ou quaisquer combinações dos mesmos.
[0020] Como utilizado nesse documento, os termos "componente", "sistema", "cliente" e assim por diante são pretendidos para se referirem a uma entidade relacionada com computador, seja hardware, software (por exemplo, em execução), e/ou firmware, ou uma combinação dos mesmos. Por exemplo, um componente pode ser um processo rodando em um processador, um objeto, um executável, um programa, uma função, uma biblioteca, uma subrotina, e/ou um computador ou uma combinação de software e hardware. A título de ilustração, tanto um aplicativo executando em um servidor como o servidor podem ser um componente. Um ou mais componentes podem residir dentro de um processo e um componente pode estar localizado em um computador e/ou distribuído entre dois ou mais computadores.
[0021] Além disso, o assunto reivindicado por ser implementado como um método, aparelho, ou artigo de manufatura utilizando programação padrão e/ou técnicas de engenharia para produzir software, firmware, hardware, ou qualquer combinação dos mesmos para controlar um computador para implementar o assunto revelado. O termo "artigo de manufatura" como utilizado nesse documento é pretendido para abranger um programa de computador acessível a partir de qualquer dispositivo ou mídia tangível legível por computador.
[0022] A mídia de armazenamento legível por computador pode incluir, mas não está limitada aos dispositivos de armazenamento magnético (por exemplo, disco rígido, disco flexível, e tarjas magnéticas, dentre outros), disco óticos (por exemplo, disco compacto (CD), e disco versátil digital (DVD), dentre outros), cartões inteligentes, e dispositivos de memória flash (por exemplo, cartão, bastão, e pen drive, dentre outros). Em contraste, a mídia legível por computador geralmente (isto é, que não é mídia de armazenamento) pode ainda incluir mídia de comunicação, tal como mídia de transmissão para sinais sem uso de fios, dentre outros.
[0023] A Figura 1 é um diagrama de blocos de um exemplo de um sistema de computação que pode gerar uma interface com o usuário baseada em regras. O sistema ilustrativo 100 inclui um dispositivo de computação 102. O dispositivo de computação 102 inclui uma unidade de processamento 104, uma memória do sistema 106, e um barramento do sistema 108. Em alguns exemplos, o dispositivo de computação 102 pode ser um console de jogo, um computador pessoal (PC), um console acessório, um controlador de jogo, dentre outros dispositivos de computação. Em alguns exemplos, o dispositivo de computação 102 pode ser um nó em uma rede na nuvem.
[0024] O sistema de barramento 108 acopla os componentes do sistema incluindo, mas não limitado a, a memória do sistema 106 com a unidade de processamento 104. A unidade de processamento 104 pode ser qualquer um dentre vários processadores disponíveis. Microprocessadores duplos e outras arquiteturas de microprocessador também podem ser empregados como a unidade de processamento
104.
[0025] O sistema de barramento 108 pode ser qualquer um dentre vários tipos de estrutura de barramento, incluindo o barramento de memória ou controlador de memória, um barramento periférico ou barramento externo, e um barramento local utilizando qualquer variedade de arquiteturas de barramento disponíveis conhecidas pelos versados na técnica. A memória do sistema 106 inclui mídia de armazenamento legível por computador que inclui memória volátil 110 e memória não volátil 112.
[0026] Em algumas modalidades, um gerenciador de interface de firmware extensível unificada (UEFI) ou um sistema básico de entrada/saída (BIOS), contendo as rotinas básicas para transferir informação entre elementos dentro do computador 102, tal como durante a inicialização, é armazenado na memória não volátil 112. A título de ilustração e não de limitação, a memória não volátil 112 pode incluir memória somente para leitura (ROM), ROM programável (PROM), ROM eletricamente programável (EPROM), ROM programável eletricamente apagável (EEPROM), ou memória flash.
[0027] A memória volátil 110 inclui memória de acesso aleatório (RAM), a qual atua como memória cache externa. A título de ilustração e não de limitação, a RAM está disponível em várias formas tais como RAM estática (SRAM), RAM dinâmica (DRAM), DRAM síncrona (SDRAM), SDRAM com taxa dupla de dados (DDR SDRAM), SDRAM aprimorada (ESDRAM), DRAM SynchLinkTM (SLDRAM), RAM direta Rambus® (RDRAM), RAM dinâmica direta Rambus® (DRDRAM), e RAM dinâmica Rambus® (RDRAM).
[0028] O computador 102 também inclui outras mídias legíveis por computador, tais como mídia de armazenamento do computador removível/não removível, volátil/não volátil. A Figura 1 apresenta, por exemplo, um armazenamento em disco 114. O armazenamento em disco 114 inclui, mas não está limitado a, dispositivos tais como uma unidade de disco magnético, unidade de disco flexível, unidade de fita, unidade Jaz, unidade ZIP, unidade LS-210, cartão de memória flash, ou bastão de memória.
[0029] Em adição, o armazenamento em disco 114 pode incluir mídia de armazenamento separadamente ou em combinação com outras mídias de armazenamento incluindo, mas não limitado a, uma unidade de disco ótico tal como um dispositivo de disco compacto ROM (CD-ROM), unidade de CD que pode ser gravada (Unidade CD-R), unidade de CD que pode ser regravada (Unidade CD-RW) ou uma unidade de disco versátil digital ROM (DVD-ROM). Para facilitar a conexão dos dispositivos de armazenamento em disco 114 com o barramento do sistema 108, uma interface removível ou não removível tipicamente é utilizada tal como a interface 116.
[0030] É para ser apreciado que a Figura 1 descreve software que atua como um intermediário entre usuários e os recursos básicos do computador descritos no ambiente de operação adequado 100. Tal software inclui um sistema operacional 118. O sistema operacional 118, o qual pode ser armazenado no armazenamento em disco 114, atua para controlar e alocar recursos do computador 102.
[0031] Os aplicativos do sistema 120 tiram vantagem do gerenciamento de recursos pelo sistema operacional 118 através dos módulos de programa 122 e dos dados de programa 124 armazenados na memória do sistema 106 ou no armazenamento em disco 114. É para ser apreciado que o assunto revelado pode ser implementado com vários sistemas operacionais ou combinações de sistemas operacionais.
[0032] Um usuário informa comandos ou informações no computador 102 através dos dispositivos de entrada 126. Os dispositivos de entrada 126 incluem, mas não estão limitados a, um dispositivo de apontador, tal como um mouse, TrackBall, caneta stylus, dentre outros, um teclado, um microfone, um joystick, uma antena de satélite, um scanner, uma placa sintonizadora de TV, uma câmera digital, uma câmera de vídeo digital, uma câmera web, qualquer acessório de discagem adequado (físico ou virtual), dentre outros.
Em alguns exemplos, um dispositivo de entrada pode incluir dispositivos de Interface Natural com o Usuário (NUI). A NUI se refere a qualquer tecnologia de interface que permita a um usuário interagir com um dispositivo de uma maneira "natural", livre de restrições artificiais impostas pelos dispositivos de entrada, tais como mouses, teclados, controles remotos, dentre outros.
Em alguns exemplos, os dispositivos NUI incluem dispositivos contando com o reconhecimento de fala, reconhecimento de toque e de caneta stylus, reconhecimento de gesto tanto na tela como adjacente à tela, gestos no ar, rastreamento de cabeça e olho, voz e fala, visão, toque, gestos, e inteligência artificial.
Por exemplo, os dispositivos NUI podem incluir vídeo sensíveis ao toque, reconhecimento de voz e de fala, entendimento de intenção e meta, e detecção de gesto de movimento utilizando câmeras de profundidade, tais como sistemas de câmeras estereoscópicas, sistema de câmeras infravermelhas, sistemas de câmeras RGB e combinações desses.
Os dispositivos NUI também podem incluir detecção de gesto de movimento utilizando acelerômetros ou giroscópios, reconhecimento facial, exibições tridimensionais (3D), rastreamento de cabeça, olhos e de olhar fixo, sistemas de realidade aumentada e realidade virtual imersivos, todos os quais proporcionam uma interface mais natural.
Os dispositivos NUI também podem incluir tecnologias para perceber atividade cerebral utilizando eletrodos de percepção de campo elétrico. Por exemplo, um dispositivo NUI pode utilizar Eletroencefalografia (EEG) e métodos relacionados para detectar atividade elétrica do cérebro. Os dispositivos de entrada 126 se conectam a unidade de processamento 104 através do barramento do sistema 108 via as portas de interface 128. As portas de interface 128 incluem, por exemplo, uma porta serial, uma porta paralela, uma porta de jogo e um barramento serial universal (USB).
[0033] Os dispositivos de saída 130 utilizam alguns dos mesmos tipos de portas que os dispositivos de entrada 126. Assim, por exemplo, uma porta USB pode ser utilizada para proporcionar entrada para o computador 102 e para emitir informação a partir do computador 102 para um dispositivo de saída 130.
[0034] O adaptador de saída 132 é proporcionado para ilustrar que existem alguns dispositivos de saída 130 como monitores, alto- falantes, e impressoras, dentre outros dispositivos de saída 130, que são acessíveis via adaptadores. Os adaptadores de saída 132 incluem, a título de ilustração e não de limitação, placas de vídeo e de som que proporcionam meios para conexão entre o dispositivo de saída 130 e o barramento do sistema 108. Pode ser observado que outros dispositivos e sistemas de dispositivos proporcionam ambas as capacidades de entrada e de saída tais como os dispositivos de computação remotos 134.
[0035] O computador 102 pode ser um servidor hospedando vários aplicativos de software em um ambiente em rede utilizando conexões lógicas com um ou mais computadores remotos, tais como os dispositivos de computação remotos 134. Os dispositivos de computação remotos 134 podem ser sistemas clientes configurados com os navegadores da Rede, aplicativos de PC, aplicativos de telefone móvel, dentre outros. Os dispositivos de computação remotos 134 podem ser um computador pessoal, um servidor, um roteador, um
PC de rede, uma estação de trabalho, um utensílio baseado em microprocessador, um telefone celular, um dispositivo par ou outro nó comum de rede, dentre outros, e tipicamente inclui vários ou todos os elementos descritos em relação ao computador 102.
[0036] Os dispositivos de computação remotos 134 podem estar logicamente conectados com o computador 102 através de uma interface de rede 136 e então conectados via uma conexão de comunicação 138, a qual pode ser sem uso de fios. A interface de rede 136 abrange redes de comunicação sem uso de fios tais como redes de área local (LAN) e redes de longa distância (WAN). Tecnologias LAN incluem Interface de Dados Distribuídos por Fibra Ótica (FDDI), Interface de Dados Distribuídos por Fios (CDDI), Token Ring, dentre outras. As tecnologias WAN incluem, mas não estão limitadas a, as ligações ponto a ponto, as redes de comutação de circuito tais como as Redes Digitais de Serviços Integrados (ISDN) e variações na mesma, redes de comutação de pacote, e Linhas Digitais de Assinante (DSL).
[0037] A conexão de comunicação 138 se refere ao hardware/software empregado para conectar a interface de rede 136 com o barramento 108. Apesar de a conexão de comunicação 138 ser apresentada para clareza de ilustração dentro do computador 102, ela também pode ser externa ao computador 102. O hardware/software para conexão com a interface de rede 136 pode incluir, para propósito ilustrativo, tecnologias internas e externas, tais como comutadores de telefone celular, modems incluindo modems da grade de telefones normais, modem a cabo e modems DSL, adaptadores ISDN, e placas Ethernet.
[0038] O computador 102 pode ainda incluir um rádio 140. Por exemplo, o rádio 140 pode ser um rádio de rede de área local sem uso de fios que pode operar uma ou mais faixas sem uso de fios. Por exemplo, o rádio 140 pode operar na faixa de rádio industrial, científica e médica (ISM) em 2,4 GHz ou 5 GHz. Em alguns exemplos, o rádio 140 pode operar em qualquer faixa de rádio adequada em qualquer rádio frequência.
[0039] O computador 102 inclui um ou mais módulos 122, tais como um analisador do sistema 142, um seletor de interface com o usuário 144, e um gerador de interface com o usuário 146. Em algumas modalidades, o analisador do sistema 142 pode detectar um tipo do sistema baseado nos componentes de hardware residindo dentro do sistema ou acoplados com o sistema. Por exemplo, dispositivos incluindo telas de vídeo abaixo de um tamanho limite podem ser identificados como dispositivos móveis ou dispositivos acoplados com controladores de jogo podem ser identificados como consoles de jogo. Em algumas modalidades, o seletor de interface com o usuário 144 pode determinar um tipo de gerenciador de interface com o usuário a executar baseado no tipo do sistema. Em alguns exemplos, cada tipo de dispositivo pode estar associado com um gerenciador de interface com o usuário separado. Um gerenciador de interface com o usuário, como referido neste documento, pode incluir qualquer aplicativo adequado que possa gerar uma aparência visual para um sistema operacional. Em algumas modalidades, o gerador de interface com o usuário 146 pode executar o gerenciador de interface com o usuário para gerar uma interface com o usuário para o sistema, em que o tipo do gerenciador de interface com o usuário compreende várias regras para indicar um layout da interface com o usuário. Um layout, como referido neste documento, pode incluir uma representação bidimensional de aplicativos visíveis e de controles do sistema. As várias regras podem incluir se as janelas do aplicativo podem ser sobrepostas, se os aplicativos podem ser visíveis em um modo de tela cheia, ou uma localização em uma tela de vídeo correspondendo aos vários menus e funções do sistema operacional, dentre outros. É apreciado que o conjunto de regras também pode definir uma experiência 3D do usuário ou mesmo uma experiência não visual do usuário, tal como uma experiência somente de áudio.
[0040] É para ser entendido que o digrama de blocos da Figura 1 não é pretendido para indicar que o sistema de computação 102 é para incluir todos os componentes apresentados na Figura 1. Ao invés disso, o sistema de computação 102 pode incluir menor ou mais componentes não ilustrados na Figura 1 (por exemplo, aplicativos adicionais, módulos adicionais, dispositivos de memória adicionais, interfaces de rede adicionais, etc.). Além disso, qualquer uma das funcionalidades do analisador do sistema 142, do seletor de interface com o usuário 144, e do gerador de interface com o usuário 146 podem ser parcialmente, ou totalmente, implementadas em hardware e/ou na unidade de processamento (também referida neste documento como um processador) 104. Por exemplo, a funcionalidade pode ser implementada com um circuito integrado de aplicação específica, em lógica implementada na unidade de processamento 104, ou em qualquer outro dispositivo.
[0041] A Figura 2 é um diagrama de fluxo de processo de um método ilustrativo para gerar uma interface com o usuário baseado em regras. O método 200 pode ser implementado com qualquer dispositivo de computação adequado, tal como o sistema de computação 102 da Figura 1.
[0042] No bloco 202, um analisador de sistema 142 pode detectar um tipo de um sistema baseado nos componentes de hardware residindo dentro do sistema ou acoplados com o sistema. Por exemplo, o tipo do sistema pode incluir um dispositivo de realidade aumentada, um dispositivo tablet, um dispositivo móvel, um dispositivo de telefone, um dispositivo de console de jogo, ou um dispositivo de mesa, dentre outros. Em algumas modalidades, o analisador de sistema 142 pode detectar o tipo do sistema baseado em quaisquer componentes de hardware adequados tais como uma tela de vídeo, um processador, um processador gráfico, um rádio celular, dentre outros. Em alguns exemplos, o analisador de sistema 142 pode determinar que um sistema que inclui um rádio celular é um dispositivo de telefone. Em algumas modalidades, o analisador de sistema 142 pode determinar um tipo do dispositivo baseado em um tamanho da tela de vídeo do dispositivo. Por exemplo, dispositivos que incluem uma tela de vídeo, que é menor do que um tamanho limite predeterminado, podem ser identificados como dispositivos móveis. Em algumas modalidades, o analisador de sistema 142 pode determinar que dispositivos que suportam interfaces com o usuário tridimensionais são dispositivos de realidade aumentada e dispositivos que se conectam com controladores de jogo são dispositivos de console de jogo. Em algumas modalidades, o analisador de sistema 142 pode detectar um tipo de dispositivo baseado em outros componentes de hardware tais como fontes de energia, processadores gráficos, dispositivos de memória, dentre outros. Em cada uma dessas modalidades, o analisador de sistema 142 pode utilizar uma combinação de condições predeterminadas, tais como a presença de uma combinação específica de módulos 122 utilizada para um dispositivo móvel ou uma combinação diferentes de módulos 122 utilizada para um dispositivo de mesa, bem como heurísticas evocadas neste pedido de patente para fazer uma determinação final do tipo e da configuração do sistema corrente.
[0043] No bloco 204, um seletor de interface com o usuário 144 pode determinar um gerenciador de interface com o usuário a ser executado baseado no tipo do sistema. Em algumas modalidades, os gerenciadores de interface com o usuário (também referidos neste documento como compositores) podem gerar uma interface com o usuário baseado no tipo de um sistema. Por exemplo, uma interface com o usuário pode permitir janelas sobrepostas nos dispositivos de mesa, mas não em dispositivos móveis. Adicionalmente, os gerenciadores de interface com o usuário podem incluir comutadores de aplicativo incluindo uma ligação para um assistente digital junto com ícones correspondendo aos aplicativos que estão sendo executados, dentre outros componentes. O seletor de interface com o usuário 144 pode determinar o gerenciador de interface com o usuário a ser executado para produzir uma experiência do usuário correspondendo a um dispositivo. Em algumas modalidades, cada tipo de dispositivo está associado com um gerenciador de interface com o usuário particular. Por exemplo, um dispositivo de realidade aumentada pode possuir um primeiro gerenciador de interface com o usuário e um dispositivo console de jogo pode possuir um segundo gerenciador de interface com o usuário. Como discutido abaixo em maiores detalhes, cada gerenciador de interface com o usuário pode indicar como uma interface com o usuário é para ser gerada para aplicativos sendo executados.
[0044] No bloco 206, um gerador de interface com o usuário 146 pode executar o gerenciador de interface com o usuário para gerar uma interface com o usuário para o sistema, em que o tipo do gerenciador de interface com o usuário compreende várias regras para indicar um layout da interface com o usuário. As várias regras podem indicar como exibir os aplicativos sendo executados e outros elementos visuais tais como um iniciador de aplicativo, um comutador de aplicativo, e uma lista de janelas, dentre outros, os quais podem ou não ser um aplicativo independente ou uma coleção de regras do gerenciador do usuário definindo como apresentar, por exemplo, um relógio. Um iniciador de aplicativo, como referido neste documento,
pode incluir uma lista de aplicativos executáveis instalados em um sistema, uma lista de aplicativos recentemente acessados instalados no sistema, aplicativos recomendados a serem instalados no sistema, dentre outros. Em alguns exemplos, o iniciador de aplicativo pode incluir comandos que podem acessar programas, documentos e configurações. Esses comandos podem incluir uma função de pesquisa baseada em aplicativos e arquivos localmente armazenados, uma lista de documentos disponíveis localmente em um dispositivo ou em um servidor remoto, um painel de controle para configurar componentes de um dispositivo, comandos de função de energia para alterar o estado de energia do dispositivo, dentre outros. Um comutador de aplicativo, como referido neste documento, pode incluir uma ligação para um assistente digital, uma vista de tarefas ilustrando todos os aplicativos abertos, um conjunto de ícones correspondendo aos aplicativos sendo executados, e vários ícones correspondendo aos aplicativos e aos componentes de hardware que são habilitados cada vez que um dispositivo é ligado.
[0045] Em algumas modalidades, as várias regras podem indicar uma área de uma tela que é para ser ocupada pelo iniciador de aplicativo, pelo comutador de aplicativo, e pelas janelas correspondendo aos aplicativos que estão sendo executados. As várias regras podem não contar com mapeamentos de pixel para pixel pelos aplicativos sendo executados. Por exemplo, controles de interface com o usuário podem ser exibidos em regiões de uma tela de vídeo baseado nas regras. Em alguns exemplos, um campo de texto pode ser exibido no centro de um aplicativo e a localização do campo de texto pode ser determinada pelo gerador de interface com o usuário 146 baseado nas várias regras. Por exemplo, a localização do campo de texto pode depender de se as janelas de aplicativo estão sobrepondo umas às outras, se mais do que uma janela de aplicativo está visível, e assim por diante. A localização dos controles de interface com o usuário também pode ser ajustada com base em um tamanho e localização do comutador de aplicativo. Por exemplo, o comutador de aplicativo pode ser exibido ao longo da parte de cima, da parte de baixo, no lado esquerdo, ou no lado direito de uma tela de vídeo. Cada tipo de gerenciador de interface com o usuário pode determinar uma localização de janelas de aplicativo em relação à localização do comutador de aplicativo. Em algumas modalidades, o gerador de interface com o usuário 146 pode exibir a interface com o usuário baseado pelo menos em uma característica do vídeo correspondendo ao gerenciador de interface com o usuário. Por exemplo, um gerenciador de interface com o usuário para dispositivos console de jogo pode exibir aplicativos em um modo de tela cheia sem molduras ou adornos. Em algumas modalidades, o gerenciador de interface com o usuário 146 também pode exibir um comutador de aplicativo e o plano de fundo da área de trabalho. Um comutador de aplicativo, como descrito abaixo em maiores detalhes, pode incluir qualquer número de ícones correspondendo aos aplicativos de controle de hardware, ao aplicativo em execução, aos assistentes digitais, dentre outros. O plano de fundo da área de trabalho pode incluir qualquer imagem adequada, qualquer número de ligações para arquivos localmente armazenados, ligações para diretórios, dentre outros.
[0046] É apreciado que os conceitos da interface com o usuário tais como um iniciador de aplicativo, comutador de aplicativo, adornos da janela, centros de ação, e outras instâncias das experiências da interface com o usuário mencionadas neste documento são ilustrativas por natureza. As várias regras apresentadas para o gerador de interface com o usuário 146 podem criar qualquer experiência do usuário desejada. Essas também não são limitações em relação à complexidade de tais regras. Algumas regras podem simplesmente indicar quando e como um elemento de texto é para ser colocado na tela enquanto outras regras podem definir uma experiência 3D com vários estágios com vários potenciais resultados.
[0047] Em uma modalidade, o diagrama de fluxo de processo da Figura 2 é pretendido para indicar que os blocos do método 200 são para ser executados em uma ordem particular. Alternativamente, em outras modalidades, os blocos do método 200 podem ser executados em qualquer ordem adequada e qualquer número adequados dos blocos do método 200 pode estar incluído. Além disso, qualquer número de blocos adicionais pode estar incluído dentro do método 200, dependendo da aplicação específica. Em algumas modalidades, o método 200 pode incluir detectar que um sistema ou dispositivo muda de um primeiro tipo de um dispositivo para um segundo tipo de dispositivo. Por exemplo, um dispositivo móvel pode ser inserido em uma estação de acoplamento que proporciona uma tela de vídeo maior. O gerador de interface com o usuário 146 pode detectar uma alteração nos recursos de hardware disponíveis do dispositivo móvel e gerar uma interface com o usuário baseada em computador de mesa para substituir uma interface com o usuário baseada em dispositivo móvel. Em algumas modalidades, o método 200 também pode incluir detectar que um monitor externo é acoplado com um dispositivo móvel ou com um dispositivo de telefone. O gerenciador de interface com o usuário 146 pode gerar uma interface com o usuário separada baseado em uma interface com o usuário de computador de mesa se o tamanho do monitor externo exceder um limite predeterminado.
[0048] Em algumas modalidades, o método 200 pode incluir gerar uma interface com o usuário que inclua pelo menos um aplicativo ativo e pelo menos um aplicativo visível. Um aplicativo ativo pode indicar um aplicativo aceitando entrada do usuário, enquanto um aplicativo visível pode ser exibido, mas não aceitar entrada do usuário. Em algumas modalidades, o método 200 também pode incluir executar um segundo gerenciador de interface com o usuário, em que o segundo gerenciador de interface com o usuário é para executar um centro de ação e um aplicativo detector de notificações. Em algumas modalidades, o método 200 também pode incluir gerenciar pelo menos dois gerenciadores de interface com o usuário subordinados, em que cada um dentre os pelo menos dois gerenciadores de interface com o usuário subordinados é para executar um aplicativo separado.
[0049] Em algumas modalidades, o método 200 também pode incluir detectar que um dispositivo de entrada está acoplado com um sistema e gerar um novo gerenciador de interface com o usuário baseado no dispositivo de entrada, em que o dispositivo de entrada é um controlador de jogo e o novo gerenciador de interface com o usuário é para proporcionar uma interface com o usuário de console de jogo. Adicionalmente, o método 200 pode incluir armazenar um estado da interface com o usuário em resposta a alternar do gerenciador de interface com o usuário para o novo gerenciador de interface com o usuário.
[0050] Em algumas modalidades, um gerenciador de interface com o usuário pode ser implementado com várias configurações. Por exemplo, o gerenciador de interface com o usuário pode ser implementado com um aplicativo executado que inclui componentes visuais e adornos, uma interface com o usuário persistente em um encadeamento principal de um gerenciador de interface com o usuário, uma interface com o usuário persistente em um encadeamento que não é o principal de um gerenciador de interface com o usuário, como uma experiência de programa auxiliar hospedado para aplicativos fora do processo, ou uma gerenciador de interface com o usuário recursivamente composto, dentre outros. As várias configurações do gerenciador de interface com o usuário são ilustradas e descritas abaixo em relação à Figura 3.
[0051] A Figura 3 é um diagrama de blocos de um sistema ilustrativo que pode gerar uma interface com o usuário para vários aplicativos do usuário baseado em regras. As regras podem ser representadas como conceitos de alto nível, tais como exibição de um bloco de texto no centro de uma região, ou conceitos de baixo nível tais como esses que requerem que um autor da regra determine o tamanho de uma região e matematicamente centralize o texto na região. O gerenciador de interface com o usuário 300 pode ser executado com qualquer número adequado de aplicativo e de componentes de software. Por exemplo, o gerenciador de interface com o usuário 300 pode utilizar o Windows.UI.Composition ou Linguagem de Marcação Extensiva de Aplicativo (XAML) para imperativamente ou declarativamente descrever várias regras que resultam na criação de uma interface com o usuário ou jargão iniciando na raiz da árvore visual 302. Em outras modalidades, o gerenciador de interface com o usuário 300 pode utilizar quaisquer tecnologias disponíveis tais como HTML em qualquer de suas várias formas, OpenGL, Vulkan, Collada, ou outras estruturas de experiência do usuário existentes para definir e gerenciar o modo no qual as regras de experiência do usuário são convertidas para gerar árvores visuais que descrevem experiências na tela. O gerenciador de interface com o usuário 300 também é capacitado a utilizar essas regras para compor elemento visuais que estão executando fora de um processo tal como em outros aplicativos componentes do Jargão ou outros elementos visuais de nível superior de outras experiências de aplicativo. Em algumas modalidades, o gerenciador de interface com o usuário 300 pode implementar uma experiência específica de interface com o usuário ou jargão por compor diferentes componentes comuns menores do jargão juntos de um modo que reflita a experiência como um todo do jargão. Além disso, o gerenciador de interface com o usuário 300 pode configurar as propriedades de um componente para realizar uma experiência de jargão particular baseada no analisador de sistema 142.
[0052] Em algumas modalidades, o gerenciador de interface com o usuário 300 pode se comunicar com um jargão ou interface com o usuário subjacente através de um conjunto de interfaces de programação de aplicativo (APIs) privadas. Essas APIs privadas podem permitir que o gerenciador de interface com o usuário excute instruções correspondendo às tarefas do jargão associadas com um jargão. A tarefa do jargão pode incluir ativação de aplicativo e gerenciamento de vida útil, travas de aplicativo ou processo, redimensionamento de aplicativo, alterações de visibilidade de aplicativo, desligamento, e outros aspectos do jargão. Em algumas modalidades, o gerenciador de interface com o usuário 300 também pode refletir um estado atual de um jargão. O estado de um jargão pode incluir a vista ativa, aplicativos em execução, resolução atual da tela e outras informações de estado do jargão.
[0053] Em algumas modalidades, o gerenciador de interface com o usuário 300 pode apresentar os elementos visuais dos aplicativos do usuário para o usuário em adição à experiência do jargão. Esses aplicativos podem retratar uma memória temporária (representada por uma superfície visual DCOMP ou por outra tecnologia similar) utilizando a estrutura da escolha do aplicativo. Em tais exemplos, a memória temporária não retrata uma tela diretamente e por condição pré-estabelecida não fica na tela ela própria. Ao invés disso, o gerenciador de interface com o usuário 300 pode selecionar os elementos visuais para um aplicativo e exibir o aplicativo. Em algumas modalidades, o gerenciador de interface com o usuário 300 também pode adicionar adornos, tais como uma barra de título ou sombra projetada no elemento virtual de alto nível de um aplicativo do usuário. Em algumas modalidades, o gerenciador de interface com o usuário 300 também pode indicar qualquer conteúdo por janela de aplicativo tais como telas inicias, dentre outros.
[0054] Em um exemplo, um gerenciador de interface com o usuário 300 pode se comunicar com uma função de Controle de Lista de Janelas 304 para proporcionar uma lista de aplicativos sendo executados em um sistema. Baseado nas regras de interface com o usuário aplicadas pelo gerenciador de interface com o usuário 300, cada aplicativo na lista pode estar associado com um controle de janelas da interface com o usuário 306 ou 308, o qual também está associado com uma barra de título 310 ou 312 e com um hospedeiro de conteúdo 314 ou 316. As regras da interface com o usuário resultantes permitem, por exemplo, que uma janela que é arrastada para ter os conteúdos da janela também movidos devido à transformação do processamento para o movimento ser aplicada para o elemento visual filho que acontece para ser o elemento visual de composição do aplicativo de um modo coordenado. No exemplo da Figura 3, o hospedeiro de controle de janelas 314 exibe um aplicativo do usuário ativo 1 318 e o hospedeiro de controle de janelas 316 exibe um aplicativo do usuário visível 2 320. Diferenças na representação visual entre a barra de título 310 encampando o aplicativo ativo 318 e a barra de título 312 encampando o aplicativo ativo 320 também são indicadas e gerenciadas através das regras de interface com o usuário processadas pelo gerador de interface com o usuário 146. O gerenciador de interface com o usuário 300 pode indicar se o aplicativo do usuário 1 318 e o aplicativo do usuário 2 320 podem ser sobrepostos, vistos lado a lado, redimensionados, e assim por diante.
[0055] É para ser entendido que o diagrama de blocos da Figura 3 não é pretendido para indicar que o gerenciador de interface com o usuário 300 é para criar uma representação visual contendo todos os componentes apresentados na Figura 3. Ao invés disso, o gerenciador de interface com o usuário 300 pode causar que a árvore visual inclua menos componentes ou componentes adicionais não ilustrados na Figura 3 (por exemplo, aplicativos adicionais, módulos adicionais, experiências adicionais, etc.).
[0056] A Figura 4 é um diagrama de blocos de uma mídia de armazenamento legível por computador ilustrativa que pode gerar uma interface com o usuário baseada em regras. A mídia de armazenamento tangível legível por computador 400 pode ser acessada por um processador 402 através de um barramento do computador 404. Além disso, a mídia de armazenamento tangível legível por computador 400 pode incluir código para direcionar o processador 402 a executar as etapas do método corrente.
[0057] Os vários componentes de software discutidos neste documento podem ser armazenados na mídia de armazenamento tangível legível por computador 400, como indicado na Figura 4. Por exemplo, a mídia de armazenamento tangível legível por computador 400 pode incluir um analisador de sistema 406 que pode detectar um tipo do sistema baseado nos componentes de hardware e de software residindo dentro do sistema. Em algumas modalidades, um seletor de interface com o usuário 408 pode determinar um gerenciador de interface com o usuário a ser executado baseado no tipo do sistema. Em algumas modalidades, um gerador de interface com o usuário 410 pode executar o tipo do gerenciador de interface com o usuário para gerenciar uma interface com o usuário para o sistema, em que o tipo do gerenciador de interface com o usuário compreende várias regras para indicar um layout da interface com o usuário.
[0058] É para ser entendido que qualquer número de componentes de software adicionais não apresentados na Figura 4 pode estar incluído dentro da mídia de armazenamento tangível legível por computador 400, dependendo da aplicação específica.
[0059] A Figura 5 é um diagrama de blocos de um sistema ilustrativo para hospedar os gerenciadores de interface com o usuário dentro de um gerenciador de interface com o usuário. Em algumas modalidades, vários gerenciadores de interface com o usuário podem estar ativos ao mesmo tempo e um sistema pode alterar entre um ou mais desses gerenciadores de interface com o usuário baseado em um estado do sistema e em qualquer número de regras. Em alguns exemplos, os gerenciadores de interface com o usuário também podem ser expressos de um modo simultâneo, em que vários gerenciadores de interface com o usuário são utilizados de um modo independente um do outro. Por exemplo, uma interface com o usuário para um dispositivo, tal como um PC de mesa, pode alterar para e a partir de um modo tablet de um modo mais eficiente. Em alguns exemplos, existe um modelo de dados global e um modelo de vista que entende e representa os elementos sendo hospedados nessas experiências de modo que a alteração seja possível.
[0060] Como ilustrado na Figura 5, um hospedeiro de interface com o usuário 500 pode incluir regras tais como política do produto, e política de exibição e de entrada 502 que pode ser utilizada e interpretada pelo analisador de sistema 142 para determinar um gerenciador de interface com o usuário a ser executado baseado no tipo de sistema. O hospedeiro de interface com o usuário 500 pode gerar uma árvore visual 504 baseado na política de produto, na política de vídeo e de entrada 502 e em um estado de um sistema. A árvore visual 504 pode incluir um elemento visual raiz 506, um gerenciador de interface com o usuário 1 508, o gerenciador de interface com o usuário 2 510, e o gerenciador de interface com o usuário 3 512.
Dependendo das regras e do estado do sistema, o gerenciador de interface com o usuário 1 508, o gerenciador de interface com o usuário 2 510, ou o gerenciador de interface com o usuário 3 512 pode ser utilizado para gerar uma interface com o usuário. Existem modalidades alternativas onde o hospedeiro de interface com o usuário 500 cria várias raízes visuais, cada uma com um ou mais gerenciadores de interface com o usuário ou cenários nos quais os gerenciadores de interface com o usuário podem eles mesmos encapsular outros gerenciadores de interface com o usuário.
[0061] Em uma modalidade, o hospedeiro de interface com o usuário 500 na Figura 5 poderia representar um hospedeiro de interface com o usuário capaz de apresentar uma experiência do usuário para um computador portátil 2 em 1. Com um teclado conectado e ativo, tal dispositivo se comporta como um computador laptop tradicional, enquanto que com o teclado removido, o mesmo dispositivo se comporta mais como um computador tablet. O hospedeiro de interface com o usuário 500 utiliza o analisador de sistema 406 para determinar, entre outras coisas, quando o teclado está ativo ou não. Quando o hospedeiro de interface com o usuário 500 determina que o teclado está ativo, ele ativa o gerenciador de interface com o usuário 508. Como descrito anteriormente, o gerenciador de interface com o usuário 508 utiliza várias regras em conjunto com o gerador de interface com o usuário 410 para criar uma experiência do usuário que seja apropriada para o usuário de um computador laptop. Tal experiência do usuário pode incluir a utilização de janelas sobrepostas para aplicativos e experiências de usuário que são otimizadas para utilização de mouse e teclado, entre outras.
[0062] Em um ponto posterior no tempo, um usuário pode executar uma ação, tal como desconectar o teclado, o que causa que o analisador de sistema 406 reconheça que o teclado não está mais ativo e o hospedeiro de interface com o usuário 500 determine que o gerenciador de interface com o usuário 508 não é mais a experiência correta para apresentar para o usuário.
Através das capacidades descritas neste documento, o hospedeiro de interface com o usuário 500 é habilitado para causar que o gerenciador de usuário 508 altere para o gerenciador de usuário 510 que expressa uma experiência de tablet mais apropriada sem impactar sobre a habilidade do usuário de interagir com o sistema.
Uma experiência do modo tablet pode substituir o uso de janelas sobrepostas com uma única experiência de tela cheia e pelas experiências do usuário que são otimizadas para utilização de toque dentre outras.
O processo de alterar, como referido neste documento, implica em uma transição visual direta de um estado visual do sistema para outro estado visual utilizando técnicas de animação e assim por diante enquanto mantendo a habilidade de elementos visuais com componentes tal como uma barra de título 310 ou barra de título 312 para suportar entrada do usuário ou executar outras tarefas.
Em tal modalidade, isto é alcançado por ter um repositório centralizado de informações sobre o estado de elementos visuais de alto nível do aplicativo e de outros componentes visuais sendo apresentados por todo o sistema.
Este estado preservado neste repositório é independente das regras e das informações utilizadas por cada gerenciador de interface com o usuário para apresentar estes elementos visuais de alto nível do aplicativo e outros elementos.
Parte desta informação de estado no repositório é a associação que existe entre estes elementos visuais e o gerenciador de interface com o usuário responsável por apresentar os mesmos na tela.
Quando o analisador de sistema 406 determina que o teclado não está mais ativo e o hospedeiro de interface 500 com o usuário responde por indicar que o gerenciador de interface com o usuário 508 é para ser substituído pelo gerenciador de interface com o usuário 510, a combinação de informação nesse repositório de estados e o acoplamento flexível com os gerenciadores de interface com o usuário permitem uma substituição rápida e eficiente do gerenciador de interface com o usuário 508 pelo gerenciador de interface com o usuário 510. Em adição, o uso do gerenciador de interface com o usuário 410 para interpretar regras para animação e outros comportamentos ao mesmo tempo proporciona uma transição direta de elementos visuais e de entrada a partir do gerenciador de interface com o usuário 508 para o gerenciador de interface com o usuário 510. É apreciado que os métodos e tecnologias apresentados neste documento, tal como o uso de um repositórios de estados comuns para os elementos visuais de alto nível do aplicativo, são somente exemplos e outras modalidades podem empregar diferentes abordagens e combinações de hardware e software para obter efeitos similares.
[0063] Em uma modalidade alternativa, o hospedeiro de interface com o usuário 500 é habilitado a criar ambientes nos quais os gerenciadores de interface com o usuário são recursivamente incorporados uns nos outros. Considere um computador de mesa tradicional que utiliza janelas sobrepostas e inclui um paradigma de computador de mesa virtual. Os computadores de mesa virtuais são uma característica de várias experiências de usuário com sistemas operacionais modernos que permitem a um usuário criar computadores de mesa alternativos. Então, o usuário está apto a trocar entre cada um desses computadores de mesa como um modo de segregar tarefas diferentes. Por exemplo, um usuário pode utilizar um computador de mesa para gerenciar aplicativos relacionados com trabalho relacionado com um projeto, um computador de mesa diferente para gerenciar aplicativos relacionados com trabalho para um projeto separado, e um computador de mesa diferente para gerenciar aplicativos relacionados com sua vida pessoal. Frequentemente, tais implementações de computador de mesa virtual permitem a aplicação de diferentes customizações, tais como um plano de fundo do computador de mesa, em cada computador de mesa virtual. Em alguns exemplos, eles são mutuamente exclusivos – significando que você não pode ver tanto o computador de mesa virtual como o computador de mesa pessoal ao mesmo tempo. Retornando para a Figura 5 e para o hospedeiro de interface com o usuário 500, considere que cada instância do gerenciador de interface com o usuário 508, 510 e 512 é configurada pelo gerador de interface com o usuário 410 com o conjunto de regras apropriado para expressar uma experiência de computador de mesa. Assuma que o gerenciador de interface com o usuário 508 é então associado pelo usuário com aplicativos para o primeiro projeto de trabalho, o gerenciador de interface com o usuário 510 para o segundo projeto de trabalho, e o gerenciador de interface com o usuário 512 para o terceiro projeto de trabalho. Utilizando técnicas como essas descritas no exemplo anterior é possível para o hospedeiro de interface com o usuário 500 utilizar realimentação do usuário proporcionada através do analisador de sistema 406 para apresentar os gerenciadores de interface com o usuário 508, 510 ou 512 apropriados dependendo da escolha do usuário. Esta funcionalidade corresponde às implementações de computador de mesa virtual.
[0064] Em uma modalidade, o fato de que o gerenciador de interface com o usuário 510 é uma instância independente da experiência de computador de mesa, o que por si próprio é separado do gerenciador de interface com o usuário 508 e 512, permite ao usuário simultaneamente apresentar qualquer combinação de gerenciadores de interface com o usuário 508, 510 e 512 para o usuário. Isto permite, por exemplo, que um usuário apresente e interaja tanto com o gerenciador de interface com o usuário 508 como com o gerenciador de interface com o usuário 510 simultaneamente, permitindo ao usuário interagir com ambas as experiências de computador de mesa ao mesmo tempo. Uma modalidade dessa experiência permite hospedar o gerenciador de usuário 510 dentro do gerenciador de usuário 508 como uma janela sobreposta separada. De forma similar, o gerenciador de interface com o usuário 512 contendo informação pessoal poderia ser hospedado em uma janela pelo gerenciador de experiência do usuário 508. Em tal configuração, a conexão entre o elemento visual raiz 506 como apresentado na Figura 5 com o gerenciador de interface com o usuário 510 e 512 poderia ser removida e ao invés disso eles poderiam ser conectados como filhos do gerenciador de interface com o usuário 508. Utilizando técnicas como anteriormente descritas, o gerenciador de interface com o usuário 510 e 512 poderia ser habilitado a apropriadamente alterar sua experiência de uma maneira direta à medida que eles são hospedados sob o gerenciador de interface com o usuário 508.
[0065] Em uma modalidade alternativa, o sistema 400 pode ser capacitado, através do analisador de sistema e de outras implementações apropriadas de hardware e de software, para criar diferentes associações de dispositivos de entrada 126 e de dispositivos de saída 130 como descrito na Figura 1 para criar um particionamento do sistema. Por exemplo, considere um computador de mesa com quatro dispositivos de entrada 126 – dois mouses e dois teclados, dentre outros – e dois dispositivos de saída 130 – um monitor do computador, dentre outros – conectados com o mesmo. Utilizando essas implementações de hardware e de software, o sistema está apto a ser dividido em duas coleções distintas de mouse, teclado e monitor. Cada uma dessas divisões seria visível para o hospedeiro de interface com o usuário 500 através do analisador de sistema 406. Utilizando as implementações proporcionadas pelo hospedeiro de interface com o usuário 500, é possível associar uma experiência do usuário separada com cada uma dessas divisões. Por exemplo, o hospedeiro de interface com o usuário 500 pode associar a interface com o usuário 508 com a primeira divisão e a interface com o usuário 510 com a segunda divisão, assim permitindo que um ou mais usuários interajam com as interfaces com o usuário simultaneamente.
[0066] Em cada um desses exemplos descritos neste documento, um ambiente pode ser criado, no qual o hospedeiro de interface com o usuário 500 pode apresentar a experiência do usuário 508 e 510 simultaneamente nessas configurações, o qual não pode ser diferente desse requerido para apresentar a experiência do usuário 508 e 510 de uma maneira mutuamente exclusiva. Através do uso de gerenciadores de interface com o usuário e do gerador de interface com o usuário, o inconveniente de criar e gerenciar a complexidade desses cenários tem sido significativamente simplificado de forma eficaz, permitindo a reutilização de toda uma experiência do usuário como um componente em uma experiência geral muito maior. É adicionalmente apreciado que os exemplos utilizados neste documento não são limitativos de qualquer forma ou função. Em uma modalidade alternativa, os gerenciadores de interface com o usuário 508, 510 e 512 podem representar diferentes experiências distintas, tais como uma experiência de computador de mesa, uma experiência de console de jogo, e uma experiência de entretenimento em sala de mídia ao invés de todas serem a mesma experiência. EXEMPLO 1
[0067] Em uma modalidade, um sistema para gerar uma interface com o usuário que inclui um processador para detectar um tipo do sistema baseado nos componentes de hardware residindo no sistema ou acoplados com o sistema. O processador também pode determinar um gerenciador de interface com o usuário a ser executado baseado no tipo do sistema e executar o gerenciador de interface com o usuário para gerar uma interface com o usuário para o sistema, em que o gerenciador de interface com o usuário compreende várias regras para indicar um layout da interface com o usuário.
[0068] Alternativamente, ou em adição, a interface com o usuário pode incluir pelo menos um aplicativo ativo e pelo menos um aplicativo visível. Alternativamente, ou em adição, o tipo do sistema compreende um sistema móvel, um sistema de console de jogo, um sistema de realidade aumentada, um sistema tablet ou um sistema de computador de mesa. Alternativamente, ou em adição, o processador é para exibir a interface com o usuário baseado em pelo menos uma característica do vídeo correspondendo ao gerenciador de interface com o usuário. Alternativamente, ou em adição, o gerenciador de interface com o usuário é para gerenciar pelo menos dois gerenciadores de interface com o usuário subordinados, em que cada um dos pelos menos dois gerenciadores de interface com o usuário subordinados é para executar um aplicativo separado. Alternativamente, ou em adição, o gerenciador de interface com o usuário também é para gerenciar um aplicativo de jargão que é para suportar experiências. Alternativamente, ou em adição, o gerenciador de interface com o usuário também é para gerenciar um hospedeiro de experiência de jargão que é para suportar experiências. Alternativamente, ou em adição, o processador é para detectar um dispositivo de entrada que está acoplado com o sistema e gerar um novo gerenciador de interface com o usuário baseado no dispositivo de entrada. Alternativamente, ou em adição, o dispositivo de entrada é um controlador de jogo e o novo gerenciador de interface com o usuário é para proporcionar uma interface com o usuário de dispositivo de jogo. Alternativamente, ou em adição, o processador é para armazenar um estado da interface com o usuário em resposta a mudar do gerenciador de interface com o usuário para o novo gerenciador de interface com o usuário. EXEMPLO 2
[0069] Em outra modalidade descrita neste documento, um método para gerar uma interface com o usuário pode incluir detectar um tipo de um sistema baseado nos componentes de hardware residindo no sistema ou acoplados com o sistema. O método também pode incluir determinar um gerenciador de interface com o usuário a ser executado baseado no tipo do sistema e executar o gerenciador de interface com o usuário para gerar uma interface com o usuário para o sistema, em que o gerenciador de interface com o usuário compreende várias regras para indicar um layout da interface com o usuário.
[0070] Alternativamente, ou em adição, a interface com o usuário pode incluir pelo menos um aplicativo ativo e pelo menos um aplicativo visível. Alternativamente, ou em adição, o tipo do sistema compreende um sistema móvel, um sistema de console de jogo, um sistema de realidade aumentada, um sistema tablet ou um sistema de computador de mesa. Alternativamente, ou em adição, o método pode incluir exibir a interface com o usuário baseado em pelo menos uma característica do vídeo correspondendo ao gerenciador de interface com o usuário. Alternativamente, ou em adição, o gerenciador de interface com o usuário é para gerenciar pelo menos dois gerenciadores de interface com o usuário subordinados, em que cada um dos pelo menos dois gerenciadores de interface com o usuário subordinados é para executar um aplicativo separado. Alternativamente, ou em adição, o gerenciador de interface com o usuário também é para gerenciar um aplicativo de jargão que é para suportar experiências. Alternativamente, ou em adição, o gerenciador de interface com o usuário também é para gerenciar um hospedeiro de experiência de jargão que é para suportar experiências. Alternativamente, ou em adição, o método pode incluir detectar um dispositivo de entrada que está acoplado com o sistema e gerar um novo gerenciador de interface com o usuário baseado no dispositivo de entrada. Alternativamente, ou em adição, o dispositivo de entrada é um controlador de jogo e o novo gerenciador de interface com o usuário é para proporcionar uma interface com o usuário de console de jogo. Alternativamente, ou em adição, o método pode incluir armazenar um estado da interface com o usuário em resposta a mudar do gerenciador de interface com o usuário para o novo gerenciador de interface com o usuário. EXEMPLO 3
[0071] Ainda em outra modalidade descrita neste documento, um sistema para gerar uma interface com o usuário pode incluir um processador e um dispositivo de armazenamento para armazenar várias instruções que, em resposta a serem executadas pelo processador, causam que o processador detecte um tipo do sistema baseado nos componentes de hardware residindo no sistema ou acoplados com o sistema e selecione um gerenciador de interface com o usuário a partir de uma árvore visual dos gerenciadores de interface com o usuário para executar baseado no tipo do sistema, em que a árvore visual é para residir em um hospedeiro de interface com o usuário. As várias instruções também podem causar que o processador execute o gerenciador de interface com o usuário selecionado para gerar uma interface com o usuário para o sistema, em que o gerenciador de interface com o usuário selecionado compreende várias regras para indicar um layout da interface com o usuário.
[0072] Alternativamente, ou em adição, a interface com o usuário pode incluir pelo menos um aplicativo ativo e pelo menos um aplicativo visível. Alternativamente, ou em adição, o tipo do sistema compreende um sistema móvel, um sistema de console de jogo, um sistema de realidade aumentada, um sistema tablet, ou um sistema de computador de mesa. Alternativamente, ou em adição, as várias instruções podem causar que o processador exiba a interface com o usuário baseado em pelo menos uma característica do vídeo correspondendo ao gerenciador de interface com o usuário. Alternativamente, ou em adição, o gerenciador de interface com o usuário é para gerenciar pelo menos dois gerenciadores de interface com o usuário subordinados, em que cada um dos pelo menos dois gerenciadores de interface com o usuário subordinados é para executar um aplicativo separado. Alternativamente, ou em adição, o gerenciador de interface com o usuário também é para gerenciar um aplicativo de jargão que é para suportar experiências. Alternativamente, ou em adição, o gerenciador de interface com o usuário também PE para gerenciar um hospedeiro de experiência de jargão que é para suportar experiências. Alternativamente, ou em adição, as várias instruções podem causar que o processador detecte um dispositivo de entrada que está acoplado com o sistema e gere um novo gerenciador de interface com o usuário baseado no dispositivo de entrada. Alternativamente, ou em adição, o dispositivo de entrada é um controlador de jogo e o novo gerenciador de interface com o usuário é para proporcionar uma interface com o usuário de console de jogo. Alternativamente, ou em adição, as várias instruções podem causar que o processador armazene um estado da interface com o usuário em resposta a mudar do gerenciador de interface com o usuário para o novo gerenciador de interface com o usuário.
[0073] Em particular e com respeito às várias funções executadas pelos componentes, dispositivos, circuitos, sistemas, dentre outros, descritos acima, os termos (incluindo uma referência a "meio") utilizados para descrever tais componentes são pretendidos para corresponder, a não ser que de outro modo indicado, a qualquer componente que execute a função especificada do componente descrito, por exemplo, um equivalente funcional, mesmo que, no entanto, não estruturalmente equivalente à estrutura revelada, o qual executa a função dos aspectos ilustrativos ilustrados neste documento do assunto reivindicado. A este respeito, também será reconhecido que a inovação inclui um sistema bem como uma mídia de armazenamento legível por computador possuindo instruções executáveis por computador para executar os atos e os eventos dos vários métodos do assunto reivindicado.
[0074] Existem vários modos de implementar o assunto reivindicado, por exemplo, uma API apropriada, kit de ferramentas, código de controlador, sistema operacional, controle, objeto de software independente ou que pode ser transferido, etc., o que permite que os aplicativos e serviços utilizem as técnicas descritas nesse documento. O assunto reivindicado contempla o uso a partir do ponto de vista de uma API (ou outro objeto de software), bem como a partir de um objeto de software ou de hardware que opere de acordo com as técnicas expostas neste documento. Assim, várias implementações do assunto reivindicado descritas neste documento podem possuir aspectos que estão totalmente em hardware, parcialmente em hardware e parcialmente em software, bem como em software.
[0075] Os sistemas mencionados acima foram descritos com respeito à interação entre vários componentes. Pode ser apreciado que tais sistemas e componentes podem incluir esses componentes ou subcomponentes especificados, alguns dos componentes ou subcomponentes especificados, e componentes adicionais, e de acordo com várias permutações e combinações do precedente. Os subcomponentes também podem ser implementados como componentes comunicativamente acoplados com outros componentes ao invés de incluídos dentro dos componentes pai (hierarquia).
[0076] Adicionalmente, pode ser observado que um ou mais componentes podem ser combinados em um único componente proporcionando funcionalidade agregada ou divididos em vários subcomponentes separados, e qualquer uma ou mais camadas intermediárias, tais como uma camada de gerenciamento, podem ser proporcionadas para comunicativamente acoplarem tais subcomponentes de modo a proporcionar funcionalidade integrada. Quaisquer componentes descritos neste documento também podem interagir com um ou mais outros componentes não especificamente descritos neste documento, mas geralmente conhecidos pelos versados na técnica.
[0077] Em adição, apesar de um aspecto particular do assunto reivindicado poder ter sido revelado com respeito a uma dentre várias implementações, tal aspecto pode ser combinado com um ou mais outros aspectos das outras implementações como pode ser desejado e vantajoso para qualquer dada aplicação ou aplicação particular. Além disso, até a extensão em que os termos "inclui", "incluindo", "possui", "contém", variações dos mesmos, e outras palavras similares são utilizadas na descrição detalhada ou nas reivindicações, esses termos são pretendidos para serem inclusivos de uma maneira similar ao termo "compreendendo" como uma palavra de transição aberta sem impedir quaisquer elementos adicionais ou outros elementos.

Claims (15)

REIVINDICAÇÕES
1. Dispositivo de computação (102) que compreende: um processador (104; 402); e um dispositivo de armazenamento (106, 114; 400) para armazenar uma pluralidade de instruções que, em resposta à execução pelo processador (104; 402), fazem com que o processador execute um gerenciador de interface de usuário (300) para gerar uma interface de usuário para o dispositivo de computação, em que o gerenciador de interface do usuário (300) compreende uma pluralidade de regras para indicar um layout da interface do usuário, caracterizado pelo fato de que as instruções armazenadas no dispositivo de armazenamento (106, 114; 400), em resposta à execução pelo processador (104; 402), fazem o processador: detectar (202), por um analisador de sistema (142; 406), um tipo de dispositivo de computação baseado em componentes de hardware que residem dentro do dispositivo de computação ou acoplado ao dispositivo de computação; determinar (204), por um seletor de interface do usuário (144; 408), o gerenciador de interface do usuário (300) a ser executado com base no tipo detectado do dispositivo de computação, em que o gerenciador de interface do usuário determinado (300) compreende regras correspondentes ao tipo detectado do dispositivo de computação e regras adicionais compartilhadas entre vários gerenciadores de interface do usuário diferentes, correspondentes a diferentes tipos de dispositivos de computação; e executar (206), por um gerador de interface de usuário (146; 410), o gerenciador de interface de usuário determinado (300) para gerar a interface de usuário para o dispositivo de computação detectado (102).
2. Dispositivo de computação, de acordo com a reivindicação 1, caracterizado pelo fato de que a interface do usuário compreende pelo menos um aplicativo ativo (318) e pelo menos um aplicativo visível (320).
3. Dispositivo de computação, de acordo com a reivindicação 1 ou 2, caracterizado pelo fato de que o tipo de dispositivo de computação (102) compreende um sistema móvel, um sistema de console de jogos, um sistema de realidade aumentada, um sistema de tablet ou um sistema de desktop.
4. Dispositivo de computação, de acordo com a reivindicação 1 ou 2, caracterizado pelo fato de que o processador (104; 402) deve exibir a interface do usuário com base em pelo menos uma característica de exibição correspondente ao gerenciador de interface do usuário determinado (300).
5. Dispositivo de computação, de acordo com a reivindicação 1, caracterizado pelo fato de que o gerenciador de interface do usuário (300) deve gerenciar pelo menos dois gerenciadores de interface de usuário subordinados (306, 308), em que cada um dos pelo menos dois gerenciadores de interface de usuário subordinados deve executar um aplicativo separado.
6. Dispositivo de computação, de acordo com a reivindicação 1 ou 2, caracterizado pelo fato de que o gerenciador de interface do usuário (300) também deve gerenciar um aplicativo de shell que deve suportar experiências.
7. Dispositivo de computação, de acordo com a reivindicação 1 ou 2, caracterizado pelo fato de que o gerenciador de interface com o usuário (300) também deve gerenciar um host de experiência de shell que deve suportar experiências.
8. Dispositivo de computação, de acordo com a reivindicação 1, caracterizado pelo fato de que as instruções armazenadas no dispositivo de armazenamento (106, 114; 400), em resposta à execução pelo processador (104; 402), fazem com que o processador detecte ainda um dispositivo de entrada (126) acoplado ao dispositivo de computação (102) e para gerar um novo gerenciador de interface com o usuário (300) com base no dispositivo de entrada detectado.
9. Dispositivo de computação, de acordo com a reivindicação 8, caracterizado pelo fato de que o dispositivo de entrada (126) é um controlador de jogos e o novo gerenciador de interface de usuário (300) é fornecer uma interface de usuário de console de jogos.
10. Dispositivo de computação, de acordo com a reivindicação 8, caracterizado pelo fato de que o processador (104; 402) armazena um estado da interface do usuário em resposta à transição do gerenciador da interface do usuário para o novo gerenciador da interface do usuário.
11. Dispositivo de computação, de acordo com a reivindicação 1, caracterizado pelo fato de que a determinação do gerenciador de interface do usuário (300) compreende selecionar um gerenciador de interface do usuário (300) a partir de uma árvore visual (504) de gerenciadores de interface do usuário (508, 510, 512), em que a árvore visual isto reside em um host da interface do usuário (500).
12. Método para gerar uma interface de usuário para um dispositivo de computação (102), incluindo: executar um gerenciador de interface de usuário (300) para gerar uma interface de usuário para o dispositivo de computação, em que o gerenciador de interface de usuário compõe uma pluralidade de regras para indicar um layout da interface de usuário, caracterizado pelo fato de que o método ainda compreende as etapas de:
detectar (202), por um analisador de sistema (142; 406) do dispositivo de computação, um tipo de dispositivo de computação baseado em componentes de hardware que residem dentro do dispositivo de computação ou acoplados ao dispositivo de computação; determinar (204), por um seletor de interface de usuário (144; 408) do dispositivo de computação, o gerenciador de interface de usuário (300) a ser executado com base no tipo detectado do dispositivo de computação, em que o gerenciador de interface de usuário determinado (300) com estabelece regras correspondentes ao tipo detectado de dispositivo de computação e outras regras compartilhadas entre vários gerenciadores de interface do usuário, correspondentes a diferentes tipos de dispositivos de computação; e executar (206), por um gerador de interface de usuário (146; 410) do dispositivo de computação, o gerenciador de interface de usuário determinado (300) para gerar a interface de usuário para o dispositivo de computação detectado (102).
13. Método, de acordo com a reivindicação 12, caracterizado pelo fato de que a interface do usuário compreende pelo menos um aplicativo ativo (318) e pelo menos um aplicativo visível (320).
14. Método, de acordo com a reivindicação 12 ou 13, caracterizado pelo fato de que o tipo de dispositivo de computação (102) compreende um sistema móvel, um sistema de console de jogos, um sistema de realidade aumentada, um sistema de tablet ou um sistema de desktop.
15. Método, de acordo com a reivindicação 12 ou 13, caracterizado pelo fato de que compreende detectar um dispositivo de entrada (126) acoplado ao dispositivo de computação (102) e gerar um novo gerenciador de interface de usuário (300) com base no dispositivo de entrada, em que o dispositivo de entrada (126) é um controlador de jogos e o novo gerenciador de interface do usuário (300) é fornecer uma interface de usuário do console de jogos.
BR112019026121-4A 2017-06-16 2017-06-16 geração de interface com o usuário baseada em regras BR112019026121A2 (pt)

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 (1)

Publication Number Publication Date
BR112019026121A2 true BR112019026121A2 (pt) 2020-07-07

Family

ID=59270139

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112019026121-4A BR112019026121A2 (pt) 2017-06-16 2017-06-16 geração de interface com o usuário baseada em regras

Country Status (13)

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

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 腾讯科技(深圳)有限公司 多媒体会议场景下的界面显示方法、装置、终端及介质

Family Cites Families (59)

* 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
US7895522B2 (en) * 2001-09-28 2011-02-22 Ntt Docomo, Inc. Layout 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
US7392483B2 (en) * 2001-09-28 2008-06-24 Ntt Docomo, Inc, Transformation 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
AU2003299636A1 (en) * 2002-12-13 2004-07-09 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
WO2008099776A1 (ja) 2007-02-16 2008-08-21 Sharp Kabushiki Kaisha ユーザインタフェース生成装置、情報端末、ユーザインタフェース生成制御プログラム、記録媒体、およびユーザインタフェース生成方法
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
US20120284631A1 (en) 2011-05-02 2012-11-08 German Lancioni Methods to adapt user interfaces and input controls
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
AU2012355474B2 (en) * 2011-12-23 2018-01-04 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
WO2014000250A1 (en) * 2012-06-29 2014-01-03 Intel Corporation Provision of user interface based on user interaction with 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
EP3216196B1 (en) * 2014-11-24 2021-01-06 C-Labs Corporation Method for dynamic and automatic creation of user interfaces
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

Also Published As

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

Similar Documents

Publication Publication Date Title
US10503344B2 (en) Dynamic cross-environment application configuration/orientation
JP6273354B2 (ja) 複数のディスプレイ用のユーザインタフェース要素
US9354900B2 (en) Method and apparatus for presenting a window in a system having two operating system environments
JP6134860B2 (ja) ワークスペースを表示するための複数のディスプレイ
BR112015025939B1 (pt) Método e sistema para gerenciamento de janela
US20110258534A1 (en) Declarative definition of complex user interface state changes
US20130055092A1 (en) User interface for networks including virtual machines
D'Antoni et al. Operating system support for augmented reality applications
JP2018509686A (ja) インクストロークの編集および操作
US20190278591A1 (en) Representing a software application using extended reality
US10956131B2 (en) Separation of user interface logic from user interface presentation by using a protocol
US20220382566A1 (en) Generating User Interface Containers
US20240143350A1 (en) Rules Based User Interface Generation
US11249771B2 (en) Terminal input invocation
EP3309657B1 (en) Role-based provision of virtual reality environment
US20190056857A1 (en) Resizing an active region of a user interface
US10678517B1 (en) User interface synthesis based upon extracted presentation document graphical features
US20180004720A1 (en) Dial Control for Addition and Reversal Operations

Legal Events

Date Code Title Description
B350 Update of information on the portal [chapter 15.35 patent gazette]
B06W Patent application suspended after preliminary examination (for patents with searches from other patent authorities) chapter 6.23 patent gazette]