Padrão X-Windows Maria Alice Grigas Varella Ferreira EP-USP O padrão X-Windows requisitos de projeto Servir a grande variedade de terminais de saída e dispositivos de entrada: desde monocromáticos até processadores gráficos de alto desempenho Maria Alice Grigas Varella Ferreira – EP-USP O padrão X-Windows requisitos de projeto Transparência às redes Suportar várias aplicações funcionando concorrentemente uma em cada janela; várias janelas por aplicativo Maria Alice Grigas Varella Ferreira – EP-USP O padrão X-Windows requisitos de projeto Janelas de tamanho alterável Suportar a sobreposição de janelas W1 W3 W2 Janela W2 está associada ao aplicativo Prog2 Janela (Window) – região da tela, onde são exibidas as informações de um programa (W2 está associada ao Prog2, e possui uma janela-filha) Maria Alice Grigas Varella Ferreira – EP-USP O padrão X-Windows requisitos de projeto Aplicativos independentes de dispositivo: não editar, não recompilar, não religar às bibliotecas DLLs – “dynamic link libraries” as funções gráficas devem funcionar para qualquer vídeo operações indiferentes para vídeos monocromáticos/coloridos várias interfaces de gerenciamento diferentes várias políticas de uso diferentes Maria Alice Grigas Varella Ferreira – EP-USP O padrão X-Windows requisitos de projeto Fornecer suporte de alta qualidade e alta resolução para: Texto Imagens pixmaps A importância do ser humano.... Maria Alice Grigas Varella Ferreira – EP-USP Gráficos 2D bitmaps 100 80 60 40 20 0 1° 3° Tr i m . Tr i m . Les t e Oes t e Nor t e A proposta do sistema XWindows Extensibilidade – estender rapidamente as funcionalidades do programa, sem ficar restringido por problemas relativos à interface Permitir ciclo de vida evolutivo Maria Alice Grigas Varella Ferreira – EP-USP Componentes O padrão X-Windows pressupõe arquitetura com três componentes: uma Window Manager (Gerenciador de Janelas) – subsistema que ajuda o usuário a controlar contextos diferentes e trata da separação física entre as várias aplicações. Controla o tamanho e a localização da janela e seus atributos (títulos e bordas) Maria Alice Grigas Varella Ferreira – EP-USP Componentes Input Manager (Gerenciador da Entrada) trata da visão da entrada de dados e comandos pelas várias aplicações (que aplicação vê qual dispositivo) Base Window System - infra-estrutura para o WM e o IM. WM + IM = interface (apresentação + operações) Maria Alice Grigas Varella Ferreira – EP-USP do usuário Recursos Recursos, em X-Windows, representados por: imagens “offscreen” arbitrário janelas fontes de texto cursores Maria Alice Grigas Varella Ferreira – EP-USP de são tamanho Recursos - Imagens Bitmaps - retângulos de bits (0 e 1), usados como regiões de recorte ou usados na construção de cursores; Pixmaps - retângulos de n-planos de bits (cor); armazenamento de figuras muito usadas, armazenamento temporário de menus ou ladrilhos de cobertura da tela. Maria Alice Grigas Varella Ferreira – EP-USP Recursos – texto e gráficos Texto - as fontes de texto possuem 256 caracteres, de altura variável. Não há substituição dinâmica de fontes (da alçada do usuário). Texto pode ser passado por “buffers” de armazenamento entre as aplicações. Gráficos - são carregados dos programas através de funções que indicam a forma de colocação na tela (funções lógicas de manipulação de bits). Permitem-se linhas, arcos e formas. Maria Alice Grigas Varella Ferreira – EP-USP Recursos - janelas As janelas podem estar sobrepostas ou ladrilhadas. As primeiras que surgiram eram ladrilhadas; atualmente, usam-se mais, janelas sobrepostas. As janelas Implementam a metáfora da mesa de escritório (“desktop”) As janelas podem estar abertas na tela ou minimizadas, através de ícones Maria Alice Grigas Varella Ferreira – EP-USP Recursos - janelas As janelas são criadas pelo Sistema Operacional (ambiente) e identificadas por um descritor; cada sistema admite um certo número de descritores, e portanto, de janelas. Atualmente, somente o tamanho da memória limita tais elementos. Pode-se supor que nas plataformas atuais, não há limitação. Maria Alice Grigas Varella Ferreira – EP-USP Recursos - Ícones Ícone - pequena figura que representa a janela e serve para diminuir o espaço ocupado pelas janelas na tela, retirando as que não se encontram em uso. Os ícones pictóricos criam a ilusão de se operar em um ambiente físico, contendo documentos, impressoras pincéis, tesouras etc. Os ícones podem ser criados a partir de imagens abstratas e então devem ser “aprendidos” pelos usuários. Maria Alice Grigas Varella Ferreira – EP-USP Hierarquia de janelas Sistema de coordenadas - coordenadas absolutas de tela, com origem, geralmente, no canto esquerdo superior. Bordas - área sombreada mantida pelo Gerenciador de Janelas raiz W1 Janela-pai W3 W2 folhas recorte Maria Alice Grigas Varella Ferreira – EP-USP Hierarquia de janelas Janelas sofrem recorte na borda da janelapai Obscurecimento - W2 obscurece W1 e W3 Geralmente, o WM trata de recuperar as partes obscurecidas para o usuário W1 W3 W2 recorte Maria Alice Grigas Varella Ferreira – EP-USP Hierarquia de janelas Tipos de Janelas: Opacas - é o tipo comum de uma janela; ocorre o obscurecimento entre janelas. Transparentes - são usadas para operações de recorte, operações de redimensionamento e movimentação de janelas e facilidades de controle da entrada (imagem do cursor) Maria Alice Grigas Varella Ferreira – EP-USP Hierarquia de janelas Operações sobre Janelas: Criação da janela Destruição da janela Redimensionamento Movimentação dentro da janela-pai e dentro da hierarquia etc Background da janela (cor/textura) Maria Alice Grigas Varella Ferreira – EP-USP Recursos - máscaras As operações sobre a janela podem ser feitas com o emprego de máscaras. Operações sobre bits - colorir janela, combinar ladrilho com região da janela, cópia de áreas etc: ( (source FUNC destination ) AND mask) (destination) AND (NOT mask) ) Maria Alice Grigas Varella Ferreira – EP-USP Uso de recursos Os recursos são identificados através de nomes. Se o usuário conhece o nome pode utilizá-lo, mesmo que pertença a outro cliente facilita o compartilhamento de recursos. Maria Alice Grigas Varella Ferreira – EP-USP Uso de recursos O recurso pertence a seu criador. Quando a conexão é desfeita, o sistema destrói o recurso. Se ele tiver outros usuários, estes perdem o recurso. Os recursos possuem parâmetros. Ex: texto em uma janela: cor do texto, tipo de fonte, cadeia que fornece os “dados” do texto. Recurso = “widget” (parâmetros = atributos) Recurso = texto (fonte, cor, tamanho, estilo, “Este texto é meu”) Maria Alice Grigas Varella Ferreira – EP-USP Uso de recursos Janelas não podem ser partilhadas por programas diferentes. Uma janela pode “criar” outras janelas Hierarquia de janelas (janelas ascendentes e descendentes) Maria Alice Grigas Varella Ferreira – EP-USP Cor A janela é uma área retangular, mas alguns gerenciadores chegaram a utilizar telas circulares, com píxeis de “n” bits. n = 1 em vídeos monocromáticos e n>1 em vídeos coloridos -> planos da tela; “n” entre 4 e 12 em vídeos “pseudocolor” Maria Alice Grigas Varella Ferreira – EP-USP Cor “Color map” ou tabela de cores- conjunto de cores aceitas pelo vídeo; o píxel indexa a tabela de cores, que pode ser alterada dinamicamente. Os aplicativos partilham a tabela. O usuário especifica a tripla RGB Se a cor não existe na tabela, toma-se a cor mais próxima Escalas de cinza - visão degenerada Nomes das cores - existe uma tabela com nomes de cores, que pode ser utilizada. Existem vários modelos de cores em CG. Maria Alice Grigas Varella Ferreira – EP-USP Tratamento da Entrada Especificação de teclado e mouse tela X-server Devicelibrary Maria Alice Grigas Varella Ferreira – EP-USP teclado mouse Tratamento da Entrada Ligação da entrada à janela - Uma das janelas está sempre ligada à entrada (mouse ou teclado) -> janela ativa, “listener” ou “input focus” Mouse padrão - três botões + comandos adicionais (“multiclicking”); a entrada é assíncrona, com “feedback” léxico feito automaticamente pela interface; o “feedback” semântico pode ser feito por eventos gerados pelo servidor ou por “polling” do usuário. o movimento do mouse executa automaticamente o realce dos itens de um menu (brilho, cor) Maria Alice Grigas Varella Ferreira – EP-USP Tratamento da Entrada Teclado - Cada tecla tem um código que deve ser traduzido em ASCII ou EBCDIC código universal. O teclado pode ser afetado pelos modificadores. Podem ainda ser compostos acordes. Acordes - várias teclas pressionadas ao mesmo tempo Modificadores (ctrl, alt e shift) - valem também para alterar o significado dos botões do mouse Evento do teclado: tecla + modificadores + tipo de evento Maria Alice Grigas Varella Ferreira – EP-USP Tratamento da Entrada Cursores - formas arbitrárias que representam a posição dos dispositivos na tela (janela, coordenadas); são descritos por bitmaps que fornecem a sua forma e um ponto que especifica a coordenada do centro do bitmap na tela 16 X 16, mas podem ser redimensionados definição de cursor por janela Maria Alice Grigas Varella Ferreira – EP-USP Tratamento da Entrada Os dispositivos produzem eventos na tela: eventos do mouse: click dos botões, duplo clicking, pressão do botão, soltura do botão eventos do teclado: pressão e soltura da tecla eventos da janela: mouse entra/sai da janela, redimensionamento/movimentação da janela, movimento do mouse. A janela seleciona os eventos que deseja receber, através de máscaras A janela no topo da pilha recebe o evento e o transmite às demais janelas na hierarquia Maria Alice Grigas Varella Ferreira – EP-USP Tratamento da Entrada Mouse - Pode ser afetado pelos modificadores Evento do mouse: local à janela e global à tela + estado dos botões + estado dos modificadores + “timestamp” “Timestamp” - tempo, medido em alguma unidade de tempo (milisegundo, por ex.) em relação a alguma origem (início do programa, um determinado instante de tempo etc) Maria Alice Grigas Varella Ferreira – EP-USP Tratamento da Entrada Gerenciamento Os eventos se propagam pela hierarquia de janelas O teclado é gerenciado de duas formas: “Real state” - o teclado fica amarrado ao mouse “Listener” - o teclado é independente do mouse e fica ligado a uma janela (“Focus”) Maria Alice Grigas Varella Ferreira – EP-USP “ADD-ONS” (Aditivos) “Add-ons” são programas que “melhoram” os serviços do WM. Facilitam o desenvolvimento de aplicativos e fornecem a eles consistência. 1) “Typescript Package” - simula a interface de teletipo para aplicações que lêem linhas de texto (C, Pascal), copiam textos de uma janela para outra (SUN) ou gráficos (Macintosh). Pode ser até um editor completo (Andrew) Maria Alice Grigas Varella Ferreira – EP-USP “ADD-ONS” (Aditivos) 2) Editores de texto 3) Pacotes Gráficos - oferecem um modelo simples para a geração de gráficos, deixando para pacotes gráficos de verdade (GKS, PHIGS, CORE) as tarefas mais complexas. Pacotes mais complexos são montados sobre os mais simples. Obedece-se, em geral, ao critério “poucos primitivos, mas eficientes”. WM podem ser construídos sobre pacotes gráficos. Ex: Macintosh construído sobre o Quickdraw. Devem oferecer apresentação atrativa. Maria Alice Grigas Varella Ferreira – EP-USP “ADD-ONS” (Aditivos) 4) User interface toolkits e UIMS/UIDS - auxiliam o usuário na construção de seu diálogo. Ex: Toolbox para o Macintosh SUIT para o sistema do Foley - uso didático Vantagens: auxiliam a criação, aumentando a produtividade, e fornecem consistência entre aplicações diferentes (mesmo “look” forma) UIMS – “user interface management system” UIDS – “user interface development system” Maria Alice Grigas Varella Ferreira – EP-USP “ADD-ONS” (Aditivos) Influência do WM na interface do usuário - O usuário irá construir sua interface utilizando os conceitos que o gerenciador oferece, os recursos colocados a sua disposição e assim, será fortemente influenciado por ele. Personalização - alguns sistemas permitem a personalização do WM. Maria Alice Grigas Varella Ferreira – EP-USP Modelo do sistema (ClienteServidor) aplicativo GKS X-VDI X-lib WM Editor de texto Biblioteca de textos X-lib X-lib aplicativo VT-100 X-lib NETWORK tela X-server Devicelibrary Maria Alice Grigas Varella Ferreira – EP-USP teclado mouse A proposta do sistema XWindows Referências bibliográficas: Myers, B. - A Taxonomy of Window Manager User Interfaces Scheifler and Gettys - The X Windows Systems Van Dam, A. Post-WIMP User Interfaces. Comm. of the ACM. v.40, n.2, Feb. 1997. p. 63-67. Maria Alice Grigas Varella Ferreira – EP-USP