[Mono-winforms-list] Project status of WinForms on MacOS

Brock Reeve Brock.Reeve at ni.com
Thu Nov 1 11:00:11 EDT 2007

Hey Geoff,

I have been playing with your stuff on the Mac. Basic things are working 
and I am impressed. I am also impressed with the whole WindowsForms cross 
platform effort thus far. We have tested some of our custom WindowsForms 
components on Linux and for the most part things work (we haven't done 
exhastive testing. Have submitted a few bugs).

I have a question about supporting the MacOS aqua stuff. I know the 
WindowsForms stuff has the Theme classes that do the drawing, but that 
seems to be a lot of work to draw all this stuff using GDI+. I was playing 
around with DrawThemeButton in the Carbon stuff to try and draw a themed 
button. My current approach (which is not working) was to derivie from 
Button and draw in OnPaint by calling DrawThemeButton from there. I am new 
to the Mac API's (Carbon and Cocoa) but I think the MacOS only allows 
drawing at certain times. From examples of DrawThemeButton, they put the 
call inside of the event loop callback's kEventControlDraw (we have that 
code in XplatUIOSX.cs). I haven't tried this solution but it is obviously 
not the right place to put the call because all the drawing is abstracted 
out into the Theme classes.

Has anyone thought about this or gotten DrawTheme stuff to work?

- Brock

Geoff Norton <gnorton at novell.com> 
10/29/2007 12:59 PM

Brock Reeve <Brock.Reeve at ni.com>
mono-winforms-list <mono-winforms-list at lists.ximian.com>
Re: [Mono-winforms-list] Project status of WinForms on MacOS

> - How much support does this effort have? I know the windowing side is 
> early ( XplatUIOSX ).

Its still very premature to consider using it for deployed applications, 
however its far enough along that you can start working with it / 
submitting patches for it :)
> - Do you guys know the state of Cairo to Quartz. I have heard things 
> that it is just drawing to a bitmap and then drawing that instead of 
> using the raw Quartz API's. There has been work on it recently.

Cairo currently draws to a CGBitmapContext and blits the result to a 
real CGContext.  This is slower than drawing directly on a CGContext but 
there are a number of reasons that cairo does this (mostly explained in 
the cairo-quartz-surface.c file).


-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.ximian.com/pipermail/mono-winforms-list/attachments/20071101/cf7d3c95/attachment.html 

More information about the Mono-winforms-list mailing list