ferramentas de desenvolvimento do tecgraf: iup, cd e...
TRANSCRIPT
![Page 2: Ferramentas de Desenvolvimento do Tecgraf: IUP, CD e IMwebserver2.tecgraf.puc-rio.br/iup/download/iupcdim_facin...imFileImageSavefile_name, "JPEG, new_image; imImageDestroy(new_image);](https://reader034.vdocuments.com.br/reader034/viewer/2022052420/5ab138947f8b9abc2f8c6970/html5/thumbnails/2.jpg)
Tecnologias de Desenvolvimento de Software
O Laboratório
Sistemas de
Ancoragem
e Flutuantes
Simulação,
Controle e
Automação
Sistemas de
Informação
Geográfica
Modelagem e
Visualização
Realidade
Aumentada
Jogos de
Treinamento
![Page 3: Ferramentas de Desenvolvimento do Tecgraf: IUP, CD e IMwebserver2.tecgraf.puc-rio.br/iup/download/iupcdim_facin...imFileImageSavefile_name, "JPEG, new_image; imImageDestroy(new_image);](https://reader034.vdocuments.com.br/reader034/viewer/2022052420/5ab138947f8b9abc2f8c6970/html5/thumbnails/3.jpg)
Para mais Informações
http://www.tecgraf.puc-rio.br/
![Page 4: Ferramentas de Desenvolvimento do Tecgraf: IUP, CD e IMwebserver2.tecgraf.puc-rio.br/iup/download/iupcdim_facin...imFileImageSavefile_name, "JPEG, new_image; imImageDestroy(new_image);](https://reader034.vdocuments.com.br/reader034/viewer/2022052420/5ab138947f8b9abc2f8c6970/html5/thumbnails/4.jpg)
As Ferramentas
http://www.tecgraf.puc-rio.br/iup/
http://www.tecgraf.puc-rio.br/cd/
http://www.tecgraf.puc-rio.br/im/
Webbook
Tecmake
LuaBinaries
![Page 5: Ferramentas de Desenvolvimento do Tecgraf: IUP, CD e IMwebserver2.tecgraf.puc-rio.br/iup/download/iupcdim_facin...imFileImageSavefile_name, "JPEG, new_image; imImageDestroy(new_image);](https://reader034.vdocuments.com.br/reader034/viewer/2022052420/5ab138947f8b9abc2f8c6970/html5/thumbnails/5.jpg)
Características Gerais
• Modelo de Abstração
• Portabilidade (Desktop)
• Desempenho (recursos nativos do sistema)
• Simplicidade com Recursos
• Livre e Código Aberto (mesma licença de Lua)
• Binários de várias plataformas prontos para Download
• API em C e em Lua
• Extensa Documentação com Exemplos
• Política de Compatibilidade entre Versões
• Melhor Curva de Aprendizado (*)
![Page 6: Ferramentas de Desenvolvimento do Tecgraf: IUP, CD e IMwebserver2.tecgraf.puc-rio.br/iup/download/iupcdim_facin...imFileImageSavefile_name, "JPEG, new_image; imImageDestroy(new_image);](https://reader034.vdocuments.com.br/reader034/viewer/2022052420/5ab138947f8b9abc2f8c6970/html5/thumbnails/6.jpg)
IUP - Interface com o Usuário Portável
Motif em MWM
Windows Vista
GTK em Gnome
![Page 7: Ferramentas de Desenvolvimento do Tecgraf: IUP, CD e IMwebserver2.tecgraf.puc-rio.br/iup/download/iupcdim_facin...imFileImageSavefile_name, "JPEG, new_image; imImageDestroy(new_image);](https://reader034.vdocuments.com.br/reader034/viewer/2022052420/5ab138947f8b9abc2f8c6970/html5/thumbnails/7.jpg)
CD – Biblioteca Gráfica 2D
![Page 8: Ferramentas de Desenvolvimento do Tecgraf: IUP, CD e IMwebserver2.tecgraf.puc-rio.br/iup/download/iupcdim_facin...imFileImageSavefile_name, "JPEG, new_image; imImageDestroy(new_image);](https://reader034.vdocuments.com.br/reader034/viewer/2022052420/5ab138947f8b9abc2f8c6970/html5/thumbnails/8.jpg)
IM – Representação, Armazenamento, Captura,
Processamento e Análise de Imagens
CD
![Page 9: Ferramentas de Desenvolvimento do Tecgraf: IUP, CD e IMwebserver2.tecgraf.puc-rio.br/iup/download/iupcdim_facin...imFileImageSavefile_name, "JPEG, new_image; imImageDestroy(new_image);](https://reader034.vdocuments.com.br/reader034/viewer/2022052420/5ab138947f8b9abc2f8c6970/html5/thumbnails/9.jpg)
Exemplo de uma Aplicação Completa
Windows Vista
GTK em Gnome
![Page 10: Ferramentas de Desenvolvimento do Tecgraf: IUP, CD e IMwebserver2.tecgraf.puc-rio.br/iup/download/iupcdim_facin...imFileImageSavefile_name, "JPEG, new_image; imImageDestroy(new_image);](https://reader034.vdocuments.com.br/reader034/viewer/2022052420/5ab138947f8b9abc2f8c6970/html5/thumbnails/10.jpg)
Características Diferenciais
• IUP: layout abstrato. Construção do diálogo sem o
posicionamento manual dos controles.
• CD: mesma API para diversos tipos de Canvas
(Janela, Impressora, Clipboard, Imagem, Postscript)
• IM: foco em aplicações científicas mas flexibilidade
para atender quaisquer aplicações.
![Page 11: Ferramentas de Desenvolvimento do Tecgraf: IUP, CD e IMwebserver2.tecgraf.puc-rio.br/iup/download/iupcdim_facin...imFileImageSavefile_name, "JPEG, new_image; imImageDestroy(new_image);](https://reader034.vdocuments.com.br/reader034/viewer/2022052420/5ab138947f8b9abc2f8c6970/html5/thumbnails/11.jpg)
Controle do Sistema - IUP
void main(void) { if (IupOpen() == IUP_ERROR) { fprintf(stderr, "Error Opening IUP.") return; } ... IupMainLoop(); IupClose(); }
![Page 12: Ferramentas de Desenvolvimento do Tecgraf: IUP, CD e IMwebserver2.tecgraf.puc-rio.br/iup/download/iupcdim_facin...imFileImageSavefile_name, "JPEG, new_image; imImageDestroy(new_image);](https://reader034.vdocuments.com.br/reader034/viewer/2022052420/5ab138947f8b9abc2f8c6970/html5/thumbnails/12.jpg)
Ciclo de Vida de um Elemento
• Criação
– IupDialog
– IupSetAttribute
– IupSetCallback
• Criação no Sistema Nativo
– IupMap(dlg) ou
– IupShow(dlg)
• Destruição
– IupDestroy(dlg)
![Page 13: Ferramentas de Desenvolvimento do Tecgraf: IUP, CD e IMwebserver2.tecgraf.puc-rio.br/iup/download/iupcdim_facin...imFileImageSavefile_name, "JPEG, new_image; imImageDestroy(new_image);](https://reader034.vdocuments.com.br/reader034/viewer/2022052420/5ab138947f8b9abc2f8c6970/html5/thumbnails/13.jpg)
Hierarquia de Elementos e Layout Abstrato
Dialog
Hbox
Fill
Button
Button
Fill
FILL FILL
HBOX
BUTTON BUTTON
![Page 14: Ferramentas de Desenvolvimento do Tecgraf: IUP, CD e IMwebserver2.tecgraf.puc-rio.br/iup/download/iupcdim_facin...imFileImageSavefile_name, "JPEG, new_image; imImageDestroy(new_image);](https://reader034.vdocuments.com.br/reader034/viewer/2022052420/5ab138947f8b9abc2f8c6970/html5/thumbnails/14.jpg)
Layout Concreto x Layout Abstrato
• Mais utilizado (Microsoft,
Borland, Delphi, VB).
• Dependente da resolução do
sistema.
• Ao variar o tamanho da janela os
objetos ficam desposicionados.
• Ferramenta de especificação
interativa ("visual") se torna mais
simples .
• Menos utilizado.
• Independente da resolução do
sistema.
• Rearranjo automático dos elementos
após alteração do tamanho da janela.
• Sintaxe mais simples e agradável.
• Manutenção mais simples.
• Ferramenta de especificação
interativa ("visual") se torna mais
complexa.
Concreto Abstrato
![Page 15: Ferramentas de Desenvolvimento do Tecgraf: IUP, CD e IMwebserver2.tecgraf.puc-rio.br/iup/download/iupcdim_facin...imFileImageSavefile_name, "JPEG, new_image; imImageDestroy(new_image);](https://reader034.vdocuments.com.br/reader034/viewer/2022052420/5ab138947f8b9abc2f8c6970/html5/thumbnails/15.jpg)
Criação de um Diálogo em C
Ihandle* f1 = IupFill();
Ihandle* btok = IupButton("Ok", "do_ok");
Ihandle* btcancel = IupButton("Cancel", "do_cancel");
Ihandle* f2 = IupFill();
Ihandle* box = IupHbox(f1, btok, btcancel, f2, NULL);
Ihandle* dlg = IupDialog(box);
![Page 16: Ferramentas de Desenvolvimento do Tecgraf: IUP, CD e IMwebserver2.tecgraf.puc-rio.br/iup/download/iupcdim_facin...imFileImageSavefile_name, "JPEG, new_image; imImageDestroy(new_image);](https://reader034.vdocuments.com.br/reader034/viewer/2022052420/5ab138947f8b9abc2f8c6970/html5/thumbnails/16.jpg)
Criação de um Diálogo em C (outra escrita)
Ihandle* dlg = IupDialog
(
IupHbox
(
IupFill(),
IupButton("Ok", "do_ok"),
IupButton("Cancel", "do_cancel"),
IupFill(),
NULL
)
);
![Page 17: Ferramentas de Desenvolvimento do Tecgraf: IUP, CD e IMwebserver2.tecgraf.puc-rio.br/iup/download/iupcdim_facin...imFileImageSavefile_name, "JPEG, new_image; imImageDestroy(new_image);](https://reader034.vdocuments.com.br/reader034/viewer/2022052420/5ab138947f8b9abc2f8c6970/html5/thumbnails/17.jpg)
Resultado
• Usando alguns atributos para melhorar a aparência:
IupSetAttribute(box,"MARGIN","10x10");
IupSetAttribute(box,"GAP","10");
IupSetAttribute(btok,"SIZE","40x");
IupSetAttribute(btcancel,"SIZE","40x");
IupSetAttribute(dlg,"TITLE","Test");
![Page 18: Ferramentas de Desenvolvimento do Tecgraf: IUP, CD e IMwebserver2.tecgraf.puc-rio.br/iup/download/iupcdim_facin...imFileImageSavefile_name, "JPEG, new_image; imImageDestroy(new_image);](https://reader034.vdocuments.com.br/reader034/viewer/2022052420/5ab138947f8b9abc2f8c6970/html5/thumbnails/18.jpg)
Atributos Comuns
• TITLE
• VALUE (depende do controle: texto, número, nome, índice,ON/OFF,…)
• SIZE ("widthxheight" ex: "300x300")
– Escala horizontal é 1/4 da largura média de um caracter da fonte selecionada.
– Escala vertical é 1/8 da altura média de um caracter da fonte selecionada.
– Também é o tamanho mínimo
• RASTERSIZE ("widthxheight" em pixels)
• EXPAND (YES,NO)
• ACTIVE (YES,NO)
• VISIBLE (YES,NO)
• BGCOLOR ("255 0 128")
• FGCOLOR ("192 192 192")
• FONT ("Times, 12")
![Page 19: Ferramentas de Desenvolvimento do Tecgraf: IUP, CD e IMwebserver2.tecgraf.puc-rio.br/iup/download/iupcdim_facin...imFileImageSavefile_name, "JPEG, new_image; imImageDestroy(new_image);](https://reader034.vdocuments.com.br/reader034/viewer/2022052420/5ab138947f8b9abc2f8c6970/html5/thumbnails/19.jpg)
Versão Completa
Ihandle* dialog = IupSetAttributes(IupDialog
(
IupSetAttributes(IupHbox
(
IupFill(),
IupSetAttributes(IupButton("Ok", "do_ok"), "SIZE=40"),
IupSetAttributes(IupButton("Cancel", "do_cancel"), "SIZE=40"),
IupFill(),
NULL
), "MARGIN=15x15, GAP=10")
), "TITLE = Test");
![Page 20: Ferramentas de Desenvolvimento do Tecgraf: IUP, CD e IMwebserver2.tecgraf.puc-rio.br/iup/download/iupcdim_facin...imFileImageSavefile_name, "JPEG, new_image; imImageDestroy(new_image);](https://reader034.vdocuments.com.br/reader034/viewer/2022052420/5ab138947f8b9abc2f8c6970/html5/thumbnails/20.jpg)
Callbacks
int btok_action(Ihandle* self)
{
char color[20];
strcpy(color, IupGetAttribute(self, "FGCOLOR"));
IupStoreAttribute(self, "FGCOLOR", IupGetAttribute(self, "BGCOLOR"));
IupStoreAttribute(self, "BGCOLOR", color);
return IUP_DEFAULT;
}
int btcancel_action(Ihandle* self)
{
return IUP_CLOSE;
}
...
IupSetAttribute(btok, "BGCOLOR", "255 0 0");
IupSetFunction("do_ok", btok_action);
IupSetFunction("do_cancel", btcancel_action);
ou IupSetCallback(btok, “ACTION”, btok_action); IupSetCallback (btcancel, “ACTION”, btcancel_action);
![Page 21: Ferramentas de Desenvolvimento do Tecgraf: IUP, CD e IMwebserver2.tecgraf.puc-rio.br/iup/download/iupcdim_facin...imFileImageSavefile_name, "JPEG, new_image; imImageDestroy(new_image);](https://reader034.vdocuments.com.br/reader034/viewer/2022052420/5ab138947f8b9abc2f8c6970/html5/thumbnails/21.jpg)
Exemplos IM - Processamento
imImage* image = imFileImageLoad(file_name, 0, &error);
if (err != IM_ERR_NONE)
error...
imImage* new_image = imImageCreateBased(image, x2-x1+1, y2-y1+1, -1, -1);
imProcessCrop(image, new_image, x1, y1);
imFileImageSave(file_name, "JPEG“, new_image);
imImageDestroy(new_image); imImageDestroy(image);
![Page 22: Ferramentas de Desenvolvimento do Tecgraf: IUP, CD e IMwebserver2.tecgraf.puc-rio.br/iup/download/iupcdim_facin...imFileImageSavefile_name, "JPEG, new_image; imImageDestroy(new_image);](https://reader034.vdocuments.com.br/reader034/viewer/2022052420/5ab138947f8b9abc2f8c6970/html5/thumbnails/22.jpg)
Exemplos CD - Postscript
cdCanvas* canvas = cdCreateCanvas(CD_PS, "cdtest.ps");
cdCanvasMarkSize(canvas, 40);
cdCanvasMark(canvas, x, y);
cdCanvasFont(canvas, "Courier", CD_PLAIN, 12);
cdCanvasTextAlignment(canvas, CD_CENTER);
cdCanvasText(canvas, x, y, text);
cdCanvasGetTextBox(canvas, x, y, text, &xmin, &xmax, &ymin, &ymax);
cdCanvasRect(canvas, xmin, xmax, ymin, ymax);
cdCanvasKill(canvas);