3 System.Windows.Forms is currently being implemented using the
4 Win32 API, we will be using <a
5 href="http://www.winehq.com">WineLib</a> on Unix systems to
8 Although the original plans were to use Gtk on X and Cocoa on
9 MacOS X, it would be very hard to emulate the event model in
10 which some Winforms applications depend, and it would be very
11 hard to implement the Wndproc method.
13 In terms of integrating visually with the desktop, we are
14 hoping to contribute to the Wine project an mechanism to make
15 it use the Gtk+ themes on X11 and Cocoa on MacOS to render the
16 widgets, and get the native look and feel on each of these
19 There are no current plans to support embedded devices, but
20 Gtk/FrameBuffer is an option. If you have suggestions or
21 recommendations, please let us <a
22 href="mailto:mono-hackers-list@ximian.com">let us know</a>
26 The Winforms effort is being coordinated in the <a
27 href="mailto:mono-winforms-list@ximian.com:.com">mono-winforms-list@ximian.com</a>.
28 If you are interested in helping out with this effort,
29 subscribe to it by sending an email message to <a
30 href="mailto:mono-winforms-list-request@ximian.com:.com">mono-winforms-list-request@ximian.com</a>.
32 Please read the README document in the
33 System.Windows.Forms/WINElib directory for details about how
34 to build the Windows.Forms support for Mono.
38 Using existing libraries to implement some of the
39 functionality required:
42 * gdk-pixbuf is a generic image loader that loads an image
43 and leaves it into an RGB buffer. It hides all the details
44 about what image file format is being loaded.
46 * Libart is a general framework for rendering RGB/RGBA
47 buffers into RGB buffers and rendering postscript-like paths into
51 We want to use gdk-pixbuf as the image loader for the image
52 classes, and then we need operations to render that into the
53 windowing system (Gtk+, MacOS, etc). But notice how there is
54 very little dependnecies in Gdk-pixbuf on gtk, and libart has
57 They are pretty independent from a windowing system
58 (gdk-pixbuf comes with some "helper" routines for rendering
59 data into a pixmap and to load pixmaps into RGB buffers).
61 A few things to keep in mind:
65 * gdk-pixbuf can be used to load images for Gtk+,
66 MacOS X and Windows, it should be pretty portable,
67 although we might need in the future to back-port
68 some new features from Gtk head.
70 * Libart is probably only going to be used with X11,
71 as the MacOS X provides the same features in Quartz,
72 and Win32 *probably* has that in GDI+. If not, we
73 should use libart in Win32 as well (or for older
80 System.Drawing (assembly directory)
82 Common code for "Blah"
83 Stubs for "Blah" to ease ports.
87 Gtk ports of "System.Drawing.Blah"
90 MacOS ports of "System.Drawing.Blah"
93 Win32 ports of "System.Drawing.Blah"
96 Notice that there is a proof of concept Gtk-backend for
97 Windows.Forms, but nobody is working on it, and for the
98 reasons stated before it is not a long term strategy.
102 I believe that the graphics contexts that are used to render
103 can accept either libart-like rendering operations and
104 X11-like rendering operations. This complicates matters, but
105 I am not sure. Someone needs to investigate this.