SlideShare uma empresa Scribd logo
1 de 55
Baixar para ler offline
1 de 55INTRODUÇÃO AO FAST LIGHT TOOLKIT - FLTK
The Fast Light ToolKit
Curso de Verão – Instituto de Computação & CA Computação
Michel Alves dos Santos - UFAL
Bolsista do Centro de Pesquisa em Matemática Computacional
1º Impacto
2 de 55O QUE É GUI ?
O que é GUI ?
Acrônimo para Graphical User Interface, ou seja, um tipo de interface do usuário que
permite a interação com dispositivos digitais através de elementos gráficos como ícones,
botões, caixas de entrada e outros indicadores visuais, em contraste a interface de linha
de comando.
A interação é feita geralmente através de um mouse ou teclado, com os quais o usuário é
capaz de selecionar símbolos e manipulá-los de forma a obter algum resultado prático.
Esses símbolos são designados de widgets e são agrupados em kits.
 [A esquerda KDE 4.1 e a direita uma interface modificada do Desktop SUGAR para OLPC ]
3 de 55INTERAÇÕES BÁSICAS – ESTILOS DE INTERAÇÃO
Estilos de Interação
What you see is what you get (WYSIWYG) :
Realimentação visual é igual ao resultado obtido.
Non-WYSIWYG :
Realimentação visual difere do resultado obtido.
Manipulação Direta :
Interação ocorre diretamente sobre a realimentação visual.
 [Algumas formas de interação entre usuários e sistemas computacionais]
4 de 55O QUE SÃO WIDGETS ?
O que são WIDGETs ?
São componentes da interface gráfica providos de geometria (look) e comportamento
(feel) próprios. São agrupados em API´s [de baixo ou alto nível] ou Kits.
 [Buttons]
 [List Box]  [Combo Box]
 [Dialog Box]
 [Scrollbars]
 [Menubar + Toolbar]  [Textboxes]
5 de 55CLASSIFICAÇÃO DOS WIDGETS
Classificação dos Widgets
Widgets de baixo nível são utilizados na confecção do sistema
operacional e fazem parte do núcleo do sistema [Este núcleo é acessado por
outros widgets de alto nível que por fim montam a GUI]. Alguns exemplos são:
 Windows 32/64 API;
 MAC Carbon;
 Unix X-Windows.
Widgets de alto nível seriam os objetos finais propriamente ditos. Muitas
vezes fazem referências a objetos de baixo nível fornecidos pelo sistema operacional.
Estes objetos são facilmente encontrados em bibliotecas de desenvolvimento (toolkit)
ou em frameworks. Alguns exemplos são:
 WxWidgets (chamada anteriormente de WxWindows);
 Cocoa (MAC OS X);
 MFC (Microsoft Foundation Classes);
 WTL (Windows Template Library - utilizada como substituto para partes do MFC)
 Motif (usado no Common Desktop Enviroment- UNIX CDE)
 Lesstif (uma versão LGPL do Motif) , GTK +, AWT, Swing, SWT/JFace ...
6 de 55
API´s e Sistemas
Operacionais
ESTUDO DE CASO – API´s e SISTEMAS OPERACIONAIS
7 de 55COMO PROGRAMAR PARA WINDOWS [API , MFC E WINDOW FORMS]
Programação GUI para a Família M$ Windows®
WINDOWS API
MFC [MICROSOFT FOUNDATION CLASSES]
WINDOWS FORMS [.NET GUI SYSTEM]
 Arquitetura de aplicações usando Windows Forms
Bibliotecas que “empacotam” porções da API do Windows
em classes e dão aos desenvolvedores de programas um
conjunto de componentes reutilizáveis escritos em C++
que encapsulam as funcionalidades necessárias para o
desenvolvimento de aplicações para sistemas
operacionais Windows®.
Nova forma de “janelamento” introduzida com a plataforma
.NET. Esse é o mecanismo base para desenvolvimento de
aplicações que são executadas junto a CLR [Common
Language Runtime]
Construção em baixo nível de todos os componentes
visuais [botões, barras de status, menus] e não-visuais
[gerenciamento de processos, escrita em disco, etc]
pertencentes aos sistemas operacionais MS Windows®.
8 de 55COMO PROGRAMAR PARA MAC OS X [CARBON E COCOA]
Programação GUI para o MAC OS X
 [MAC X – Estrutura das API´s - nativamente são suportadas cinco : Carbon, Cocoa, POSIX, Toolbox (antigo Classic Enviroment) e Java ]
9 de 55COMO PROGRAMAR PARA MAC OS X [CARBON E COCOA]
Programação GUI para o MAC OS X
COCOA [Mac OS X]
CARBON [Mac OS 9 e Mac OS X]
É um conjunto procedural de API´s em C para MAC
OS X que é baseado nas “velhas” API´s do MAC
OS 9. Nem todas as API´s carbon foram portadas
pois existem diferenças radicais entre MAC OS X e
MAC OS 9 [uma delas é a não compatibilidade total da API
Carbon com aplicações de 64 bits para MAC OS 10.5]
É uma API orientada a objetos para
desenvolvimento de aplicações escrita em
Objective-C e Java. Cocoa é largamente
baseado nos frameworks do OpenStep e
consiste primariamente em duas partes : A
Foundation (classes fundamentais) e a
Applicatino Kit (classes para elementos GUI).
Core Foundation e outras camadas de software no Mac OS X
 Core Foundation e Carbon no Mac OS 9
10 de 55COMO PROGRAMAR PARA MAC OS X [CARBON E COCOA]
 [Exemplo de uma aplicação “carbonizada” sendo executada em MAC OS X]
11 de 55COMO PROGRAMAR PARA X WINDOW SYSTEM
Programação GUI para X Window System
X Window System
O X-Window, X11 ou simplesmente X é um protocolo e seu software associado
possibilita o emprego de uma interface gráfica com o conceito de janelas.
Originalmente chamado simplesmente de X, foi desenvolvido no MIT em 1984.
Atualmente está na versão 11 e por isso carrega no nome este número.
X-Window também é o toolkit e protocolo padrão para GUI nos sistemas Unix e
assemelhados, como o Linux, mas existem versões para outros sistemas
operacionais, como o Microsoft Windows e o Mac OS, por exemplo.
O X (como é comumente chamado) funciona
segundo o modelo cliente-servidor. Este modelo
de comunicação permite o uso de janelas de modo
transparente através da rede.
Logotipo do X
Programas desenvolvidos na distribuição do núcleo
do X : xterm, twm, xdm, xconsole, xclock, xeyes,
Xserver, xclipboard entre outros ...
Captura de tela do X em execução com diversos
aplicativos sendo utilizados.
12 de 55COMO PROGRAMAR PARA X WINDOW SYSTEM
 [O TWM - Tab Window Manager – também conhecido como Tom´s Window Manager, devido ao seu principal autor]
13 de 55
Widgets de Alto Nível
ESTUDO DE CASO – WIDGETS DE ALTO NÍVEL
14 de 55LISTA DE WIDGET TOOLKITS – API´s DE ALTO NÍVEL
WIDGET TOOLKITS
EWL
E muitos outros ...
15 de 55CAPACIDADES/FUNCIONALIDADES DOS WIDGET TOOLKITS
O que os Widget Toolkits podem fazer ?
DESKTOP EQUINOX – Construído a partir
de um fork do FLTK chamado eFLTK.
16 de 55CAPACIDADES/FUNCIONALIDADES DOS WIDGET TOOLKITS
O que os Widget Toolkits podem fazer ?
DESKTOP GNOME – Construído a
partir do kit GTK+
17 de 55CAPACIDADES/FUNCIONALIDADES DOS WIDGET TOOLKITS
O que os Widget Toolkits podem fazer ?
DESKTOP KDE – Construído a partir das
classes do kit QT da trolltech.
18 de 55CAPACIDADES/FUNCIONALIDADES DOS WIDGET TOOLKITS
O que os Widget Toolkits podem fazer ?
DESKTOP Enlightenment – Construído a
partir do kit EWL.
19 de 55FERRAMENTAS DE PRODUÇÃO – IDE´s E EDITORES AVANÇADOS
Ferramentas de
Produção
FERRAMENTAS UTILIZADAS NA PRODUÇÃO DE APLICATIVOS
GRÁFICOS.
20 de 55IDE´S E EDITORES
IDE´S
Editores
O problema com IDE´s algumas vezes está localizado em seus editores que por sua
vez pecam por falta de funcionalidades específicas. Por isso alguns programadores
preferem usar editores robustos. Abaixo segue uma lista :
VIM [http://vim.sourceforge.net/] – Linux – Unix - Windows
NOTEPAD++ [http://notepad-plus.sourceforge.net/] - Win32 only
Quando programamos em C++ o uso de uma IDE facilita consideravelmente o
trabalho. Abaixo segue uma pequena lista :
GEANY [http://www.geany.org/] – Cross-Plataform
DevC++ [http://www.bloodshed.net/devcpp.html ] – Win32 e Linux
KDevelop [http://www.kdevelop.org/] – Linux/Unix
Anjuta [http://anjuta.sourceforge.net/] – Linux/Unix
Microsoft Visual C++, Borland C++ Builder, Eclipse, CodeBlocks, NetBeans, etc.
Emacs, EditPlus, UltraEdit, Scite, Gedit, Kate, Nedit, etc.
21 de 55
IDE´s
IDE´S
22 de 55
DevC++
DEVC++
Homepage : http://www.bloodshed.net/
Linguagens : C, C++
Características :
- Leve, rápido e sem ostentação, recomendado para iniciantes ...
- Frontend para o “Minimalist GNU for Windows” [MinGW]
- Pode ser usado com Cygwin
- Criação de executáveis Win32 nativos [console, GUI, Dll´s, OpenGL]
- Gerenciador de pacotes integrado
- Repositório on-line em www.devpaks.org
23 de 55DEVC++
 [DevC++ - um frontend leve para o MinGW]
24 de 55
KDevelop
KDEVELOP
Homepage : http://www.kdevelop.org/
Linguagens : Python, PHP, JavaScript, Perl, HTML, C, C++, ...
Características [KDevelop] :
- Ferramenta RAD, Frontend para o GCC, GDB, controle de versões
- Editor de códigos fontes (Kate)
Características [QtDesigner] :
- Ferramenta RAD, Integração com o MS Visual Studio, Kdevelop
- Interface amigável
25 de 55KDEVELOP
 [KDevelop - visão do code completion da ferramenta em ação]
26 de 55KDEVELOP + QTDESIGNER
 [QtDesigner - ferramenta para construção e diagramação de interfaces gráficas baseadas no pacote Qt]
27 de 55
Anjuta
ANJUTA
Homepage : http://anjuta.sourceforge.net
Linguagens : C, C++, C#, Java, Python, ...
Características [Anjuta] :
- Interface amigável, Plugins, Debugger (gdb, valgrid)
- Integração com Glade, Ótima edição de códigos fontes
- Dependência do GNOME e UNIX/Linux
Características [Glade] :
- Ferramenta RAD para desenvolvimento de interfaces gráficas para
GTK+ toolkit e GNOME, Multiplataforma
28 de 55ANJUTA
 [Anjuta – editor de código da ferramenta anjuta]
29 de 55ANJUTA + GLADE
 [Anjuta – Uso do Glade - ferramenta para construção e diagramação de interfaces gráficas]
30 de 55
Microsoft Visual C++
MICROSOFT VISUAL C++
Homepage : http://go.microsoft.com/fwlink/?LinkId=47810&clcid=409
Linguagens : C, C++
Características :
- Parte integrante do pacote Microsoft Visual Studio
- Ambiente de desenvolvimento de aplicações padrão da Microsoft
- Vasta gama de bibliotecas e pacotes de desenvolvimento
- Desenvolvimento GUI usando a Windows API, a MFC ou Windows Forms
- Arquivos de ajuda densos e bem documentados [MSDN]
31 de 55MICROSOFT VISUAL C++
 [MS Visual C++ - editor de código do pacote Microsoft Visual Studio]
32 de 55
Borland C++ Builder
BORLANDO C++ BUILDER
Homepage : http://www.borland.com/
Linguagens : C, C++
Características :
- Ambiente visual para o desenvolvimento de aplicativos.
- Criação de aplicativos C++ para Windows [e Linux a partir da versão 6]
- A construção das interfaces gráficas é feita com a filosofia WYSIWYG
- Paradigma baseado na organização dos componentes de software em objetos
- A VCL é a biblioteca de classes do C++ Builder [componentes visuais e não-visuais]
- CLX para desenvolvimento de aplicações cross-plataform.
33 de 55BORLANDO C++ BUILDER
 [Borland C++ Builder – editor de código, paleta de componentes e construtor de interfaces WYSIWYG]
34 de 55
Eclipse
ECLIPSE
Homepage : http://www.eclipse.org/
Linguagens : C, C++, Java, PHP, UML, ...
Características :
- Altamente utlizado pela comunidade
- Investimento inicial de 40 milhões pela IBM
- Controle de versões, plugins disponíveis para diversas linguagens
- Multiplataforma
35 de 55ECLIPSE
 [Eclipse Ganymede – editor de código e plugin CDT para desenvolvimento em C/C++]
36 de 55
CodeBlocks
CODEBLOCKS
Homepage : http://www.codeblocks.org
Linguagens : C, C++
Características :
- Open Source
- Suporta vários compiladores [GCC, Visual C++ Toolkit, Borland C++, Intel C/C++, Watcom,etc]
- Construído a partir do toolkit WxWidgets
- Multiplataforma
37 de 55CODEBLOCKS
 [CodeBlocks – ferramenta construída com os componentes WxWidgets]
38 de 55
NetBeans
NETBEANS
Homepage : http://www.netbeans.org/
Linguagens : C, C++, Java, Python, UML, Ruby, Linguagens de
script, ....
Características :
- Ferramenta RAD, Plugins, Multiplataforma
39 de 55NETBEANS
 [NetBeans – versão para desenvolvimento em C/C++]
40 de 55
Editores
EDITORES
41 de 55VIM
Vi IMproved
 [VIM – poderoso editor para manipulação de arquivos em modo texto]
42 de 55NOTEPAD++
Notepad++
 [Notepad++ – editor sendo usado no modo C/C++]
43 de 55GEANY
Geany
 [Geany – editor cross-plataform feito em GTK]
44 de 55
Finalmente FLTK
UM PASSEIO RÁPIDO PELO FAST LIGHT TOOLKIT
45 de 55O QUE É FLTK ?
The Fast Light ToolKit
O FLTK (sigla de Fast Light ToolKit), pronunciado como "fulltick", é um kit de
desenvolvimento de interfaces gráficas para a linguagem C++, disponível para
diversos sistemas operacionais (GNU/Linux – através do sistema gráfico X11, M$
Windows®
, Mac OS X, OS/2 e Solaris).
Suporta gráficos 3D via OpenGL®, bem como provê emulação à
biblioteca GLUT.
Fornece um rico conjunto de componentes gráficos porém, visando se
manter sempre enxuto e modular, prezando pela eficiência sem
ostentação.
Software Livre distribuído sob a licença LGPL (GNU Library General
Public License).
Possui uma ferramenta chamada FLUID, que permite de maneira fácil e
visual a construção de todo o esqueleto de uma interface gráfica.
46 de 55
Hierarquia de objetos do pacote FLTK
HIERARQUIA DAS CLASSES DO PACOTE FLTK
47 de 55FLUID - FLTK USER INTERFACE DESIGNER/FAST LIGHT USER INTERFACE DESIGNER
FLUID
O FLUID (sigla de FLTK User Interface Designer) é um editor visual de
interfaces gráficas, uma ferramenta integrante do pacote FLTK,
responsável pela geração automática do código fonte (na linguagem
C++) da interface gráfica construída.
48 de 55SUPORTE A GRÁFICOS 3D VIA OPENGL E A KITS COMO O GLUT
Suporte a OpenGL®
49 de 55UM “HELLO WORLD !” EM FLTK
Um “Hello World !” em FLTK
Observe como é fácil e rápido construir um simples “Hello World !” usando FLTK,
apenas 3 linhas !
50 de 55UM “HELLO WORLD !” USANDO O CONCEITO DE ORIENTAÇÃO A OBJETOS
Um “Hello World !” usando Orientação a Objetos
Usando o conceito de “Programação Orientada a Objetos” tudo se torna ainda mais
fácil pois podemos compor ou estender os nossos próprios objetos a partir das
classes nativas do pacote FLTK.
51 de 55OBTENDO E COMPILANDO OS FONTES DO FLTK
Obtenha os fontes do pacote FLTK através da URL www.fltk.org [escolha a
versão mais estável, atualmente é a série 1.1.x]
Download
Usando Unix/Linux [com o pacote gcc]
Compile e instale o pacote com os seguintes comandos:
#tar –xzvf fltk-1.1.x-source.tar.gz
#cd fltk-1.1.x
#./configure
#make
#make install
Usando a Família M$ Windows®
Podem ser usadas as diversas opções de projeto e makefiles que acompanham o
pacote FLTK [projetos para M$ Visual C++, C++ Builder, DevC++, entre outros], ou
simplesmente o uso do MSys + MinGW.
Observação
Você deve ter
privilégios de
super-usuário ou
as permissões
adequadas para
instalação desse
pacote.
52 de 55COMPILANDO O PRIMEIRO PROGRAMA
Usando a Família M$ Windows®
Usando Unix/Linux [com o pacote gcc]
Se o arquivo hello.cxx depende das bibliotecas FLTK poderemos compilá-lo com o
seguinte comando :
g++ hello.cxx -o hello -I/path/to/fltk/includes
-L/path/to/fltk/libs -lfltk -lXext -lX11 –lm
ou
fltk-config --compile hello.cxx
Com o auxílio de IDE´s como o M$ Visual C++ ou Borland C++ Builder nos
parâmetros de vinculação/“linkagem” acrescente as bibliotecas uuid.lib, ole32.lib,
comctl32.lib, wsock32.lib.
Com o auxílio de IDE´s como o DevC++, Geany, Eclipse, NetBeans (entre outras) [e
o pacote MinGW] devemos executar a vinculação com as seguintes bibliotecas:
-lfltk –luuid -lole32 –lcomctl32 –lwsock32
Observação
Verifique se os
pacotes libxext-
dev e libx11-dev
foram previamente
instalados !
53 de 55DÚVIDAS ?
Dúvidas ?
54 de 55PENSAMENTO DO DIA !
Provérbio japonês
“Não adianta ir para o rio apenas com a intenção de pescar,
deve-se sobretudo carregar consigo a isca e o anzol ...”
55 de 55FIM !!!

Mais conteúdo relacionado

Mais procurados

Desenvolvendo para Android
Desenvolvendo para AndroidDesenvolvendo para Android
Desenvolvendo para AndroidClaudio Pereira
 
Introdução ao android e plataforma android
Introdução ao android e plataforma androidIntrodução ao android e plataforma android
Introdução ao android e plataforma androidJuarez Junior
 
PALESTRA :: Desenvolvimento para plataforma Android
PALESTRA :: Desenvolvimento para plataforma Android PALESTRA :: Desenvolvimento para plataforma Android
PALESTRA :: Desenvolvimento para plataforma Android Fundação Vanzolini
 
Tutorial de Instalação Eclipse + Android SDK
Tutorial de Instalação Eclipse + Android SDKTutorial de Instalação Eclipse + Android SDK
Tutorial de Instalação Eclipse + Android SDKRonildo Oliveira
 
Introdução à plataforma Android
Introdução à plataforma AndroidIntrodução à plataforma Android
Introdução à plataforma AndroidNatanael Fonseca
 
Introdução ao desenvolvimento de apps para Android - Dia 2/2
Introdução ao desenvolvimento de apps para Android - Dia 2/2Introdução ao desenvolvimento de apps para Android - Dia 2/2
Introdução ao desenvolvimento de apps para Android - Dia 2/2Matheus Calegaro
 
Tutorial - Como criar sua primeira app para Android
Tutorial - Como criar sua primeira app para AndroidTutorial - Como criar sua primeira app para Android
Tutorial - Como criar sua primeira app para AndroidSidney Roberto
 
Introdução ao Desenvolvimento Android
Introdução ao Desenvolvimento AndroidIntrodução ao Desenvolvimento Android
Introdução ao Desenvolvimento AndroidJosé Alexandre Macedo
 
Window Maker
Window MakerWindow Maker
Window Makerang3lus
 
Curso de Android - aula 2
Curso de Android - aula 2Curso de Android - aula 2
Curso de Android - aula 2Jose Berardo
 
Baixando, instalando e testando o android sdk
Baixando, instalando e testando o android sdkBaixando, instalando e testando o android sdk
Baixando, instalando e testando o android sdkReuel Lopes
 

Mais procurados (18)

Desenvolvendo para Android
Desenvolvendo para AndroidDesenvolvendo para Android
Desenvolvendo para Android
 
Android - Conceito e Arquitetura
Android - Conceito e ArquiteturaAndroid - Conceito e Arquitetura
Android - Conceito e Arquitetura
 
Google android pdf
Google android pdfGoogle android pdf
Google android pdf
 
Introdução ao android e plataforma android
Introdução ao android e plataforma androidIntrodução ao android e plataforma android
Introdução ao android e plataforma android
 
PALESTRA :: Desenvolvimento para plataforma Android
PALESTRA :: Desenvolvimento para plataforma Android PALESTRA :: Desenvolvimento para plataforma Android
PALESTRA :: Desenvolvimento para plataforma Android
 
Tutorial de Instalação Eclipse + Android SDK
Tutorial de Instalação Eclipse + Android SDKTutorial de Instalação Eclipse + Android SDK
Tutorial de Instalação Eclipse + Android SDK
 
Introdução à plataforma Android
Introdução à plataforma AndroidIntrodução à plataforma Android
Introdução à plataforma Android
 
Introdução ao desenvolvimento de apps para Android - Dia 2/2
Introdução ao desenvolvimento de apps para Android - Dia 2/2Introdução ao desenvolvimento de apps para Android - Dia 2/2
Introdução ao desenvolvimento de apps para Android - Dia 2/2
 
Plataforma Android
Plataforma AndroidPlataforma Android
Plataforma Android
 
Introdução ao Android Studio
Introdução ao Android StudioIntrodução ao Android Studio
Introdução ao Android Studio
 
Tutorial - Como criar sua primeira app para Android
Tutorial - Como criar sua primeira app para AndroidTutorial - Como criar sua primeira app para Android
Tutorial - Como criar sua primeira app para Android
 
Introdução ao Desenvolvimento Android
Introdução ao Desenvolvimento AndroidIntrodução ao Desenvolvimento Android
Introdução ao Desenvolvimento Android
 
Android
AndroidAndroid
Android
 
Android Aula 2
Android Aula 2Android Aula 2
Android Aula 2
 
Window Maker
Window MakerWindow Maker
Window Maker
 
Android
Android Android
Android
 
Curso de Android - aula 2
Curso de Android - aula 2Curso de Android - aula 2
Curso de Android - aula 2
 
Baixando, instalando e testando o android sdk
Baixando, instalando e testando o android sdkBaixando, instalando e testando o android sdk
Baixando, instalando e testando o android sdk
 

Destaque

A Struggle to Survive a Legacy! 3.02 B
A Struggle to Survive a Legacy! 3.02 BA Struggle to Survive a Legacy! 3.02 B
A Struggle to Survive a Legacy! 3.02 BXenia-Ellen Caltabiano
 
A Struggle to Survive a Legacy! Chapter 3.07
A Struggle to Survive a Legacy! Chapter 3.07A Struggle to Survive a Legacy! Chapter 3.07
A Struggle to Survive a Legacy! Chapter 3.07Xenia-Ellen Caltabiano
 
Bootstrap Evaluation in R - Source Code
Bootstrap Evaluation in R -  Source CodeBootstrap Evaluation in R -  Source Code
Bootstrap Evaluation in R - Source CodeMichel Alves
 
Documentation - LibraryRandom
Documentation - LibraryRandomDocumentation - LibraryRandom
Documentation - LibraryRandomMichel Alves
 
Documentation - MyGlWindowPlot
Documentation - MyGlWindowPlotDocumentation - MyGlWindowPlot
Documentation - MyGlWindowPlotMichel Alves
 
A Struggle to Survive a Legacy. 3.01 B
A Struggle to Survive a Legacy. 3.01 BA Struggle to Survive a Legacy. 3.01 B
A Struggle to Survive a Legacy. 3.01 BXenia-Ellen Caltabiano
 
A Gentle Introduction to Hardening Concept
A Gentle Introduction to Hardening ConceptA Gentle Introduction to Hardening Concept
A Gentle Introduction to Hardening ConceptMichel Alves
 

Destaque (8)

A Struggle to Survive a Legacy! 3.02 B
A Struggle to Survive a Legacy! 3.02 BA Struggle to Survive a Legacy! 3.02 B
A Struggle to Survive a Legacy! 3.02 B
 
A Struggle to Survive a Legacy! Chapter 3.07
A Struggle to Survive a Legacy! Chapter 3.07A Struggle to Survive a Legacy! Chapter 3.07
A Struggle to Survive a Legacy! Chapter 3.07
 
Bootstrap Evaluation in R - Source Code
Bootstrap Evaluation in R -  Source CodeBootstrap Evaluation in R -  Source Code
Bootstrap Evaluation in R - Source Code
 
A Sparrow Legacy! Chapter 1.08
A Sparrow Legacy! Chapter 1.08A Sparrow Legacy! Chapter 1.08
A Sparrow Legacy! Chapter 1.08
 
Documentation - LibraryRandom
Documentation - LibraryRandomDocumentation - LibraryRandom
Documentation - LibraryRandom
 
Documentation - MyGlWindowPlot
Documentation - MyGlWindowPlotDocumentation - MyGlWindowPlot
Documentation - MyGlWindowPlot
 
A Struggle to Survive a Legacy. 3.01 B
A Struggle to Survive a Legacy. 3.01 BA Struggle to Survive a Legacy. 3.01 B
A Struggle to Survive a Legacy. 3.01 B
 
A Gentle Introduction to Hardening Concept
A Gentle Introduction to Hardening ConceptA Gentle Introduction to Hardening Concept
A Gentle Introduction to Hardening Concept
 

Semelhante a Introdução ao FLTK

Apresentação wxWidgets
Apresentação wxWidgetsApresentação wxWidgets
Apresentação wxWidgetsRenzo Petri
 
Apresentação Semi-Final
Apresentação Semi-FinalApresentação Semi-Final
Apresentação Semi-FinalJordan Claussen
 
Ruby No Desktop - Marcelo Castellani
Ruby No Desktop - Marcelo CastellaniRuby No Desktop - Marcelo Castellani
Ruby No Desktop - Marcelo CastellaniHugo Borges
 
Apresentação Final Ambientes Operacionais - Biblio's Fanatic
Apresentação Final Ambientes Operacionais - Biblio's FanaticApresentação Final Ambientes Operacionais - Biblio's Fanatic
Apresentação Final Ambientes Operacionais - Biblio's FanaticJordan Claussen
 
Apresentação Final Ambientes Operacionais - Biblio's Fanatic
Apresentação Final Ambientes Operacionais - Biblio's FanaticApresentação Final Ambientes Operacionais - Biblio's Fanatic
Apresentação Final Ambientes Operacionais - Biblio's FanaticJordan Claussen
 
Aula 1 -_ambiente_visual_studio_2012
Aula 1 -_ambiente_visual_studio_2012Aula 1 -_ambiente_visual_studio_2012
Aula 1 -_ambiente_visual_studio_2012Laís Vidal
 
Projetos Mono e Moonlight
Projetos Mono e MoonlightProjetos Mono e Moonlight
Projetos Mono e MoonlightPedro Alves Jr.
 
ESLPE 2008 - Desenvolvendo aplicações no Linux
ESLPE 2008 - Desenvolvendo aplicações no LinuxESLPE 2008 - Desenvolvendo aplicações no Linux
ESLPE 2008 - Desenvolvendo aplicações no LinuxJorge Pereira
 
10 inês pinheiro_17lucianapires_tic_so
10 inês pinheiro_17lucianapires_tic_so10 inês pinheiro_17lucianapires_tic_so
10 inês pinheiro_17lucianapires_tic_solulupires
 
Sistemas de Informação - Faveni - Prof. Evaldo Wolkers - Aula 2
Sistemas de Informação - Faveni - Prof. Evaldo Wolkers - Aula 2Sistemas de Informação - Faveni - Prof. Evaldo Wolkers - Aula 2
Sistemas de Informação - Faveni - Prof. Evaldo Wolkers - Aula 2Evaldo Wolkers
 
DotNet Framework e Orientação a Objetos 1 - Introdução
DotNet Framework e Orientação a Objetos 1 - IntroduçãoDotNet Framework e Orientação a Objetos 1 - Introdução
DotNet Framework e Orientação a Objetos 1 - IntroduçãoLorival Smolski Chapuis
 
Introdução a computação 03
Introdução a computação 03Introdução a computação 03
Introdução a computação 03Felipe Pereira
 
Webinar: Desvendando o Yocto Project
Webinar: Desvendando o Yocto ProjectWebinar: Desvendando o Yocto Project
Webinar: Desvendando o Yocto ProjectEmbarcados
 
OpenDevice IoT - 2016 (LowLevel)
OpenDevice IoT - 2016 (LowLevel)OpenDevice IoT - 2016 (LowLevel)
OpenDevice IoT - 2016 (LowLevel)Ricardo Rufino
 

Semelhante a Introdução ao FLTK (20)

Delphi6bd
Delphi6bdDelphi6bd
Delphi6bd
 
Apresentação wxWidgets
Apresentação wxWidgetsApresentação wxWidgets
Apresentação wxWidgets
 
Apresentação Semi-Final
Apresentação Semi-FinalApresentação Semi-Final
Apresentação Semi-Final
 
Microsoft .NET Framework
Microsoft .NET FrameworkMicrosoft .NET Framework
Microsoft .NET Framework
 
Ruby No Desktop - Marcelo Castellani
Ruby No Desktop - Marcelo CastellaniRuby No Desktop - Marcelo Castellani
Ruby No Desktop - Marcelo Castellani
 
.NET Open Source
.NET Open Source.NET Open Source
.NET Open Source
 
Apresentação Final Ambientes Operacionais - Biblio's Fanatic
Apresentação Final Ambientes Operacionais - Biblio's FanaticApresentação Final Ambientes Operacionais - Biblio's Fanatic
Apresentação Final Ambientes Operacionais - Biblio's Fanatic
 
Apresentação Final Ambientes Operacionais - Biblio's Fanatic
Apresentação Final Ambientes Operacionais - Biblio's FanaticApresentação Final Ambientes Operacionais - Biblio's Fanatic
Apresentação Final Ambientes Operacionais - Biblio's Fanatic
 
Aula 1 -_ambiente_visual_studio_2012
Aula 1 -_ambiente_visual_studio_2012Aula 1 -_ambiente_visual_studio_2012
Aula 1 -_ambiente_visual_studio_2012
 
Projetos Mono e Moonlight
Projetos Mono e MoonlightProjetos Mono e Moonlight
Projetos Mono e Moonlight
 
ESLPE 2008 - Desenvolvendo aplicações no Linux
ESLPE 2008 - Desenvolvendo aplicações no LinuxESLPE 2008 - Desenvolvendo aplicações no Linux
ESLPE 2008 - Desenvolvendo aplicações no Linux
 
10 inês pinheiro_17lucianapires_tic_so
10 inês pinheiro_17lucianapires_tic_so10 inês pinheiro_17lucianapires_tic_so
10 inês pinheiro_17lucianapires_tic_so
 
Sistemas de Informação - Faveni - Prof. Evaldo Wolkers - Aula 2
Sistemas de Informação - Faveni - Prof. Evaldo Wolkers - Aula 2Sistemas de Informação - Faveni - Prof. Evaldo Wolkers - Aula 2
Sistemas de Informação - Faveni - Prof. Evaldo Wolkers - Aula 2
 
So-mod-1
So-mod-1So-mod-1
So-mod-1
 
DotNet Framework e Orientação a Objetos 1 - Introdução
DotNet Framework e Orientação a Objetos 1 - IntroduçãoDotNet Framework e Orientação a Objetos 1 - Introdução
DotNet Framework e Orientação a Objetos 1 - Introdução
 
Introdução a computação 03
Introdução a computação 03Introdução a computação 03
Introdução a computação 03
 
Webinar: Desvendando o Yocto Project
Webinar: Desvendando o Yocto ProjectWebinar: Desvendando o Yocto Project
Webinar: Desvendando o Yocto Project
 
Aula 3 - Software
Aula 3 - SoftwareAula 3 - Software
Aula 3 - Software
 
OpenDevice IoT - 2016 (LowLevel)
OpenDevice IoT - 2016 (LowLevel)OpenDevice IoT - 2016 (LowLevel)
OpenDevice IoT - 2016 (LowLevel)
 
Conceitos windows 7
Conceitos   windows 7Conceitos   windows 7
Conceitos windows 7
 

Mais de Michel Alves

Texture Synthesis: An Approach Based on GPU Use
Texture Synthesis: An Approach Based on GPU UseTexture Synthesis: An Approach Based on GPU Use
Texture Synthesis: An Approach Based on GPU UseMichel Alves
 
Intelligent Transfer of Thematic Harmonic Color Palettes
Intelligent Transfer of Thematic Harmonic Color PalettesIntelligent Transfer of Thematic Harmonic Color Palettes
Intelligent Transfer of Thematic Harmonic Color PalettesMichel Alves
 
A Framework for Harmonic Color Measures
A Framework for Harmonic Color MeasuresA Framework for Harmonic Color Measures
A Framework for Harmonic Color MeasuresMichel Alves
 
Effectiveness of Image Quality Assessment Indexes
Effectiveness of Image Quality Assessment IndexesEffectiveness of Image Quality Assessment Indexes
Effectiveness of Image Quality Assessment IndexesMichel Alves
 
Introduction to Kernel Functions
Introduction to Kernel FunctionsIntroduction to Kernel Functions
Introduction to Kernel FunctionsMichel Alves
 
About Perception and Hue Histograms in HSV Space
About Perception and Hue Histograms in HSV SpaceAbout Perception and Hue Histograms in HSV Space
About Perception and Hue Histograms in HSV SpaceMichel Alves
 
Color Harmonization - Results
Color Harmonization - ResultsColor Harmonization - Results
Color Harmonization - ResultsMichel Alves
 
Wave Simulation Using Perlin Noise
Wave Simulation Using Perlin NoiseWave Simulation Using Perlin Noise
Wave Simulation Using Perlin NoiseMichel Alves
 
Similarity Maps Using SSIM Index
Similarity Maps Using SSIM IndexSimilarity Maps Using SSIM Index
Similarity Maps Using SSIM IndexMichel Alves
 
Qualifying Exam - Image-Based Reconstruction With Color Harmonization
Qualifying Exam - Image-Based Reconstruction With Color HarmonizationQualifying Exam - Image-Based Reconstruction With Color Harmonization
Qualifying Exam - Image-Based Reconstruction With Color HarmonizationMichel Alves
 
TMS - Schedule of Presentations and Reports
TMS - Schedule of Presentations and ReportsTMS - Schedule of Presentations and Reports
TMS - Schedule of Presentations and ReportsMichel Alves
 
Month Presentations Schedule - March/2015 - LCG/UFRJ
Month Presentations Schedule - March/2015 - LCG/UFRJMonth Presentations Schedule - March/2015 - LCG/UFRJ
Month Presentations Schedule - March/2015 - LCG/UFRJMichel Alves
 
Color Palettes in R
Color Palettes in RColor Palettes in R
Color Palettes in RMichel Alves
 
Hue Wheel Prototype
Hue Wheel PrototypeHue Wheel Prototype
Hue Wheel PrototypeMichel Alves
 
Triangle Mesh Plot
Triangle Mesh PlotTriangle Mesh Plot
Triangle Mesh PlotMichel Alves
 
Capacity-Constrained Point Distributions :: Video Slides
Capacity-Constrained Point Distributions :: Video SlidesCapacity-Constrained Point Distributions :: Video Slides
Capacity-Constrained Point Distributions :: Video SlidesMichel Alves
 
Capacity-Constrained Point Distributions :: Density Function Catalog
Capacity-Constrained Point Distributions :: Density Function CatalogCapacity-Constrained Point Distributions :: Density Function Catalog
Capacity-Constrained Point Distributions :: Density Function CatalogMichel Alves
 

Mais de Michel Alves (20)

Texture Synthesis: An Approach Based on GPU Use
Texture Synthesis: An Approach Based on GPU UseTexture Synthesis: An Approach Based on GPU Use
Texture Synthesis: An Approach Based on GPU Use
 
Intelligent Transfer of Thematic Harmonic Color Palettes
Intelligent Transfer of Thematic Harmonic Color PalettesIntelligent Transfer of Thematic Harmonic Color Palettes
Intelligent Transfer of Thematic Harmonic Color Palettes
 
A Framework for Harmonic Color Measures
A Framework for Harmonic Color MeasuresA Framework for Harmonic Color Measures
A Framework for Harmonic Color Measures
 
Effectiveness of Image Quality Assessment Indexes
Effectiveness of Image Quality Assessment IndexesEffectiveness of Image Quality Assessment Indexes
Effectiveness of Image Quality Assessment Indexes
 
Introduction to Kernel Functions
Introduction to Kernel FunctionsIntroduction to Kernel Functions
Introduction to Kernel Functions
 
About Perception and Hue Histograms in HSV Space
About Perception and Hue Histograms in HSV SpaceAbout Perception and Hue Histograms in HSV Space
About Perception and Hue Histograms in HSV Space
 
Color Harmonization - Results
Color Harmonization - ResultsColor Harmonization - Results
Color Harmonization - Results
 
Wave Simulation Using Perlin Noise
Wave Simulation Using Perlin NoiseWave Simulation Using Perlin Noise
Wave Simulation Using Perlin Noise
 
Similarity Maps Using SSIM Index
Similarity Maps Using SSIM IndexSimilarity Maps Using SSIM Index
Similarity Maps Using SSIM Index
 
Qualifying Exam - Image-Based Reconstruction With Color Harmonization
Qualifying Exam - Image-Based Reconstruction With Color HarmonizationQualifying Exam - Image-Based Reconstruction With Color Harmonization
Qualifying Exam - Image-Based Reconstruction With Color Harmonization
 
TMS - Schedule of Presentations and Reports
TMS - Schedule of Presentations and ReportsTMS - Schedule of Presentations and Reports
TMS - Schedule of Presentations and Reports
 
Month Presentations Schedule - March/2015 - LCG/UFRJ
Month Presentations Schedule - March/2015 - LCG/UFRJMonth Presentations Schedule - March/2015 - LCG/UFRJ
Month Presentations Schedule - March/2015 - LCG/UFRJ
 
Color Palettes in R
Color Palettes in RColor Palettes in R
Color Palettes in R
 
Sigmoid Curve Erf
Sigmoid Curve ErfSigmoid Curve Erf
Sigmoid Curve Erf
 
Hue Wheel Prototype
Hue Wheel PrototypeHue Wheel Prototype
Hue Wheel Prototype
 
Cosine Curve
Cosine CurveCosine Curve
Cosine Curve
 
Triangle Mesh Plot
Triangle Mesh PlotTriangle Mesh Plot
Triangle Mesh Plot
 
Triangle Plot
Triangle PlotTriangle Plot
Triangle Plot
 
Capacity-Constrained Point Distributions :: Video Slides
Capacity-Constrained Point Distributions :: Video SlidesCapacity-Constrained Point Distributions :: Video Slides
Capacity-Constrained Point Distributions :: Video Slides
 
Capacity-Constrained Point Distributions :: Density Function Catalog
Capacity-Constrained Point Distributions :: Density Function CatalogCapacity-Constrained Point Distributions :: Density Function Catalog
Capacity-Constrained Point Distributions :: Density Function Catalog
 

Último

ADJETIVO para 8 ano. Ensino funda.mental
ADJETIVO para 8 ano. Ensino funda.mentalADJETIVO para 8 ano. Ensino funda.mental
ADJETIVO para 8 ano. Ensino funda.mentalSilvana Silva
 
TREINAMENTO - BOAS PRATICAS DE HIGIENE NA COZINHA.ppt
TREINAMENTO - BOAS PRATICAS DE HIGIENE NA COZINHA.pptTREINAMENTO - BOAS PRATICAS DE HIGIENE NA COZINHA.ppt
TREINAMENTO - BOAS PRATICAS DE HIGIENE NA COZINHA.pptAlineSilvaPotuk
 
637743470-Mapa-Mental-Portugue-s-1.pdf 4 ano
637743470-Mapa-Mental-Portugue-s-1.pdf 4 ano637743470-Mapa-Mental-Portugue-s-1.pdf 4 ano
637743470-Mapa-Mental-Portugue-s-1.pdf 4 anoAdelmaTorres2
 
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptx
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptxSlide de exemplo sobre o Sítio do Pica Pau Amarelo.pptx
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptxconcelhovdragons
 
Mapas Mentais - Português - Principais Tópicos.pdf
Mapas Mentais - Português - Principais Tópicos.pdfMapas Mentais - Português - Principais Tópicos.pdf
Mapas Mentais - Português - Principais Tópicos.pdfangelicass1
 
Prática de interpretação de imagens de satélite no QGIS
Prática de interpretação de imagens de satélite no QGISPrática de interpretação de imagens de satélite no QGIS
Prática de interpretação de imagens de satélite no QGISVitor Vieira Vasconcelos
 
6°ano Uso de pontuação e acentuação.pptx
6°ano Uso de pontuação e acentuação.pptx6°ano Uso de pontuação e acentuação.pptx
6°ano Uso de pontuação e acentuação.pptxErivaldoLima15
 
DIGNITAS INFINITA - DIGNIDADE HUMANA -Declaração do Dicastério para a Doutrin...
DIGNITAS INFINITA - DIGNIDADE HUMANA -Declaração do Dicastério para a Doutrin...DIGNITAS INFINITA - DIGNIDADE HUMANA -Declaração do Dicastério para a Doutrin...
DIGNITAS INFINITA - DIGNIDADE HUMANA -Declaração do Dicastério para a Doutrin...Martin M Flynn
 
ÁREA DE FIGURAS PLANAS - DESCRITOR DE MATEMATICA D12 ENSINO MEDIO.pptx
ÁREA DE FIGURAS PLANAS - DESCRITOR DE MATEMATICA D12 ENSINO MEDIO.pptxÁREA DE FIGURAS PLANAS - DESCRITOR DE MATEMATICA D12 ENSINO MEDIO.pptx
ÁREA DE FIGURAS PLANAS - DESCRITOR DE MATEMATICA D12 ENSINO MEDIO.pptxDeyvidBriel
 
As Viagens Missionária do Apostolo Paulo.pptx
As Viagens Missionária do Apostolo Paulo.pptxAs Viagens Missionária do Apostolo Paulo.pptx
As Viagens Missionária do Apostolo Paulo.pptxAlexandreFrana33
 
Gametogênese, formação dos gametas masculino e feminino
Gametogênese, formação dos gametas masculino e femininoGametogênese, formação dos gametas masculino e feminino
Gametogênese, formação dos gametas masculino e femininoCelianeOliveira8
 
LIVRO A BELA BORBOLETA. Ziraldo e Zélio.
LIVRO A BELA BORBOLETA. Ziraldo e Zélio.LIVRO A BELA BORBOLETA. Ziraldo e Zélio.
LIVRO A BELA BORBOLETA. Ziraldo e Zélio.HildegardeAngel
 
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024HORA DO CONTO3_BECRE D. CARLOS I_2023_2024
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024Sandra Pratas
 
PRIMEIRO---RCP - DEA - BLS estudos - basico
PRIMEIRO---RCP - DEA - BLS estudos - basicoPRIMEIRO---RCP - DEA - BLS estudos - basico
PRIMEIRO---RCP - DEA - BLS estudos - basicoSilvaDias3
 
Educação São Paulo centro de mídias da SP
Educação São Paulo centro de mídias da SPEducação São Paulo centro de mídias da SP
Educação São Paulo centro de mídias da SPanandatss1
 
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptxQUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptxIsabellaGomes58
 
Currículo escolar na perspectiva da educação inclusiva.pdf
Currículo escolar na perspectiva da educação inclusiva.pdfCurrículo escolar na perspectiva da educação inclusiva.pdf
Currículo escolar na perspectiva da educação inclusiva.pdfIedaGoethe
 
Sociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autoresSociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autoresaulasgege
 
Slides Lição 2, Central Gospel, A Volta Do Senhor Jesus , 1Tr24.pptx
Slides Lição 2, Central Gospel, A Volta Do Senhor Jesus , 1Tr24.pptxSlides Lição 2, Central Gospel, A Volta Do Senhor Jesus , 1Tr24.pptx
Slides Lição 2, Central Gospel, A Volta Do Senhor Jesus , 1Tr24.pptxLuizHenriquedeAlmeid6
 
PLANEJAMENTO anual do 3ANO fundamental 1 MG.pdf
PLANEJAMENTO anual do  3ANO fundamental 1 MG.pdfPLANEJAMENTO anual do  3ANO fundamental 1 MG.pdf
PLANEJAMENTO anual do 3ANO fundamental 1 MG.pdfProfGleide
 

Último (20)

ADJETIVO para 8 ano. Ensino funda.mental
ADJETIVO para 8 ano. Ensino funda.mentalADJETIVO para 8 ano. Ensino funda.mental
ADJETIVO para 8 ano. Ensino funda.mental
 
TREINAMENTO - BOAS PRATICAS DE HIGIENE NA COZINHA.ppt
TREINAMENTO - BOAS PRATICAS DE HIGIENE NA COZINHA.pptTREINAMENTO - BOAS PRATICAS DE HIGIENE NA COZINHA.ppt
TREINAMENTO - BOAS PRATICAS DE HIGIENE NA COZINHA.ppt
 
637743470-Mapa-Mental-Portugue-s-1.pdf 4 ano
637743470-Mapa-Mental-Portugue-s-1.pdf 4 ano637743470-Mapa-Mental-Portugue-s-1.pdf 4 ano
637743470-Mapa-Mental-Portugue-s-1.pdf 4 ano
 
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptx
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptxSlide de exemplo sobre o Sítio do Pica Pau Amarelo.pptx
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptx
 
Mapas Mentais - Português - Principais Tópicos.pdf
Mapas Mentais - Português - Principais Tópicos.pdfMapas Mentais - Português - Principais Tópicos.pdf
Mapas Mentais - Português - Principais Tópicos.pdf
 
Prática de interpretação de imagens de satélite no QGIS
Prática de interpretação de imagens de satélite no QGISPrática de interpretação de imagens de satélite no QGIS
Prática de interpretação de imagens de satélite no QGIS
 
6°ano Uso de pontuação e acentuação.pptx
6°ano Uso de pontuação e acentuação.pptx6°ano Uso de pontuação e acentuação.pptx
6°ano Uso de pontuação e acentuação.pptx
 
DIGNITAS INFINITA - DIGNIDADE HUMANA -Declaração do Dicastério para a Doutrin...
DIGNITAS INFINITA - DIGNIDADE HUMANA -Declaração do Dicastério para a Doutrin...DIGNITAS INFINITA - DIGNIDADE HUMANA -Declaração do Dicastério para a Doutrin...
DIGNITAS INFINITA - DIGNIDADE HUMANA -Declaração do Dicastério para a Doutrin...
 
ÁREA DE FIGURAS PLANAS - DESCRITOR DE MATEMATICA D12 ENSINO MEDIO.pptx
ÁREA DE FIGURAS PLANAS - DESCRITOR DE MATEMATICA D12 ENSINO MEDIO.pptxÁREA DE FIGURAS PLANAS - DESCRITOR DE MATEMATICA D12 ENSINO MEDIO.pptx
ÁREA DE FIGURAS PLANAS - DESCRITOR DE MATEMATICA D12 ENSINO MEDIO.pptx
 
As Viagens Missionária do Apostolo Paulo.pptx
As Viagens Missionária do Apostolo Paulo.pptxAs Viagens Missionária do Apostolo Paulo.pptx
As Viagens Missionária do Apostolo Paulo.pptx
 
Gametogênese, formação dos gametas masculino e feminino
Gametogênese, formação dos gametas masculino e femininoGametogênese, formação dos gametas masculino e feminino
Gametogênese, formação dos gametas masculino e feminino
 
LIVRO A BELA BORBOLETA. Ziraldo e Zélio.
LIVRO A BELA BORBOLETA. Ziraldo e Zélio.LIVRO A BELA BORBOLETA. Ziraldo e Zélio.
LIVRO A BELA BORBOLETA. Ziraldo e Zélio.
 
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024HORA DO CONTO3_BECRE D. CARLOS I_2023_2024
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024
 
PRIMEIRO---RCP - DEA - BLS estudos - basico
PRIMEIRO---RCP - DEA - BLS estudos - basicoPRIMEIRO---RCP - DEA - BLS estudos - basico
PRIMEIRO---RCP - DEA - BLS estudos - basico
 
Educação São Paulo centro de mídias da SP
Educação São Paulo centro de mídias da SPEducação São Paulo centro de mídias da SP
Educação São Paulo centro de mídias da SP
 
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptxQUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
 
Currículo escolar na perspectiva da educação inclusiva.pdf
Currículo escolar na perspectiva da educação inclusiva.pdfCurrículo escolar na perspectiva da educação inclusiva.pdf
Currículo escolar na perspectiva da educação inclusiva.pdf
 
Sociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autoresSociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autores
 
Slides Lição 2, Central Gospel, A Volta Do Senhor Jesus , 1Tr24.pptx
Slides Lição 2, Central Gospel, A Volta Do Senhor Jesus , 1Tr24.pptxSlides Lição 2, Central Gospel, A Volta Do Senhor Jesus , 1Tr24.pptx
Slides Lição 2, Central Gospel, A Volta Do Senhor Jesus , 1Tr24.pptx
 
PLANEJAMENTO anual do 3ANO fundamental 1 MG.pdf
PLANEJAMENTO anual do  3ANO fundamental 1 MG.pdfPLANEJAMENTO anual do  3ANO fundamental 1 MG.pdf
PLANEJAMENTO anual do 3ANO fundamental 1 MG.pdf
 

Introdução ao FLTK

  • 1. 1 de 55INTRODUÇÃO AO FAST LIGHT TOOLKIT - FLTK The Fast Light ToolKit Curso de Verão – Instituto de Computação & CA Computação Michel Alves dos Santos - UFAL Bolsista do Centro de Pesquisa em Matemática Computacional 1º Impacto
  • 2. 2 de 55O QUE É GUI ? O que é GUI ? Acrônimo para Graphical User Interface, ou seja, um tipo de interface do usuário que permite a interação com dispositivos digitais através de elementos gráficos como ícones, botões, caixas de entrada e outros indicadores visuais, em contraste a interface de linha de comando. A interação é feita geralmente através de um mouse ou teclado, com os quais o usuário é capaz de selecionar símbolos e manipulá-los de forma a obter algum resultado prático. Esses símbolos são designados de widgets e são agrupados em kits.  [A esquerda KDE 4.1 e a direita uma interface modificada do Desktop SUGAR para OLPC ]
  • 3. 3 de 55INTERAÇÕES BÁSICAS – ESTILOS DE INTERAÇÃO Estilos de Interação What you see is what you get (WYSIWYG) : Realimentação visual é igual ao resultado obtido. Non-WYSIWYG : Realimentação visual difere do resultado obtido. Manipulação Direta : Interação ocorre diretamente sobre a realimentação visual.  [Algumas formas de interação entre usuários e sistemas computacionais]
  • 4. 4 de 55O QUE SÃO WIDGETS ? O que são WIDGETs ? São componentes da interface gráfica providos de geometria (look) e comportamento (feel) próprios. São agrupados em API´s [de baixo ou alto nível] ou Kits.  [Buttons]  [List Box]  [Combo Box]  [Dialog Box]  [Scrollbars]  [Menubar + Toolbar]  [Textboxes]
  • 5. 5 de 55CLASSIFICAÇÃO DOS WIDGETS Classificação dos Widgets Widgets de baixo nível são utilizados na confecção do sistema operacional e fazem parte do núcleo do sistema [Este núcleo é acessado por outros widgets de alto nível que por fim montam a GUI]. Alguns exemplos são:  Windows 32/64 API;  MAC Carbon;  Unix X-Windows. Widgets de alto nível seriam os objetos finais propriamente ditos. Muitas vezes fazem referências a objetos de baixo nível fornecidos pelo sistema operacional. Estes objetos são facilmente encontrados em bibliotecas de desenvolvimento (toolkit) ou em frameworks. Alguns exemplos são:  WxWidgets (chamada anteriormente de WxWindows);  Cocoa (MAC OS X);  MFC (Microsoft Foundation Classes);  WTL (Windows Template Library - utilizada como substituto para partes do MFC)  Motif (usado no Common Desktop Enviroment- UNIX CDE)  Lesstif (uma versão LGPL do Motif) , GTK +, AWT, Swing, SWT/JFace ...
  • 6. 6 de 55 API´s e Sistemas Operacionais ESTUDO DE CASO – API´s e SISTEMAS OPERACIONAIS
  • 7. 7 de 55COMO PROGRAMAR PARA WINDOWS [API , MFC E WINDOW FORMS] Programação GUI para a Família M$ Windows® WINDOWS API MFC [MICROSOFT FOUNDATION CLASSES] WINDOWS FORMS [.NET GUI SYSTEM]  Arquitetura de aplicações usando Windows Forms Bibliotecas que “empacotam” porções da API do Windows em classes e dão aos desenvolvedores de programas um conjunto de componentes reutilizáveis escritos em C++ que encapsulam as funcionalidades necessárias para o desenvolvimento de aplicações para sistemas operacionais Windows®. Nova forma de “janelamento” introduzida com a plataforma .NET. Esse é o mecanismo base para desenvolvimento de aplicações que são executadas junto a CLR [Common Language Runtime] Construção em baixo nível de todos os componentes visuais [botões, barras de status, menus] e não-visuais [gerenciamento de processos, escrita em disco, etc] pertencentes aos sistemas operacionais MS Windows®.
  • 8. 8 de 55COMO PROGRAMAR PARA MAC OS X [CARBON E COCOA] Programação GUI para o MAC OS X  [MAC X – Estrutura das API´s - nativamente são suportadas cinco : Carbon, Cocoa, POSIX, Toolbox (antigo Classic Enviroment) e Java ]
  • 9. 9 de 55COMO PROGRAMAR PARA MAC OS X [CARBON E COCOA] Programação GUI para o MAC OS X COCOA [Mac OS X] CARBON [Mac OS 9 e Mac OS X] É um conjunto procedural de API´s em C para MAC OS X que é baseado nas “velhas” API´s do MAC OS 9. Nem todas as API´s carbon foram portadas pois existem diferenças radicais entre MAC OS X e MAC OS 9 [uma delas é a não compatibilidade total da API Carbon com aplicações de 64 bits para MAC OS 10.5] É uma API orientada a objetos para desenvolvimento de aplicações escrita em Objective-C e Java. Cocoa é largamente baseado nos frameworks do OpenStep e consiste primariamente em duas partes : A Foundation (classes fundamentais) e a Applicatino Kit (classes para elementos GUI). Core Foundation e outras camadas de software no Mac OS X  Core Foundation e Carbon no Mac OS 9
  • 10. 10 de 55COMO PROGRAMAR PARA MAC OS X [CARBON E COCOA]  [Exemplo de uma aplicação “carbonizada” sendo executada em MAC OS X]
  • 11. 11 de 55COMO PROGRAMAR PARA X WINDOW SYSTEM Programação GUI para X Window System X Window System O X-Window, X11 ou simplesmente X é um protocolo e seu software associado possibilita o emprego de uma interface gráfica com o conceito de janelas. Originalmente chamado simplesmente de X, foi desenvolvido no MIT em 1984. Atualmente está na versão 11 e por isso carrega no nome este número. X-Window também é o toolkit e protocolo padrão para GUI nos sistemas Unix e assemelhados, como o Linux, mas existem versões para outros sistemas operacionais, como o Microsoft Windows e o Mac OS, por exemplo. O X (como é comumente chamado) funciona segundo o modelo cliente-servidor. Este modelo de comunicação permite o uso de janelas de modo transparente através da rede. Logotipo do X Programas desenvolvidos na distribuição do núcleo do X : xterm, twm, xdm, xconsole, xclock, xeyes, Xserver, xclipboard entre outros ... Captura de tela do X em execução com diversos aplicativos sendo utilizados.
  • 12. 12 de 55COMO PROGRAMAR PARA X WINDOW SYSTEM  [O TWM - Tab Window Manager – também conhecido como Tom´s Window Manager, devido ao seu principal autor]
  • 13. 13 de 55 Widgets de Alto Nível ESTUDO DE CASO – WIDGETS DE ALTO NÍVEL
  • 14. 14 de 55LISTA DE WIDGET TOOLKITS – API´s DE ALTO NÍVEL WIDGET TOOLKITS EWL E muitos outros ...
  • 15. 15 de 55CAPACIDADES/FUNCIONALIDADES DOS WIDGET TOOLKITS O que os Widget Toolkits podem fazer ? DESKTOP EQUINOX – Construído a partir de um fork do FLTK chamado eFLTK.
  • 16. 16 de 55CAPACIDADES/FUNCIONALIDADES DOS WIDGET TOOLKITS O que os Widget Toolkits podem fazer ? DESKTOP GNOME – Construído a partir do kit GTK+
  • 17. 17 de 55CAPACIDADES/FUNCIONALIDADES DOS WIDGET TOOLKITS O que os Widget Toolkits podem fazer ? DESKTOP KDE – Construído a partir das classes do kit QT da trolltech.
  • 18. 18 de 55CAPACIDADES/FUNCIONALIDADES DOS WIDGET TOOLKITS O que os Widget Toolkits podem fazer ? DESKTOP Enlightenment – Construído a partir do kit EWL.
  • 19. 19 de 55FERRAMENTAS DE PRODUÇÃO – IDE´s E EDITORES AVANÇADOS Ferramentas de Produção FERRAMENTAS UTILIZADAS NA PRODUÇÃO DE APLICATIVOS GRÁFICOS.
  • 20. 20 de 55IDE´S E EDITORES IDE´S Editores O problema com IDE´s algumas vezes está localizado em seus editores que por sua vez pecam por falta de funcionalidades específicas. Por isso alguns programadores preferem usar editores robustos. Abaixo segue uma lista : VIM [http://vim.sourceforge.net/] – Linux – Unix - Windows NOTEPAD++ [http://notepad-plus.sourceforge.net/] - Win32 only Quando programamos em C++ o uso de uma IDE facilita consideravelmente o trabalho. Abaixo segue uma pequena lista : GEANY [http://www.geany.org/] – Cross-Plataform DevC++ [http://www.bloodshed.net/devcpp.html ] – Win32 e Linux KDevelop [http://www.kdevelop.org/] – Linux/Unix Anjuta [http://anjuta.sourceforge.net/] – Linux/Unix Microsoft Visual C++, Borland C++ Builder, Eclipse, CodeBlocks, NetBeans, etc. Emacs, EditPlus, UltraEdit, Scite, Gedit, Kate, Nedit, etc.
  • 22. 22 de 55 DevC++ DEVC++ Homepage : http://www.bloodshed.net/ Linguagens : C, C++ Características : - Leve, rápido e sem ostentação, recomendado para iniciantes ... - Frontend para o “Minimalist GNU for Windows” [MinGW] - Pode ser usado com Cygwin - Criação de executáveis Win32 nativos [console, GUI, Dll´s, OpenGL] - Gerenciador de pacotes integrado - Repositório on-line em www.devpaks.org
  • 23. 23 de 55DEVC++  [DevC++ - um frontend leve para o MinGW]
  • 24. 24 de 55 KDevelop KDEVELOP Homepage : http://www.kdevelop.org/ Linguagens : Python, PHP, JavaScript, Perl, HTML, C, C++, ... Características [KDevelop] : - Ferramenta RAD, Frontend para o GCC, GDB, controle de versões - Editor de códigos fontes (Kate) Características [QtDesigner] : - Ferramenta RAD, Integração com o MS Visual Studio, Kdevelop - Interface amigável
  • 25. 25 de 55KDEVELOP  [KDevelop - visão do code completion da ferramenta em ação]
  • 26. 26 de 55KDEVELOP + QTDESIGNER  [QtDesigner - ferramenta para construção e diagramação de interfaces gráficas baseadas no pacote Qt]
  • 27. 27 de 55 Anjuta ANJUTA Homepage : http://anjuta.sourceforge.net Linguagens : C, C++, C#, Java, Python, ... Características [Anjuta] : - Interface amigável, Plugins, Debugger (gdb, valgrid) - Integração com Glade, Ótima edição de códigos fontes - Dependência do GNOME e UNIX/Linux Características [Glade] : - Ferramenta RAD para desenvolvimento de interfaces gráficas para GTK+ toolkit e GNOME, Multiplataforma
  • 28. 28 de 55ANJUTA  [Anjuta – editor de código da ferramenta anjuta]
  • 29. 29 de 55ANJUTA + GLADE  [Anjuta – Uso do Glade - ferramenta para construção e diagramação de interfaces gráficas]
  • 30. 30 de 55 Microsoft Visual C++ MICROSOFT VISUAL C++ Homepage : http://go.microsoft.com/fwlink/?LinkId=47810&clcid=409 Linguagens : C, C++ Características : - Parte integrante do pacote Microsoft Visual Studio - Ambiente de desenvolvimento de aplicações padrão da Microsoft - Vasta gama de bibliotecas e pacotes de desenvolvimento - Desenvolvimento GUI usando a Windows API, a MFC ou Windows Forms - Arquivos de ajuda densos e bem documentados [MSDN]
  • 31. 31 de 55MICROSOFT VISUAL C++  [MS Visual C++ - editor de código do pacote Microsoft Visual Studio]
  • 32. 32 de 55 Borland C++ Builder BORLANDO C++ BUILDER Homepage : http://www.borland.com/ Linguagens : C, C++ Características : - Ambiente visual para o desenvolvimento de aplicativos. - Criação de aplicativos C++ para Windows [e Linux a partir da versão 6] - A construção das interfaces gráficas é feita com a filosofia WYSIWYG - Paradigma baseado na organização dos componentes de software em objetos - A VCL é a biblioteca de classes do C++ Builder [componentes visuais e não-visuais] - CLX para desenvolvimento de aplicações cross-plataform.
  • 33. 33 de 55BORLANDO C++ BUILDER  [Borland C++ Builder – editor de código, paleta de componentes e construtor de interfaces WYSIWYG]
  • 34. 34 de 55 Eclipse ECLIPSE Homepage : http://www.eclipse.org/ Linguagens : C, C++, Java, PHP, UML, ... Características : - Altamente utlizado pela comunidade - Investimento inicial de 40 milhões pela IBM - Controle de versões, plugins disponíveis para diversas linguagens - Multiplataforma
  • 35. 35 de 55ECLIPSE  [Eclipse Ganymede – editor de código e plugin CDT para desenvolvimento em C/C++]
  • 36. 36 de 55 CodeBlocks CODEBLOCKS Homepage : http://www.codeblocks.org Linguagens : C, C++ Características : - Open Source - Suporta vários compiladores [GCC, Visual C++ Toolkit, Borland C++, Intel C/C++, Watcom,etc] - Construído a partir do toolkit WxWidgets - Multiplataforma
  • 37. 37 de 55CODEBLOCKS  [CodeBlocks – ferramenta construída com os componentes WxWidgets]
  • 38. 38 de 55 NetBeans NETBEANS Homepage : http://www.netbeans.org/ Linguagens : C, C++, Java, Python, UML, Ruby, Linguagens de script, .... Características : - Ferramenta RAD, Plugins, Multiplataforma
  • 39. 39 de 55NETBEANS  [NetBeans – versão para desenvolvimento em C/C++]
  • 41. 41 de 55VIM Vi IMproved  [VIM – poderoso editor para manipulação de arquivos em modo texto]
  • 42. 42 de 55NOTEPAD++ Notepad++  [Notepad++ – editor sendo usado no modo C/C++]
  • 43. 43 de 55GEANY Geany  [Geany – editor cross-plataform feito em GTK]
  • 44. 44 de 55 Finalmente FLTK UM PASSEIO RÁPIDO PELO FAST LIGHT TOOLKIT
  • 45. 45 de 55O QUE É FLTK ? The Fast Light ToolKit O FLTK (sigla de Fast Light ToolKit), pronunciado como "fulltick", é um kit de desenvolvimento de interfaces gráficas para a linguagem C++, disponível para diversos sistemas operacionais (GNU/Linux – através do sistema gráfico X11, M$ Windows® , Mac OS X, OS/2 e Solaris). Suporta gráficos 3D via OpenGL®, bem como provê emulação à biblioteca GLUT. Fornece um rico conjunto de componentes gráficos porém, visando se manter sempre enxuto e modular, prezando pela eficiência sem ostentação. Software Livre distribuído sob a licença LGPL (GNU Library General Public License). Possui uma ferramenta chamada FLUID, que permite de maneira fácil e visual a construção de todo o esqueleto de uma interface gráfica.
  • 46. 46 de 55 Hierarquia de objetos do pacote FLTK HIERARQUIA DAS CLASSES DO PACOTE FLTK
  • 47. 47 de 55FLUID - FLTK USER INTERFACE DESIGNER/FAST LIGHT USER INTERFACE DESIGNER FLUID O FLUID (sigla de FLTK User Interface Designer) é um editor visual de interfaces gráficas, uma ferramenta integrante do pacote FLTK, responsável pela geração automática do código fonte (na linguagem C++) da interface gráfica construída.
  • 48. 48 de 55SUPORTE A GRÁFICOS 3D VIA OPENGL E A KITS COMO O GLUT Suporte a OpenGL®
  • 49. 49 de 55UM “HELLO WORLD !” EM FLTK Um “Hello World !” em FLTK Observe como é fácil e rápido construir um simples “Hello World !” usando FLTK, apenas 3 linhas !
  • 50. 50 de 55UM “HELLO WORLD !” USANDO O CONCEITO DE ORIENTAÇÃO A OBJETOS Um “Hello World !” usando Orientação a Objetos Usando o conceito de “Programação Orientada a Objetos” tudo se torna ainda mais fácil pois podemos compor ou estender os nossos próprios objetos a partir das classes nativas do pacote FLTK.
  • 51. 51 de 55OBTENDO E COMPILANDO OS FONTES DO FLTK Obtenha os fontes do pacote FLTK através da URL www.fltk.org [escolha a versão mais estável, atualmente é a série 1.1.x] Download Usando Unix/Linux [com o pacote gcc] Compile e instale o pacote com os seguintes comandos: #tar –xzvf fltk-1.1.x-source.tar.gz #cd fltk-1.1.x #./configure #make #make install Usando a Família M$ Windows® Podem ser usadas as diversas opções de projeto e makefiles que acompanham o pacote FLTK [projetos para M$ Visual C++, C++ Builder, DevC++, entre outros], ou simplesmente o uso do MSys + MinGW. Observação Você deve ter privilégios de super-usuário ou as permissões adequadas para instalação desse pacote.
  • 52. 52 de 55COMPILANDO O PRIMEIRO PROGRAMA Usando a Família M$ Windows® Usando Unix/Linux [com o pacote gcc] Se o arquivo hello.cxx depende das bibliotecas FLTK poderemos compilá-lo com o seguinte comando : g++ hello.cxx -o hello -I/path/to/fltk/includes -L/path/to/fltk/libs -lfltk -lXext -lX11 –lm ou fltk-config --compile hello.cxx Com o auxílio de IDE´s como o M$ Visual C++ ou Borland C++ Builder nos parâmetros de vinculação/“linkagem” acrescente as bibliotecas uuid.lib, ole32.lib, comctl32.lib, wsock32.lib. Com o auxílio de IDE´s como o DevC++, Geany, Eclipse, NetBeans (entre outras) [e o pacote MinGW] devemos executar a vinculação com as seguintes bibliotecas: -lfltk –luuid -lole32 –lcomctl32 –lwsock32 Observação Verifique se os pacotes libxext- dev e libx11-dev foram previamente instalados !
  • 53. 53 de 55DÚVIDAS ? Dúvidas ?
  • 54. 54 de 55PENSAMENTO DO DIA ! Provérbio japonês “Não adianta ir para o rio apenas com a intenção de pescar, deve-se sobretudo carregar consigo a isca e o anzol ...”
  • 55. 55 de 55FIM !!!