Índice
1. WxHaskell
1.1. Introducción a WxHaskell
¿Por qué usar wxHaskell?
1.2. Visión genérica de wxHaskell.
1.3. Ejemplos
2. Ap.GUI
2.1. Introducción a Ap.GUI
2.2. Ejemplos
1
Introducción a WxHaskell
Es una librería de interfaces gráficas para Haskell de código abierto
Construída sobre la librería wxWidgets(plataforma GUI desarrollada para C++). Soporta el 75% de su funcionalidad.
Comenzó su desarrollo en el año 1992 declarada código abierto en el año 2009.
Es una librería derivada de wxEiffel.
Ofrece un alto nivel de abstracción, polimorfismo paramétrico
2
¿Por qué usar WxHaskell?
3
Seguridad en WxHaskell
4
Visión genérica de WxHaskell
5
Visión genérica. Paquetes WxHaskell
6
(Gp:) wxWidgets
(Gp:) Graphics.UI.WXCore
(Gp:) Graphics.UI.WX
Controles
p <- panel []
txt <- textEntry p AlignLeft [text := “your name here”]
cb <- comboBox p true [“NSW”, “ACT”, “VIC”, “WA”] []
rd <- radioBox p Horizontal [“one”, “two”]
[on select := logSelection]
Otras: Choice, ListBox, Slider, Toolbar
7
Tipos y herencia en WxHaskell
Codifica relación de herencia entre tipos diferentes usando TAD
Object (Ptr)
|- ..
|- Window
|- Frame
|- Control
|- Button
|- RadioBox
Button a === Ptr (… (CWindow (CControl (CButton a))) …)
8
Visión genérica. Atributos en WxHaskell
9
Visión genérica. Atributos en WxHaskell
Type Frame a = Window (CFrame a)
Frame es instancia de HasImage, Form, Closable, y de cualquier otra instancia de Window
Window es una instancia Textual,Literate,Dimensions,…
La clase HasImage define el atributo ‘image’,
La clase Textual define the atributo ‘text’.
Entonces, podremos hacer lo siguiente:
f <- frame []
set f [text := “Window Title”, image := “/some/image.ico”]
10
Página siguiente |