Anda di halaman 1dari 24

Programao Orientada a Eventos em Sistemas de Interfaces com o Usurio

Luiz Fernando Martha Departamento de Engenharia Civil PUC-Rio CIV2802 Sistemas Grficos para Engenharia (adaptado de Marcelo Gattass)

Processo de Interao (Eng. Cognitiva)


Golfo de Execuo: Usurio
formulao da inteno; especificao da ao; execuo.

Golfo de Avaliao:
percepo; interpretao; avaliao.

Sistema
Norman, 1986

Signos (Semitica)

ndices cones Smbolos

Objetos de comuns interface

Modelo de Programao
Toolkit de Interface (Motif, SDK, ... )

Dispositivos

Sistema Grfico (Xlib, GDI, ...)


Computador

Programa GrficoInterativo

Usurio

Programao Convencional
Programao Convencional Os comandos so executados segundo uma ordem prestabelecida e seqencial.
inicio

captura dados

processa dados

fim

Tcnicas de Interao
Solicitao (Request) Amostragem (Sample) Eventos (Event)
eventos [Xlib, SDK] callbacks [Motif, IUP, Visual]

listeners [Java/OO] signals & slots [Qt]

Problemas com solicitao

Entradas Entradas Simultneas Simultneas

Modelo de Eventos
Processa Evento Tipo 1

Eventos

Examina eventos, chama os mdulos de processamento

Processa Evento Tipo 2

Sistema Grfico

Programa de Aplicao

Processa Evento Tipo 3

Eventos tpicos (WIMP)


KeyPress KeyRelease ButtonPress ButtonRelease Motion LeaveNotify EnterNotify WindowExposure Resize Timer Idle
Janela A

Janela B Janela C

Janelas e tratadores de eventos


Aplicao

Janela A

Janela B

Janela A.1

Janela A.2

Geralmente um tratador de eventos por aplicao

Janelas e tratadores de eventos


Aplicao

Janela A

Janela B

Janela A.1

Janela A.2

Tratador de eventos I

Tratador de eventos II

Modelo de Callbacks
Processa Evento Tipo 1

Eventos

Examina eventos, chama os mdulos de processamento

Processa Evento Tipo 2

Motif Visual Basic IUP ...

Processa Evento Tipo 3

Programa de Aplicao

static int repaint (Ihandle *self) { ... }

IUP/LED void main (void) IUP/LED { IupOpen( ); IupLoad ("canvas.led"); IupSetFunction ("a_repaint", (Icallback)repaint); IupShow (IupGetHandle("main")); IupMainLoop( ); IupClose( ); }
canvas.led
main = dialog [TITLE=IUP Canvas] ( canvas (a_repaint) )

Visual Basic

ToolBook

Modelo de Signals & Slots [Qt]

Nvel de abstrao e escopo


ESCOPO MENOR

O A R T S B A

ToolBook VisualBasic EDG/vix Qt SDK


F A C I L I D A D E

Motif

IUP/lua
ESCOPO MAIOR

Em que usar o que?

Modelo do IUP/LED
Aplicao = conjunto de dilogos Dilogos = hierarquia de elementos de interface Especificao de layout
Concreto X Abstrato

Atributos definem a aparncia

Elementos de Interface
Primitivos
Button, Canvas, Frame, Image, Item, Label, List, Submenu, Text, Toggle,Matrix,Multiline

Agrupamento
Dialog, Radio, Menu

Composio
Hbox, Vbox, Zbox

Preenchimento
Fill

Composio do layout
DIALOG HBOX

FILL

LABEL Teste

FILL

Texto Centralizado Horizontalmente


Teste

Texto Centralizado Horizontalmente

Centralizando elementos
DIALOG VBOX

FILL

HBOX

FILL

FILL

LABEL Teste

FILL

Texto Centralizado

Layout abstrato
the_menu = ... the_canvas = CANVAS[ BUTTON_CB = button_cb, MOTION_CB = motion_cb](repaint_cb) the_dialog = DIALOG[ MENU=the_menu ] ( VBOX( FILL(), HBOX( FILL(), the_canvas, FILL() Fill ), FILL() ) )

Fill

Vbox

Canvas

Fill HBox

Fill

Anda mungkin juga menyukai