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 |