2009-06-08 Carlos Alberto Cortez <calberto.cortez@gmail.com>
[mono.git] / mcs / class / Managed.Windows.Forms / Design
index ca17942cdade03714d032023c477e431a151a996..c9fa450d553d2d0c85bf5a67f5e4d02bd0e470ed 100644 (file)
@@ -24,19 +24,21 @@ The new implementation takes advantage of Win32 APIs on Windows and
 emulates the same on Linux using X11 for window management and events.
 Following gives a high level idea of the new implementation of SWF.
 
-         --------------------------
-         |      Managed SWF       |
-         --------------------------
-         |XplatUI Driver Interface|
-         --------------------------
-         | X11 Driver|Win32 Driver|
-         |           |            |
-         |  Mono on  |  Mono on   |
-         | Linux/Mac |  Windows   |
-         --------------------------
+         -------------------------------------
+         |             Managed SWF           |
+         -------------------------------------
+         |      XplatUI Driver Interface     |
+         -------------------------------------
+         | X11 Driver|Win32 Driver|OSX Driver|
+         |           |            |          |
+         |  Mono on  |  Mono on   | Mono on  |
+         | Linux/Mac |  Windows   | Mac OS/X |
+         -------------------------------------
 
 The above picture explains how the window management is done in the new
 implementation. For drawing the controls System.Drawing library is used.
+To handle some special needs for different platforms, there are a few 
+limited patches to System.Drawing to deal with calls from System.Windows.Forms
 
 
 2. Design:
@@ -53,16 +55,6 @@ respectively for Linux/Mac and Windows platforms. Support for any new platform
 can be added simply by implementing XplatUIDriver for the new platform.
 
 
-2a. Double Buffering:
-=====================
-
-For drawing controls double buffering used, so that a better performance
-can be achieved. Every controls maintains a bitmap image of itself. This
-image is used for painting the screen when a paint event is raised. When
-a control property changes the look of the control, it redraws the bitmap
-image. [Please see the guidelines document]
-
-
 2b. Themes:
 ===========
 
@@ -79,12 +71,14 @@ itself)
 2c. Multi-threading:
 ====================
 
-   - To be added.
+   As of this writing, multi-threading was fully supported, provided the 
+   standard Microsoft implementation guidelines involving Invoke() are
+   followed.
 
 
 
 2d. Issues:
 ===========
 
-   - To be added.
+   - To be added when MWF reaches completion