Contribute to wxHaskell!
"Do not ask yourself what wxHaskell can do for you, but what you can do for wxHaskell" :-)
However, it is hard to find out which features are particularly interesting, the hardness of certain tasks, and whether you are duplicating work done by others. This page tries to remedy this situation by giving a list of good starting points for contributing to wxHaskell.
If you feel like doing one of these items, please notify the maintainer of wxHaskell, or send an e-mail to the wxHaskell mailing list, so that no effort is accidently duplicated.
- Create wxHaskell samples or screenshots
- If you have a good sample or screenshot, send it to the wxHaskell maintainer for inclusion into the samples or the webpage with screenshots.
- Add new widget abstractions to the WX library
- This task only requires a good understanding of Haskell (and a certain taste for elegant design :-). Examples for which abstractions can be created are wxStopWatch or MDI windows. You only need to add code to the WX library and the WX.Controls library can serve as a typical example of useful abstractions.
- Portable resources
- A pure Haskell task, but requires a lot of careful design work and probably access to a Windows, MacOS X, and Linux system. As a first step, it would be great if there is some method of loading images, like bitmaps and icons, in a platform independent way. This could be done for example by requiring different formats for the same image for different platforms (an ico on windows, a mac icon on MacOS X), together with some generic function that searches for the most appropiate image. Another facet of this task could be the use of resource bundles, or ways to internationalize the application.
- Create a good tree control / list /grid control abstraction
- At the moment, trees, list and grid controls are cumbersome to deal with. It would be nice if better abstractions could be devised that work well in practice. Furthermore, the haskell data in the tree control can maybe be typed by including the value types into the phantom type variable of the tree control. Requires a good feeling for elegant and practical design with Haskell, together with some GUI experience.
XRC support From the wxWidgets homepage:
The XML-based resource system, known as XRC, allows user interface elements such as dialogs, menu bars and toolbars, to be stored in text files and loaded into the application at run-time.
It would certainly be useful if people could use tools like wxGlade to build interfaces and use them for Haskell programming. gtk2hs seems to support an equivalent feature, so perhaps you could get some tips from them. There are more desirable features that are planned for upcoming releases. However most of these are somewhat harder to do as they require more knowledge about the entire wxHaskell project. However, if you feel that you really need one of these items, feel free to try!
- Clipboard, copy and past.
- Better internet support.
See also Haskell.org's GSoC (Google Summer of Code) project idea page ticket #1550.