winforms 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. * System.Windows.Forms
  2. <p>Currently Windows.Forms support is under heavy development. Check Mono's <a
  3. href = "http://www.go-mono.com/mono-roadmap.html">Roadmap</a> for more
  4. details on when it is going to be available.
  5. <p>System.Windows.Forms in Mono is implemented using System.Drawing. All controls
  6. are natively drawn through System.Drawing. System.Windows.Forms implements it's own
  7. driver interface to communicate with the host OS windowing system. Currently,
  8. we have a driver for Win32 and a driver for X11.
  9. The drivers translate the native window messages into WndProc compatible messages,
  10. to provide as much compatibility with native .Net as possible.
  11. <p>In terms of integrating visually with the desktop, we have a (still incomplete)
  12. themeing interface, currently with a classic Win32 theme and a Gtk theme.
  13. <p>The current implementation is still very incomplete, with several large controls
  14. (Edit, ListBox, ComboBox, Menus), etc, still being developed. It is too early to
  15. file bugs if you cannot compile or run a certain application because of controls
  16. missing.
  17. * Why not use Wine?
  18. <ul>
  19. <li>Debugging with Wine was extremely hard, and Wine was a moving target,
  20. some of the calls we relied on changed from release to release.
  21. <li>Wine/GDI+ interactions were not efficient.
  22. <li>Too many cooks contributed to the core, so it was hard to maintain.
  23. <li>To many dependencies on install, many people where having problems getting
  24. the very strict winelib requirements right.
  25. </ul>
  26. The driver interface should allow us to also create a Wine based driver for
  27. System.Windows.Forms, to support applications performing Win32 P/Invokes, but
  28. for now this is not a priority.
  29. * Installation
  30. <p>To get the Windows.Forms support working, you need:
  31. <ul>
  32. <li> The latest <a href = "http://www.go-mono.com/download.html">Mono</a> package.
  33. <li> The latest <a href = "http://www.go-mono.com/download.html">libgdiplus</a> library.
  34. <li> The latest <a href = "http://www.cairographics.org/download">Cairo</a> vector graphics library.
  35. </ul>
  36. The current source of System.Windows.Forms resides in mcs/class/Managed.Windows.Forms.
  37. The previous version of System.Windows.Forms, based on Wine, still can be found in
  38. mcs/class/System.Windows.Forms, but it is no longer being worked on.
  39. <p>To use the latest version, go into Managed.Windows.Forms and issue a 'make clean',
  40. followed by a 'make install'. Afterwards, the new implementation should be available
  41. in the GAC for your use.
  42. * Contributing
  43. <p>The Winforms effort is being coordinated in the <a
  44. href="mailto:[email protected]">[email protected]</a>.
  45. If you are interested in helping out with this effort,
  46. subscribe to it by sending an email message to <a
  47. href="mailto:[email protected]">[email protected]</a>.
  48. <p>If you want to help, you can pick a control and start implementing it's
  49. methods. You can do this either on Windows or on Linux. All controls must be drawn
  50. using System.Drawing calls, tied into the themeing interface, and not stubbed.
  51. <p>If you choose a particular control to work on, send a note to the
  52. winforms list to avoid duplication of effort.
  53. * System.Drawing
  54. <p>For details, see the <a
  55. href="drawing.html">System.Drawing implementation notes</a>
  56. section of the web site.