2004-05-21 Marek Safar <marek.safar@seznam.cz>
[mono.git] / web / winforms
index 3e1b7d3053f660a98414f9260567783099a55b22..b93c633a1a47d7f5f2fe4fa8b6c74cb3f35dc64e 100644 (file)
@@ -1,90 +1,52 @@
 * 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.
-
-       There are no current plans to support embedded devices, but
-       Gtk/FrameBuffer is an option.  If you have suggestions or
-       recommendations, please let us <a
-       href="mailto:mono-hackers-list@ximian.com">let us know</a>
-
-* Contributing
-
-       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
-
-       Using existing libraries to implement some of the functionality required
-
-       <ul>
-               * gdk-pixbuf is a generic image loader that loads an image
-                 and leaves it into an RGB buffer.  It hides all the details
-                 about what image file format is being loaded.
-
-               * Libart is a general framework for rendering RGB/RGBA
-                 buffers into RGB buffers and rendering postscript-like paths into
-                 RGB/RGBA buffers.
-       </ul>
-
-       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.
-
-       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).
+       <p>Currently Windows.Forms support is under development. Check Mono's <a 
+       href = "http://www.go-mono.com/mono-roadmap.html">Roadmap</a> for more 
+       details on when it is going to be available.
+
+       <p>System.Windows.Forms in Mono is implemented using System.Drawing and 
+       Wine. This allows applications that use P/Invoke to call Win32 functions 
+       or rely on event delivery through the Wndproc method to work as 
+       expected. This is the path of best compatibility.
+       
+       <p>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. 
+       
+* Installation
 
-       A few things to keep in mind:
+       <p>To get the Windows.Forms support working, you need:
        
        <ul>
        
-               * gdk-pixbuf can be used to load images for Gtk+,
-                 MacOS X and Windows, it should be pretty portable,
-                 although we might need in the future to back-port
-                 some new features from Gtk head. 
-
-               * Libart is probably only going to be used with X11,
-                 as the MacOS X provides the same features in Quartz,
-                 and Win32 *probably* has that in GDI+.  If not, we
-                 should use libart in Win32 as well (or for older
-                 Windows systems).
+       <li> The latest <a href = "http://www.go-mono.com/download.html">Mono</a> package.
+       <li> The latest <a href = "http://www.go-mono.com/download.html">libgdiplus</a> library.
+       <li> The latest <a href = "http://www.cairographics.org/download">Cairo</a> vector graphics library.
+       <li> A recent copy of <a href="http://www.winehq.com/">Wine</a>.
+       <li> A recent copy of WineLib (do a cvs co winelib from Mono's CVS).
+       
        </ul>
 
-* Directory Layout
-
-        System.Drawing  (assembly directory)
-                System.Drawing.Blah
-                        Common code for "Blah"
-                        Stubs for "Blah" to ease ports.
+* Contributing
 
-                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"
+       <p>The Winforms effort is being coordinated in the <a
+       href="mailto:mono-winforms-list@ximian.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">mono-winforms-list-request@ximian.com</a>.
+               
+       <p>If you want to help, you can pick a control and start implementing it's 
+       methods. You can do this either on Windows or on Linux. Try using 
+       System.Drawing calls instead of P/Invoked Win32 calls. 
+
+       <p>If you choose a particular control to work on, send a note to the 
+       winforms list to avoid duplication of effort. 
+       
 
-       Then we use nant targets to include/exclude the right set of
-       files to create the assembly.
+* System.Drawing
 
-* Open questions:
+       <p>For details, see the <a
+       href="drawing.html">System.Drawing implementation notes</a>
+       section of the web site.
 
-       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.