56
IUP 1 IUP Roberto de Beauclair Seixas [email protected]

Roberto de Beauclair Seixas tron @ tecgraf .puc -riow3.impa.br/~rbs/pdf/iup.pdf · Os comandos são executados segundo uma ordem preestabelecida e seqüencial. O controle do fluxo

Embed Size (px)

Citation preview

IUP 1

IUP

Roberto de Beauclair [email protected]

IUP 2

Estrutura do Curso

• Pré-requisitos• Conceitos de programação

• Linguagem de programação C

• Objetivos• Apresentar o IUP

• Verificar as vantagens da utilização do IUP

• Programar interfaces utilizando o IUP

• Relacionar o IUP com outros sistemas deprogramação

IUP 3

Autores

• Este produto foi desenvolvido pelo Grupo deComputação Gráfica da PUC-Rio, TeCGraf/PUC-Rio, para o Setor de Processamento de Dados(SEPROC) do CENPES/PETROBRAS.

• Este curso foi elaborado por Ovídio AntônioBastos Goulart e o manual por Antônio Scuri eCarolina Alfaro, todos também do TeCGraf/PUC-Rio.

IUP 4

Apresentação

• O IUP é um sistema portátil de interface comusuário que roda em ambientes diferentes comoMacintosh, MS-Windows, DOS, Motif/X11. Umaaplicação escrita utilizando IUP tem garantida aportabilidade da interface para esses ambientes,isto é, o mesmo código fonte vale para todos osambientes.

• O IUP é composto de um Toolkit virtual e umalinguagem de especificação de Diálogos,denominada LED.

IUP 5

Conteúdo

• Motivação e características do IUP• Especificação abstrata do layout• Fundamentos

• Conceitos de interface com usuário• Programação orientada à eventos

• IUP• Arquitetura• Descrição conceitual• Programação em LED• Elementos de interface e funções

• CD

IUP 6

Motivação

• Diferenças significativas na programaçãodos diversos toolkits• Sistemas de coordenadas diferentes

• Grande quantidade de funções nos Toolkits(Alguns com centenas delas)

• Dificuldade de aprendizado

IUP 7

Características do IUP

• Multiplataforma

• Pequeno• Aproximadamente 40 funções

• Prototipagem rápida

• Expansível

• O layout é especificado abstratamente

IUP 8

Layout Concreto x Layout Abstrato

• Mais utilizado (Microsoft,Borland, Delphi, VB).

• Dependente da resolução dosistema.

• Ao variar o tamanho da janelaos objetos ficamdisposicionados.

• Ferramenta de especificaçãointerativa (“visual”) se tornamais simples .

• Pouco utilizado.

• Independente da resolução dosistema.

• Rearranjo automático doselementos após alteração dotamanho da janela.

• Sintaxe mais simples eagradável.

• Manutenção mais simples.

• Ferramenta de especificaçãointerativa (“visual”) se tornamais complexa.

IUP 9

Layout Abstrato

Teste

Texto Centralizado Horizontalmente

O posicionamento doselementos no diálogo não éfeito através das suascoordenadas como namaioria dos sistemas deinterface. Ao lado umdiálogo com centralizaçãohorizontal do elementoLABEL.

FILL FILL

HBOX

LABEL

Teste

Texto Centralizado Horizontalmente

IUP 10

Prática 1 - Layout Abstrato

• Executar o programa View.

• No menu File, escolher Load e selecionar os arquivos:Hcaixa, Vcaixa, Caixa e Attention, todos com a extensãoLED.

• Selecionar na lista de diálogos disponíveis: vdialog, hdialog,cdialog e attention. Para cada seleção aperte o botão“Show”, visualize-os um a um e faça alterações nos tamanhosdas janelas.

• Alterar algumas vezes o atributo TITLE, do arquivohcaixa.led para verificar a interpretação do arquivo LED emtempo de execução, proporcionando a prototipagem rápida.Para esta tarefa, use um editor de textos qualquer.

IUP 11

Fundamentos

Interfaces & Orientação à eventos

IUP 12

Sistemas de Interface com o Usuário

•Janelas

•Ícones

•Mouse

Elementos de interface:

Diálogo

•Botão

•Texto(estático ou editável)

•Menu

•Lista

•Toggle

•Radio

•Image

•Extras (Matriz, Dial, …)

•Canvas (Área de trabalho)

IUP 13

Programação Convencional eOrientada à Eventos

capturadados

início

processadados

fim

Os comandos sãoexecutadossegundo umaordempreestabelecida eseqüencial.

O controle dofluxo nãopertence aoprogramador daaplicaçãosomente, mastambém, aousuário queinterage com oprograma gerandoeventos.

capturaevento

executaFç evento

fim?não

sim

fim

início

IUP 14

Programação por Callbacks

registrafunções

inicio

interage c/ usuário

fim

Aplicação

Gerenciadorde callbacks

retorna p/aplicação

capturaevento

executaFç evento

nãoeventofinal ?

IUP 15

Arquitetura

Aplicação

IUP

otkMacintosh Motif Windows

XWindowsDOS

IUP 16

Descrição Conceitual - Modelo

• O IUP utiliza um modelo de layout abstrato baseado no paradigma boxes-and-glue do processador de texto TEX. Esse modelo, aliado à linguagem deespecificação de diálogos (LED) ou do binding LUA (IUPLUA) torna a tarefade criação dos diálogos mais flexível e independente da resolução do sistemagráfico.

• Os elementos de interface disponíveis na versão atual podem ser divididos nasseguintes categorias e são controlados pelos seus atributos e callbacks:

• Preenchimento (ocupação de espaços vazios dinamicamente): fill.

• Composição (definição de uma forma de exibir os elementos): hbox, vboxe zbox.

• Agrupamento (definição de uma funcionalidade comum para um grupo deelementos): dialog, radio, menu.

• Primitivos (interação efetiva com o usuário): button, label, text, multiline,list, toggle, frame, canvas, image, item, submenu.

IUP 17

Linguagem de ExpressõesSintaxe simples : Nomes = Elementos[Atributos](Parâmetros ou Expressão)

Exemplo:botao1 = BUTTON(“Botao 1”, do_bot1)

botao2 = BUTTON(“Botao 2”, do_bot2)

caixa_bot = HBOX(FILL(), botao1, FILL(), botao2, FILL())

texto_est = LABEL(“Texto estatico”)

caixa_texto = HBOX(FILL(), texto_est, FILL())

corpo_dial = VBOX(FILL(), caixa_texto, FILL(), caixa_bot, FILL())

dial_1 = DIALOG[TITLE=“Titulo”](corpo_dial)

Notas :1. Os nomes dos atributos são obrigatoriamente dados com letras maiúsculas.2. As variáveis “LED” não podem ser usadas mais de uma vez e já devem estar definidas.3. Os comentários são feitos após o sinal “#”.4. As notas acima podem ser verificadas no arquivo primitivos.led

LED - Lingugem de Especificação de Diálogos

IUP 18

Elementos de Interface IUP

Sintaxe, atributos e exemplos

IUP 19

Elemento de Preenchimento - FILL

O elemento de preenchimento FILL, ocupa os espaçosvazios dinamicamente, mantendo os elementos alinhadose o layout inalterado, mesmo após uma mudança notamanho da janela.

FILL [ATRIBUTOS] ()

Principais Atributos:

Exemplo:caixa = HBOX(FILL(), text[VALUE=“abcd”](), FILL())

•EXPAND •SIZE

IUP 20

Elementos de Composição

• HBOX [ATRIBUTOS] (elem1, elem2, …)Agrupa os elementos exibindo-os horizontalmente da esquerda para a direita.

• VBOX [ATRIBUTOS] (elem1, elem2, …)Agrupa os elementos exibindo-os verticalmente de cima para baixo.

• ZBOX [ATRIBUTOS] (elem1, elem2, …)Empilha os elementos sobrepondo-os uns aos outros. Somente o topo da

pilha é mostrado.

Atributos:ALIGNMENT, MARGIN, SIZE e GAP (Este último só para HBOX e VBOX)

Elementos que não possuem uma representação visual, massão fundamentais para o funcionamento do mecanismo deespecificação abstrata de layout.

IUP 21

Prática 2 - Alinhamento

• Executar o programa View.

• No menu File, escolher Load e selecionar oarquivo: Alignment.led.

• Selecionar na lista de diálogos disponíveis:Alinha. Aperte o botão “Show” paravisualizar.

IUP 22

Elementos de Agrupamento

IUP 23

Diálogo

Para exibir qualquer elemento de interface é necessário encapsulá-lo emum dialog. O dialog, gerencia a interação do usuário com os elementos deinterface. A aplicação torna-se um conjunto de diálogos.

DIALOG [ATRIBUTOS] (Expressão)

Principais atributos

•MENUBOX

•MINBOX

•MAXBOX

•TITLE

•MENU

•SIZE

•ICON

•BORDER

•CURSOR

Exemplo:dial_1 = DIALOG[TITLE=“Titulo”](corpo_dial)

IUP 24

Menu (Item, Separator e Submenu)

Agrupa 3 tipos de elementos de interface: item, submenu e separator.Qualquer outro elemento de interface definido dentro de um menu éignorado.ITEM [ATRIBUTOS] (Título, Ação)

MENU [ATRIBUTOS] (Item1, Item2 ,Submenu1,…, separator(),… )SUBMENU [ATRIBUTOS] (Título, Menu)

Principais Atributos: ACTIVE & KEY

Exemplo:item_abre = ITEM[KEY=K_A]("Abre", acao_abre)

item_salva = ITEM[KEY=K_S]("Salva", acao_salva)

menu_secundario = MENU[ACTIVE=NO](item_abre, separator(), item_salva)

submenu_geral = SUBMENU[KEY=K_G]("Geral", menu_secundario)

item_final = ITEM[KEY=K_F]("Finaliza", acao_final)

menu_princ = MENU(submenu_geral, item_final)

dial_1 = DIALOG[MENU=menu_princ, MINBOX=NO, TITLE="Título"](corpo_dial)

IUP 25

O último dos elementos deagrupamento, o RADIO, seráapresentado a seguir junto com oelemento primitivo chamadoTOGGLE que nada mais é queum botão de dois estados.

IUP 26

Elementos Primitivos

IUP 27

Botão

•IMINACTIVE

•SIZE

•TITLE

•ACTIVE

•IMAGE

•IMPRESS

BUTTON [ATRIBUTOS] (Título, Ação)

Principais Atributos:

Exibe um botão capaz de executar uma ação específica.Sua apresentação visual pode conter um texto ou umaimagem.

Exemplo:botao1 = BUTTON("Botao 1", acao_1)

botao2 = BUTTON("Botao 2", acao_2)

caixa_bot = HBOX(FILL(), botao1, FILL(), botao2, FILL())

•KANY

•K_* ( * - Segundo tabelade codificação do teclado)

IUP 28

Texto Estático

Exibe um texto ou uma imagem para o usuário.

LABEL [ATRIBUTOS] (Título)

Principais Atributos:

•IMAGE

•TITLE

•BGCOLOR

•FGCOLOR

•FONT

Exemplo:msg = LABEL[FGCOLOR="0 0 255"]("Pressione o botão para sair")

IUP 29

Caixa de Texto Editável

Exibe um campo editável de uma linha. Permite aoprogramador capturar uma string qualquer digitada pelousuário.

TEXT [ATRIBUTOS] (Ação)

Principais Atributos:

Exemplo:campo = TEXT[VALUE="1234", NC=4](acao_tecla)

•MASK

•CARET

•SELECTION

•VALUE

•NC

•BORDER

•SELECTEDTEXT

•KANY

IUP 30

Caixa de Texto Editável com Várias Linhas

Campo editável de uma ou mais linhas.

MULTILINE [ATRIBUTOS] (Ação)

Principais Atributos:

Exemplo:texto = MULTILINE

[VALUE="Primeira linha\nSegunda linha", SIZE=110x50]

(acao_texto)

•SELECTEDTEXT

•SELECTION

•VALUE

•NC

•BORDER

•CARET

IUP 31

Lista

Lista de itens de dois estados (on e off). Uma ação égerada para cada troca de estado de um item.

LIST [ATRIBUTOS] (Ação)

Principais Atributos:

•DROPDOWN

•VISIBLEITEMS

•1, 2, 3, ...

•MULTIPLE

•VALUE

Exemplo:pais_lista = LIST

[1=“Brasil”, 2=“Eua”, 3=“Noruega”, VALUE=1](acao_pais)

IUP 32

Botão de Dois Estados (Moldura)

Botão de dois estados (on/off). Sua apresentação visual pode conterum texto ou uma imagem. Uma moldura (FRAME), foi usada paraenvolver o elemento de interface em questão, a qual pode ser usadaem qualquer elemento.

TOGGLE [ATRIBUTOS] (Título, Ação)

Principais Atributos: •IMAGE

•TITLE

•VALUE

Exemplo:port = TOGGLE [VALUE=ON] (“4 Portas”, acao_equip)

ar = TOGGLE [VALUE=OFF](“Ar Cond.”, acao_equip)

moldura = FRAME[TITLE=“Acessórios”](hbox(port, ar))

IUP 33

Botões de Dois EstadosMutuamente ExclusivosEste elemento exige que apenas um dos seustoggles descendentes esteja no estado on.RADIO[ATRIBUTOS](vbox(Toggle1, Toggle2 ,…, Togglen ,…, ))

RADIO[ATRIBUTOS](hbox(Toggle1, Toggle2 ,…, Togglen ,…, ))

Principal Atributo: VALUE

Exemplo:masc = TOGGLE (“Masc.”, acao_sexo)

fem = TOGGLE (“Fem.”, acao_sexo)

exclusivo = RADIO[VALUE=“fem”]( vbox(masc, fem) )

moldura = FRAME[TITLE=“Sexo”](exclusivo)

IUP 34

Imagem (Cor)

Sua apresentção visual se dá em um label, button outoggle

IMAGE [ATRIBUTOS] (Largura, Altura, Lista de Índices)

Principais Atributos: 0, 1, 2, 3, ... , n

Exemplo:azul = COLOR (0, 0, 255)

vermelho = COLOR (255, 0, 0)

xis = IMAGE[0="azul",1="255 0 0"]

( 5,5, 1,0,0,0,1, 0,1,0,1,0, 0,0,1,0,0,0,1,0,1,0, 1,0,0,0,1)

label_xis = LABEL[IMAGE = xis]("")

IUP 35

Área de Trabalho

Este elemento, reserva uma área no diálogo para a aplicação sem ainterferência do IUP. É através desta área que o IUP se relaciona comos sistemas gráficos como o GKS, CD, OpenGL, etc.

CANVAS [ATRIBUTOS] (Ação)

Principais Atributos:

Exemplo:area_trab =CANVAS[MOTION_CB=acao_MotionCB,BUTTON_CB=acao_ButtonCB,

RESIZE_CB=acao_ResizeCB](acao_Repaint)

•POSX e POSY

•BORDER

•CURSOR

•SCROLLBAR

•EXPAND

•CALLBACKS (mouse, resize, scrollbar)

IUP 36

Prática 3 - Elementos Primitivos

• Executar o programa View.

• No menu File, escolher Load e selecionar oarquivo: Primitivos.led.

• Selecionar na lista de diálogos disponíveis:Dialogo1. Aperte o botão “Show” paravisualizar.

• Observar todos os elementos de interface dodiálogo.

IUP 37

Elementos de Interface Extras I

• Dial (Disco, relógio, mostrador)

DIAL [ATRIBUTOS] (Tipo)

Tipo: HORIZONTAL, VERTICALou CIRCULAR

Atributos: DENSITY, MOUSEMOVE_CB,BUTTON_PRESS_CB,BUTTON_RELEASE_CB

• Valuator (Estima, aprecia)VAL [ATRIBUTOS] (Tipo)

Tipo: HORIZONTAL ou VERTICAL

Atributos: MIN, MAX, VALUE,BUTTON_PRESS_CB,BUTTON_RELEASE_CB, MOUSEMOVE_CB

Elementos que servem para estabelecer regulagens ou ajustes. Umadiferença básica entre estes elementos é que o Valuator possui limitesbem definidos.

IUP 38

Elementos de Interface Extras II

• Gauge (Medida, escala)GAUGE [ATRIBUTOS]( )

Mostra um valor percentual que pode sermodificado para delinear umaprogressão.

Atributos: TEXT, VALUE,SHOW_TEXT

• Tabs (Tira, aba, pala)TABS [ATRIBUTOS](elem1, elem2, ...)

elem1, elem2, …: Estes parâmetros vão ser "chaveados", devendo cada umpossuir o atributo "TABTITLE", que especifica o texto a ser mostrado nalingüeta de seu Tab. Se este atributo for omitido, o comportamento doTabs é indefinido.

Atributos: TYPE, VALUE, TABCHANGE_CBTipos: TOP, BOTTOM, LEFT, RIGHT

IUP 39

Elementos de Interface Extras III

• Matrix - É uma matriz de campos alfanuméricoseditáveis. Todos os campos são do tipo string.

MATRIX [ATRIBUTOS](Ação)

Principais Atributos:

•NUMCOL

•NUMLIN

•MARKED

•MARKED_MODE

•MULTIPLE

•RESIZEMATRIX

•ALIGNMENT

•L:C, L:0, 0:C, 0:0

•WIDTHDEF

•SCROLLBAR

IUP 40

Prática 4 - Elementos Extras

• Executar o programa View.

• No menu File, escolher Load e selecionar oarquivo: Extras.led.

• Selecionar na lista de diálogos disponíveis:Dgauge, Dmatriz, Ddial, Dvaluator,Dtabs. Para cada seleção aperte o botão“Show” e visualize-os um a um

IUP 41

Prática 5 - Programando em LED

•Criar o diálogo abaixo utilizando a linguagem LED. Utilizeum editor de textos como o pfe. Visualize o arquivo criadoatravés do programa View.

•Crie também um menu com a seguite estrutura:Arquivo(Gravar, Sair) e Opções(Incluir, Modificar, Remover).

Dados Pessoais

End. :

Limpa Termina

Nome :

Tel. :

SexoMasculinoFeminino

Estado CivilSolteiro CasadoViuvo Outros

Arquivo Opções

IUP 42

Diálogos Predefinidos

• IupGetFile

• IupMessage

• IupAlarm

São diálogos com funcionalidade predefinida, usados commuita freqüência na maior parte das aplicações. Tambémserviram para manter a compatibilidade com o IntGraf,sistema de interface anterior ao IUP. Não podem serusados em LED.

• IupListDialog

• IupScanf

IUP 43

Diálogo Predefinido comoElemento de InterfaceConsiste em um diálogo para seleção de arquivos quepermitir modificação de seus atributos, fornecendo assimmaior flexibilidade em comparação aos diálogospredefinidos. Disponível apenas na versão 1.8 do IUP.

FILEDLG [ATRIBUTOS] ()

Principais Atributos:

Exemplo:escolhe_arq = FILEDLG[TITLE="Seleção de Arquivo", TYPE=OPEN,FILTER="*.led", FILTERINFO="LED files"]()

•TITLE•FILE•FILTER•FILTERINFO•ALLOWNEW•FILEEXIST

IUP 44

Atributos Relacionados aTodos os Elementos

• BGCOLOR

• FGCOLOR

• FONT

• EXPAND

• TIP (Informar)Volte às práticas 3 e 4

e coloque o mousesobre os elementosvisualizados.

• RASTERSIZE

• SIZE

• KANY

• K_* (Segundotabela de codificaçãodo teclado)

• ACTIVE

• VISIBLE

• WID(Identificador doelemento no sistema deinterface nativo)

• TITLE

• VALUE

IUP 45

Guia de Programação C - Ivoid main(void) { /* Inicializa o IUP */ if (IupOpen() == IUP_ERROR) { fprintf(stderr, "Error Opening IUP"); return; } /* Interpreta e cria os elementos descritos no arq. LED */ IupLoad (“arquivo.led”); /* Mapea e mostra o diálogo principal.Eventualmente */ /* é necessário mapear o diálogo antes e nestes casos */ /* usa-se a função IupMap.*/ IupShow(IupGetHandle(“dialogo_princ”)); /* Registra as funções - Próxima transparência */

... /* Estabelece a interação com o usuário */ IupMainLoop(); /* Libera memória e finaliza o IUP */ IupClose(); }

IUP 46

Guia de Programação C - II

Como a programação do IUP é feita por Callbacks, (transparência14) antes da rotina IupMainLoop é necessário registrar as funçõesque serão chamadas para cada ação do usuário.

Exemplo:int quit (void){ return IUP_CLOSE;}/* Registra a função quit p/ a acao_saida */

IupSetFunction ("acao_saida", (Icallback)quit);

Nota: A especificação da interface que aprendemos em LED podeser feita em C, o que a torna menos flexível. Já existe também oprograma LED2C que a partir de uma especificação LED gera ocódigo C equivalente.

IUP 47

Prática 6 - Primeiro Programa

• Para exercitar a programação C necessária aoIUP, crie um programa mínimo que exiba aespecificação construida na prática anterior.

• Construa pelo menos a callback de saída doprograma associando-a à uma opção do MENUe à ação de click no botão “Termina”.

IUP 48

Controlando os Atributos - I

Consultando:char *IupGetAttribute(Ihandle *elemento, char *a);

elemento: identificador do elemento de interfacea: nome do atributo

Consulta o valor de um atributo de um elemento de interface. A funçãoretorna o valor do atributo. Se o atributo não existe, o retorno é NULL.Todos os valores de atributos são strings. Para dispor do Ihandle doelemento, basta usar a função IupGetHandle (char *nome_elemento).

Exemplo:char *vis = IupGetAttribute(IupGetHandle("dialogo"), IUP_VISIBLE);

Outras funções:IupGetInt, IupGetFloat, IupGetAttributes, IupGetGlobal

IUP 49

Controlando os Atributos - II

Alterando:void IupSetAttribute(Ihandle *elemento, char *a, char *v);

elemento: identificador do elemento de interfacea: nome do atributov: valor do atributo. Se v for igual a NULL, o atributo é retirado do elemento.

Define um atributo para um elemento de interface. O valor guardado no attributo nãoé duplicado pelo IUP que guarda apenas o ponteiro especificado, assim o ponteironão pode ser liberado enquanto o elemento existir. Para o IUP guardar o atributo,duplicando o ponteiro, use a função IupStoreAttribute (disponível na versão 1.8).

Exemplo:IupSetAttribute(IupGetHandle("text1"), IUP_VALUE, "Olá!");

IupSetAttribute(indicador, IUP_VALUE, IUP_ON);

Outras funções:IupStoreAttribute, IupSetAttributes, IupSetfAttribute, IupSetGlobal

IUP 50

• Vários problemas podem ocorrer quando o programador esquece que afunção IupSetAttribute não faz cópias dos valores dos atributos,guardando apenas o ponteiro que tem a referência deste valor.

• Se o mesmo ponteiro for usado para alterar vários atributos, todos estesficarão com o mesmo valor.

• Se a área referenciada pelo ponteiro for liberada o atributo poderá ficarcom um valor inválido.

• Qualquer ponteiro pode ser guardado como atributo dos elementos doIUP e neste caso devemos usar IupSetAttribute.

• Usado para evitar variáveis globais relacionadas com os elementos deinterface.

• A função IupGetAttribute retorna um ponteiro que funciona como umbuffer interno do IUP, assim a segunda chamada escreve por cima daárea retornada pela primeira.

Mais sobre Atributos(StoreAttribute x SetAttribute)

IUP 51

Herança

Os elementos que estão contidos em outros elementos, herdam osatributos dos elementos que os contém, a não ser que estes sejamredefinidos. Portanto, quando você consulta um atributo que nãoestá definido em um determinado elemento, o mecanismo deherança consulta o elemento que o contém, assim por diante, atéchegar ao diálogo, inclusive.

Exemplo:Se você alterar, o atributo IUP_ALIGNMENT de um vbox quecontém vários outros elementos, incluive outros vbox, todos oselementos que dependem desse atributo serão afetados.

Exceções:IUP_TITLE, IUP_SIZE, IUP_VALUE

IUP 52

Comentários sobre Callbacks

São funções da aplicação chamadas pelo IUP, indicandoalguma ação do usuário sobre a aplicação.

As callbacks podem estar associadas aos elementos atravésdas ações ou atributos destes. Assim, callbacks tambémpodem ser herdadas. Pode-se registrar uma callback paraum elemento de composição como um Vbox, e embora oelemento de composição não chame aquela callback, todosos elementos que ele contém chamarão a mesma callback, anão ser que ela seja redefinida.

Todas as callbacks recebem pelo menos o elemento queacionou a ação como parâmetro. As diferenças entre elaspodem ser vistas na descrição de cada elemento.

IUP 53

Retornos de uma Callback

São valores que devem ser retornados no final de cadacallback.

IUP_DEFAULT: prossegue normalmente com a interaçãocom o usuário. Caso os outros valores de retorno não sejamaplicados, deve-se retornar sempre este valor.

IUP_CLOSE: faz a função IupMainLoop retornar o controlepara a aplicação. Isso geralmente faz com que a aplicaçãotermine, portanto deve-se usar com atenção.

IUP_IGNORE: faz com que o sistema nativo ignore a açãodaquela callback, aplicável somente para algumas ações.Veja a documentação de cada ação para saber se é aplicávelà aquela ação.

IUP 54

Callbacks Especiais

IUP_IDLE_ACTION

Ação predefinida do IUP, gerada quando não há eventos.

IUP_DEFAULT_ACTION

Ação predefinida do IUP, gerada sempre que uma ação nãotiver uma função associada. Junto com a funçãoIupGetActionName, pode ser útil para verificar eventuaiserros de digitação no registro de Callbacks.

IUP 55

Programando LED Interativamente

Para facilitar ainda mais o desenvolvimento de interfaces usando osistema IUP foi criado o Visual LED, uma ferramenta interativa parageração de interfaces em LED.O Visual LED foi desenvolvido com os seguintes objetivos:

•Facilitar a geração de descrições em LED;•Permitir a visualização da interface durante o processo deconstrução da mesma;•Combinar diferentes métodos de edição (descrição textual emanipulação direta de elementos) para tornar mais eficiente acriação de interfaces.

Onde encontrar:Programa: \\antares\TeCGraf\Vled

Documentação: http://www.tecgraf.puc-rio.br/~miller/vled

IUP 56

Dicas úteis

• Onde encontrar• PC: \\antares\TeCGraf\IUP

• WS: ~tron/tecgraf/iup

• Manual on-line• http://www.tecgraf.puc-rio.br/manuais/iup

• Plataformas disponíveis:• UNIX: AIX, SunOS, Solaris, IRIX, Linux e Alpha/Vms

• Windows 95/98/NT

• Macintosh