X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=web%2Fwinforms;h=a9a5e8ae54cd539a08ac0318e145162987b8534b;hb=feca28835d4e3cb2be67bdcbd4f54fee62c3797a;hp=b93c633a1a47d7f5f2fe4fa8b6c74cb3f35dc64e;hpb=2645a7fdba52c5244a7b1135e28631ce7683743d;p=mono.git diff --git a/web/winforms b/web/winforms index b93c633a1a4..a9a5e8ae54c 100644 --- a/web/winforms +++ b/web/winforms @@ -1,19 +1,42 @@ * System.Windows.Forms -

Currently Windows.Forms support is under development. Check Mono's Currently Windows.Forms support is under heavy development. Check Mono's Roadmap for more details on when it is going to be available. -

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. - -

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. +

System.Windows.Forms in Mono is implemented using System.Drawing. All controls + are natively drawn through System.Drawing. System.Windows.Forms implements it's own + driver interface to communicate with the host OS windowing system. Currently, + we have a driver for Win32 and a driver for X11. + The drivers translate the native window messages into WndProc compatible messages, + to provide as much compatibility with native .Net as possible. +

In terms of integrating visually with the desktop, we have a (still incomplete) + themeing interface, currently with a classic Win32 theme and a Gtk theme. + +

The current implementation is still very incomplete, with several large controls + (Edit, ListBox, ComboBox, Menus), etc, still being developed. It is too early to + file bugs if you cannot compile or run a certain application because of controls + missing. + +* Why not use Wine? + +

+ + The driver interface should allow us to also create a Wine based driver for + System.Windows.Forms, to support applications performing Win32 P/Invokes, but + for now this is not a priority. + + * Installation

To get the Windows.Forms support working, you need: @@ -23,11 +46,17 @@

  • The latest Mono package.
  • The latest libgdiplus library.
  • The latest Cairo vector graphics library. -
  • A recent copy of Wine. -
  • A recent copy of WineLib (do a cvs co winelib from Mono's CVS). + The current source of System.Windows.Forms resides in mcs/class/Managed.Windows.Forms. + The previous version of System.Windows.Forms, based on Wine, still can be found in + mcs/class/System.Windows.Forms, but it is no longer being worked on. + +

    To use the latest version, go into Managed.Windows.Forms and issue a 'make clean', + followed by a 'make install'. Afterwards, the new implementation should be available + in the GAC for your use. + * Contributing

    The Winforms effort is being coordinated in the mono-winforms-list-request@ximian.com.

    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. + methods. You can do this either on Windows or on Linux. All controls must be drawn + using System.Drawing calls, tied into the themeing interface, and not stubbed.

    If you choose a particular control to work on, send a note to the winforms list to avoid duplication of effort.