Personal tools

WxHaskell/Contribute

From HaskellWiki

< WxHaskell(Difference between revisions)
Jump to: navigation, search
(imported from homepage via pandoc)
 
(Added rewrite install and building script task for Windows)
(7 intermediate revisions by 2 users not shown)
Line 1: Line 1:
* [http://{{SERVERNAME}}/index.html home]
 
* [http://{{SERVERNAME}}/screenshots.html screenshots]
 
** [http://{{SERVERNAME}}/samples.html samples]
 
** [http://{{SERVERNAME}}/applications.html applications]
 
* [http://{{SERVERNAME}}/documentation.html documentation]
 
** [http://{{SERVERNAME}}/license.html license]
 
** [http://{{SERVERNAME}}/quickstart.html quick start]
 
** [http://{{SERVERNAME}}/faq.html faq]
 
* [http://{{SERVERNAME}}/download.html download]
 
[http://{{SERVERNAME}}/building.html building]
 
* [http://{{SERVERNAME}}/building-cygwin.html cygwin]
 
* [http://{{SERVERNAME}}/building-msc.html msc]
 
* [http://{{SERVERNAME}}/building-macosx.html macosx]
 
[http://{{SERVERNAME}}/development.html development]
 
[http://{{SERVERNAME}}/contribute.html contribute]
 
 
 
=== Contribute to wxHaskell! ===
 
=== Contribute to wxHaskell! ===
   
Line 31: Line 15:
 
; Portable resources
 
; 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 <tt>ico</tt> 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.
 
: 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 <tt>ico</tt> 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 control abstraction
+
; Create a good tree control / list /grid control abstraction
: At the moment, trees and list 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.
+
: 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
+
; Create fancy Vector Graphics support
From the wxWidgets homepage:
+
: At the moment, wxHaskell has just thin wrapper for wxGraphicsContext. This is not good for users. So, we need to implement higher-level fancy Vector Graphics support on top of wxGraphicsContext wrapper that is like [[Gtk2Hs]]' Cairo support.
<blockquote>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.</blockquote>
+
; Add com (ActiveX) support for Windows platform
It would certainly be useful if people could use tools like wxGlade to build interfaces and use them for Haskell programming. [http://www.haskell.org/gtk2hs gtk2hs] seems to support an equivalent feature, so perhaps you could get some tips from them.
+
: wxWidgets can use com by wxActiveXContainer and wxActiveXEvent classes. Haskell also has two com support packages ([http://hackage.haskell.org/cgi-bin/hackage-scripts/package/com com] and [http://darcs.haskell.org/packages/hscom/ hscom]). So, idea is that implementing com support on top of wxWidgets and Haskell's com support.
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!
+
; Add new PowerShell's install and building script for Windows platform
* Drag and drop.
+
: We use MS-DOS batch file for install script, and make with bash shell script for building script now. MS-DOS batch script is easy to use for end-user, but this is not easy to write although newer Windows versions are extending features. Shell script is good for this tasks, but Windows doesn't have that in default. It's probaby that we can solve these Windows specific problem by using PowerShell. Because Windows 7 will have PowerShell in default. Note: Don't remove old install and building script until most user switched to Windows 7 or later version.
* Clipboard, copy and past.
+
* Grid control support.
+
* RichText supprt (wxHaskell doesn't support wxRichText* classes currently).
 
* Better internet support.
 
* Better internet support.
  +
* Better clipboard, copy and past support.
  +
* Type-safe XRC support.
 
* ...
 
* ...
   
[[Category:wxHaskell]]
+
See also Haskell.org's GSoC (Google Summer of Code) project idea page ticket [http://hackage.haskell.org/trac/summer-of-code/ticket/1550 #1550].
  +
  +
[[Category:wxHaskell|Contribute]]

Revision as of 07:58, 1 February 2009

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.
Create fancy Vector Graphics support
At the moment, wxHaskell has just thin wrapper for wxGraphicsContext. This is not good for users. So, we need to implement higher-level fancy Vector Graphics support on top of wxGraphicsContext wrapper that is like Gtk2Hs' Cairo support.
Add com (ActiveX) support for Windows platform
wxWidgets can use com by wxActiveXContainer and wxActiveXEvent classes. Haskell also has two com support packages (com and hscom). So, idea is that implementing com support on top of wxWidgets and Haskell's com support.
Add new PowerShell's install and building script for Windows platform
We use MS-DOS batch file for install script, and make with bash shell script for building script now. MS-DOS batch script is easy to use for end-user, but this is not easy to write although newer Windows versions are extending features. Shell script is good for this tasks, but Windows doesn't have that in default. It's probaby that we can solve these Windows specific problem by using PowerShell. Because Windows 7 will have PowerShell in default. Note: Don't remove old install and building script until most user switched to Windows 7 or later version.
  • RichText supprt (wxHaskell doesn't support wxRichText* classes currently).
  • Better internet support.
  • Better clipboard, copy and past support.
  • Type-safe XRC support.
  • ...

See also Haskell.org's GSoC (Google Summer of Code) project idea page ticket #1550.