[cairo] mixing native OSX widgets with a cairo canvas
vladimir at pobox.com
Thu Jan 17 14:27:56 PST 2008
On Jan 16, 2008, at 5:20 PM, Bobby Powers wrote:
> I am starting to work on my pet project, and it requires people to
> be able to add text labels to different parts of a cairo canvas on
> MacOS X. I could just draw a text input box and flash a vertical
> line as a cursor, but I know that Firefox 3 mixes native widgets
> with a cairo canvas to lay out pages, and I was hoping to do the
> same. I've tried adding UI elements as subviews, but it didn't seem
> to work. Does anyone have any suggestions? I downloaded the source
> for the latest FF3 beta, but I must admit I was a little overwhelmed
> and couldn't find anything.
We basically grab the CGContext from the quartz surface, recreate the
cairo_t state, and then make HITheme calls to draw the widget bits.
Check out http://mxr.mozilla.org/seamonkey/source/widget/src/cocoa/nsNativeThemeCocoa.mm
-- specifically the nsNativeThemeCocoa::DrawWidgetBackground method
(called "draw background" because the background is the native part,
and then we draw things like text on top of it).
More information about the cairo