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
Download

A proposta do sistema X-Windows