WxGeneric
Using an algebraic data types structure and field names, this library constructs widgets for wxHaskell. It can handle data types with single or multiple constructors, as well as recursive data types.
The library is designed to integrate smoothly with wxHaskell. First, by making it easy to integrate WxGeneric-widgets into existing wxHaskell programs. Second, by letting a user extend WxGeneric using mostly wxHaskell function.
Links[edit]
- WxGeneric on Hackage
- WxGeneric on code.haskell.org
- Here you report bug or feature requests
- Blog post: "Using WxGeneric" (21st May 2008)
- Blog post: "Introducing WxGeneric" (3rd May 2008)
- Haddock docs for WxGeneric (can be a little dated)
Download and Install[edit]
Before installing WxGeneric you need:
You can get the sources either from hackage or from WxGeneric's Darcs repository:
darcs get http://code.haskell.org/WxGeneric/
After getting the sources do:
cd WxGeneric runhaskell Setup clean runhaskell Setup configure --user --prefix=$HOME runhaskell Setup build runhaskell Setup install
Then you is ready to try the examples, see <path to WxGeneric>/examples.
Examples[edit]
You can find plenty of examples in the WxGeneric examples folder. Especially, you can find many small examples are found in Examples.hs in WxGeneric/Examples folder.
Screenshots[edit]
The simplest possible example is editing an Int:
If you have downloaded and installed WxGeneric you can run this example yourself by:
ghc examples/Examples.hs -e anyInt
One nice feature of WxGenerics is that it handles recursive data types. For example:
data MyTree = Branch { left :: MyTree, right :: MyTree }
| Leaf Int Double
deriving Show
will produce a editable widget, such as:
If you have downloaded and installed WxGeneric you can run this example yourself by:
ghc examples/Examples.hs -e tree
Contact Information[edit]
Questions, ideas or comments should be directed to wxHaskell-users mailing list. If messages are of a more private nature, you can contact me, the auther of WxGenerics, at Mads Lindstrøm.
There is also a bug and feature request -tracker here.