roberto de beauclair seixas tron @ tecgraf .puc -riow3.impa.br/~rbs/pdf/iup.pdf · os comandos são...
TRANSCRIPT
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 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 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 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 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 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