3 Currently Windows.Forms support is not finished.
5 The System.Windows.Forms effort is taking two paths:
8 <li>Win32/Wine-based: This effort will use the Win32
9 API, and use a stub program to run the with Wine.
10 This allows applications that use P/Invoke to
11 function, and event delivery through the Wndproc
12 method to work for the most advanced and custom
13 applications. This is the path of best compatibility.
15 Also, work on a Gtk-based rendered for Wine will be
16 done, to make the user interface integrate with your
19 <li>Gtk# based: This effort will build a subset of
20 Windows.Forms that uses Gtk#. This gives a better
21 integration with the desktop, but will not be
22 completely compatible with the Windows edition. In
23 particular code that uses P/Invoke to call into Win32
24 or overwrite the Wndproc method to achieve special
25 effects will not work.
30 To get the Windows.Forms support working, you need a Mono
31 installation from CVS, and you need to install Wine plus the
32 <a href="http://www.openlinksw.com">OpenLink patch</a>, and
33 define the environment variable "SWF" (export SWF=1 from your
34 shell). For more information, see the <a
35 href="http://www.nullenvoid.com/mono/wiki/index.php/MonoWinePackages">Mono
36 Wine Packages</a> page in the Mono Wiki.
41 System.Windows.Forms is currently being implemented using the
42 Win32 API, we will be using <a
43 href="http://www.winehq.com">WineLib</a> on Unix systems to
44 emulate the Win32 API.
46 This means that those who want to contribute to the effort can
47 develop and test classes today using Windows and P/Invoke
48 calls to Win32 and we will then just run the result on Unix.
50 In terms of integrating visually with the desktop, we are
51 hoping to contribute to the Wine project a mechanism to make
52 it use the Gtk+ themes on X11 and Cocoa on MacOS to render the
53 widgets, and get the native look and feel on each of these
57 <a href="images/WINESWF.JPG"><img src="images/WINESWF-mini.JPG"></a>
64 The code is contained in CVS.
66 There are no current plans to support embedded devices, but
67 Gtk/FrameBuffer is an option. If you have suggestions or
68 recommendations, please let us <a
69 href="mailto:mono-hackers-list@ximian.com">let us know</a>
73 The Winforms effort is being coordinated in the <a
74 href="mailto:mono-winforms-list@ximian.com:.com">mono-winforms-list@ximian.com</a>.
75 If you are interested in helping out with this effort,
76 subscribe to it by sending an email message to <a
77 href="mailto:mono-winforms-list-request@ximian.com:.com">mono-winforms-list-request@ximian.com</a>.
79 If you want to help, you can start by writing a control and
80 testing it with Windows today (or you can also try to build
81 the existing library on Linux, but this is a bit more
84 See the file mcs/class/System.Windows.Forms/CheckOutList for
85 details on who is working on which class.
87 Please read the README document in the
88 System.Windows.Forms/WINElib directory for details about how
89 to build the Windows.Forms support for Mono.
93 We currently have two code paths: the Wine-based
94 System.Drawing and the Cairo-based one. We will eventually
95 unify everything to use Cairo, but currently the effort can
96 continue with the approach we have.