| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- * System.Windows.Forms
- <p>Currently Windows.Forms support is under heavy 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. 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.
-
- <p>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.
- <p>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?
- <ul>
- <li>Debugging with Wine was extremely hard, and Wine was a moving target,
- some of the calls we relied on changed from release to release.
- <li>Wine/GDI+ interactions were not efficient.
- <li>Too many cooks contributed to the core, so it was hard to maintain.
- <li>To many dependencies on install, many people where having problems getting
- the very strict winelib requirements right.
- </ul>
- 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
- <p>To get the Windows.Forms support working, you need:
-
- <ul>
-
- <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.
-
- </ul>
- 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.
- <p>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
- <p>The Winforms effort is being coordinated in the <a
- href="mailto:[email protected]">[email protected]</a>.
- If you are interested in helping out with this effort,
- subscribe to it by sending an email message to <a
- href="mailto:[email protected]">[email protected]</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. All controls must be drawn
- using System.Drawing calls, tied into the themeing interface, and not stubbed.
- <p>If you choose a particular control to work on, send a note to the
- winforms list to avoid duplication of effort.
-
- * System.Drawing
- <p>For details, see the <a
- href="drawing.html">System.Drawing implementation notes</a>
- section of the web site.
|