On Sep 5, 2006, at 3:06 PM, Rob Burns wrote:
I'm trying to understand how the FontManager interfaces with
WebView. to alter the behavior and replicate in other ways. Does
anyone know how FontManager doe s its magic with WebView? What
methods are called, etc.? Looking at Blot.app for example, the
"Bold" menu item targets FontManager addFontTrait method. After
that how does the WebView end up inserting " <SPAN class="Apple-
style-span" style="font-weight: bold;"></SPAN>" wrapped around the
selectedDOMRange? I imagine much of this happens in the black-box
of the FontManager, but what method finally get called in the
WebKit APIs?
A great way to figure this out is to set a breakpoint in a low level
function. In this case, a good example is
'WebCore::createStyleSpanElement'.
You'll see that's called by these functions (with many less important
ones in between):
ApplyStyleCommand::doApply
Frame::applyStyle
-[WebCoreFrameBridge applyStyle:withUndoAction:]
-[WebHTMLView _applyStyleToSelection:withUndoAction:]
-[WebHTMLView changeFont:]
The tricky bit is inside a method called by changeFont:, called -
[WebHTMLView _styleFromFontManagerOperation], which has the job of
figuring out what kind of font manager operation the font panel had
in mind. The panel doesn't just pass "make this bold", sadly.
-- Darin
_______________________________________________
webkit-dev mailing list
webkit-dev@opendarwin.org
http://www.opendarwin.org/mailman/listinfo/webkit-dev