X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=doc%2Fwinforms;h=e2b3ad5939852d313b6a819ebc24de4b8fbc4edc;hb=c25d8405e22b09f3a1927a3b5b63b9e7d5629eb4;hp=2d8c1e3d79d73861f9e95159a0941d1eb121f33e;hpb=3bf8e3a8d0105ea81cd687f4dc51c71066cc5fd1;p=mono.git diff --git a/doc/winforms b/doc/winforms index 2d8c1e3d79d..e2b3ad59398 100644 --- a/doc/winforms +++ b/doc/winforms @@ -1,90 +1,98 @@ * 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. + Currently Windows.Forms support is not finished. - There are no current plans to support embedded devices, but - Gtk/FrameBuffer is an option. If you have suggestions or - recommendations, please let us let us know - -* Contributing + The System.Windows.Forms effort is taking two paths: - Currently Ximian developers are busy making our JIT engine - feature complete, and dealing with the low-level details of - the Mono runtime. - - 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. - - Christian Meyer is currently organizing this effort. + -* System.Drawing +* 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. + + 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 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. + + +
- Using existing libraries to implement some of the functionality required +* Gtk# based - + There are no current plans to support embedded devices, but + Gtk/FrameBuffer is an option. If you have suggestions or + recommendations, please let us let us know - 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. +* Contributing - 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). + 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. - A few things to keep in mind: - - + 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). -* Directory Layout + See the file mcs/class/System.Windows.Forms/CheckOutList for + details on who is working on which class. - System.Drawing (assembly directory) - System.Drawing.Blah - Common code for "Blah" - Stubs for "Blah" to ease ports. + Please read the README document in the + System.Windows.Forms/WINElib directory for details about how + to build the Windows.Forms support for Mono. - Gtk - System.Drawing.Blah. - Gtk ports of "System.Drawing.Blah" - MacOS - System.Drawing.Blah - MacOS ports of "System.Drawing.Blah" - Win32 - System.Drawing.Blah - Win32 ports of "System.Drawing.Blah" +* System.Drawing - Then we use nant targets to include/exclude the right set of - files to create the assembly. + 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. -* 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.