* System.Windows.Forms
- System.Windows.Forms eventually will support multiple
- toolkits. Ximian will be delivering a product that will allow
- for System.Windows.Forms applications to integrate with GNOME
- through Gtk and MacOS X using Cocoa.
+ System.Windows.Forms is currently being implemented using the
+ Win32 API, we will be using <a
+ href="http://www.winehq.com">WineLib</a> on Unix systems to
+ emulate the Win32 API.
+
+ This means that those who want to contribute to the effort can
+ develop and test classes today using Windows and P/Invoke
+ calls to Win32 and we will then just run the result on Unix.
+
+ In terms of integrating visually with the desktop, we are
+ hoping to contribute to the Wine project an mechanism to make
+ it use the Gtk+ themes on X11 and Cocoa on MacOS to render the
+ widgets, and get the native look and feel on each of these
+ platforms.
There are no current plans to support embedded devices, but
Gtk/FrameBuffer is an option. If you have suggestions or
* Contributing
- Currently Ximian developers are busy making our JIT engine
- feature complete, and dealing with the low-level details of
- the Mono runtime.
+ The Winforms effort is being coordinated in the <a
+ href="mailto:mono-winforms-list@ximian.com:.com">mono-winforms-list@ximian.com</a>.
+ If you are interested in helping out with this effort,
+ subscribe to it by sending an email message to <a
+ href="mailto:mono-winforms-list-request@ximian.com:.com">mono-winforms-list-request@ximian.com</a>.
+
+ If you want to help, you can start by writing a control and
+ testing it with Windows today (or you can also try to build
+ the existing library on Linux, but this is a bit more
+ complicated).
- If you are interested in contributing, you can start stubbing
- out classes and providing enumerations. That will help us
- significantly when we start working on the actual bindings.
+ See the file mcs/class/System.Windows.Forms/CheckOutList for
+ details on who is working on which class.
- Christian Meyer is currently organizing this effort.
+ Please read the README document in the
+ System.Windows.Forms/WINElib directory for details about how
+ to build the Windows.Forms support for Mono.
* System.Drawing
- Using existing libraries to implement some of the functionality required
+ Using existing libraries to implement some of the
+ functionality required:
<ul>
* gdk-pixbuf is a generic image loader that loads an image
* Directory Layout
+<pre>
System.Drawing (assembly directory)
System.Drawing.Blah
Common code for "Blah"
MacOS
System.Drawing.Blah
MacOS ports of "System.Drawing.Blah"
- Win32
+ WineLIB
System.Drawing.Blah
Win32 ports of "System.Drawing.Blah"
+</pre>
- Then we use nant targets to include/exclude the right set of
- files to create the assembly.
+ Notice that there is a proof of concept Gtk-backend for
+ Windows.Forms, but nobody is working on it, and for the
+ reasons stated before it is not a long term strategy.
* Open questions:
can accept either libart-like rendering operations and
X11-like rendering operations. This complicates matters, but
I am not sure. Someone needs to investigate this.
+
+* Historical
+
+ Although the original plans were to use Gtk on X and Cocoa on
+ MacOS X, it would be very hard to emulate the event model in
+ which some Winforms applications depend, and it would be very
+ hard to implement the Wndproc method.
+