X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=doc%2Fwinforms;h=e2b3ad5939852d313b6a819ebc24de4b8fbc4edc;hb=c25d8405e22b09f3a1927a3b5b63b9e7d5629eb4;hp=30193d57cb5bc56f3d43b1e076e57316fd3aebc7;hpb=4317fc04e2131c40f1705e9e3e6729cc4db73671;p=mono.git diff --git a/doc/winforms b/doc/winforms index 30193d57cb5..e2b3ad59398 100644 --- a/doc/winforms +++ b/doc/winforms @@ -1,20 +1,67 @@ * System.Windows.Forms + Currently Windows.Forms support is not finished. + + The System.Windows.Forms effort is taking two paths: + + + +* Win32/Wine edition. + + To get the Windows.Forms support working, you need a Mono + installation from CVS, and you need to install Wine plus the + OpenLink patch, and + define the environment variable "SWF" (export SWF=1 from your + shell). For more information, see the Mono + Wine Packages page in the Mono Wiki. + + + + + + +
System.Windows.Forms is currently being implemented using the Win32 API, we will be using WineLib on Unix systems to emulate the Win32 API. - - 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. + + 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 + hoping to contribute to the Wine project a 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. + + +
+ +* Gtk# based + + The code is contained in CVS. There are no current plans to support embedded devices, but Gtk/FrameBuffer is an option. If you have suggestions or @@ -23,78 +70,29 @@ * Contributing - The Winforms effort is being coordinated by Dennis Hayes. If you are - interested in helping out with this effort, get in touch with - him. + The Winforms effort is being coordinated in the mono-winforms-list@ximian.com. + If you are interested in helping out with this effort, + subscribe to it by sending an email message to mono-winforms-list-request@ximian.com. -* System.Drawing + 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). - Using existing libraries to implement some of the - functionality required: + See the file mcs/class/System.Windows.Forms/CheckOutList for + details on who is working on which class. - + Please read the README document in the + System.Windows.Forms/WINElib directory for details about how + to build the Windows.Forms support for Mono. - We want to use gdk-pixbuf as the image loader for the image - classes, and then we need operations to render that into the - windowing system (Gtk+, MacOS, etc). But notice how there is - very little dependnecies in Gdk-pixbuf on gtk, and libart has - none. +* System.Drawing - They are pretty independent from a windowing system - (gdk-pixbuf comes with some "helper" routines for rendering - data into a pixmap and to load pixmaps into RGB buffers). + We currently have two code paths: the Wine-based + System.Drawing and the Cairo-based one. We will eventually + unify everything to use Cairo, but currently the effort can + continue with the approach we have. - A few things to keep in mind: - - -* Directory Layout - -
-        System.Drawing  (assembly directory)
-                System.Drawing.Blah
-                        Common code for "Blah"
-                        Stubs for "Blah" to ease ports.
-
-                Gtk
-                        System.Drawing.Blah.
-                                Gtk ports of "System.Drawing.Blah"
-                MacOS
-                        System.Drawing.Blah
-                                MacOS ports of "System.Drawing.Blah"
-                WineLIB
-                        System.Drawing.Blah
-                                Win32 ports of "System.Drawing.Blah"
-
- - 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: - - I believe that the graphics contexts that are used to render - 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.