Let me rephrase the subject line.

What I mean to ask is this:

In a Netscape plugin, if NPDrawingModelQuickDraw and NPEventModelCarbon are not 
available   :-)   how does one get a reference to the window or NSView that a 
plugin is contained in?

With the Carbon event model, the "window" field of the NPWindow passed via 
SetWindow contains a WindowRef which is sufficient to draw and attach Drag 
Manager handlers.

However, after reading the docs and looking at the Moz. code, if the event 
model is NPEventModelCocoa the "window" field is always NULL. This seems to be 
because that drawing now takes places via the new Cocoa "draw" event which 
provides the CGContextRef.   However, this seems to ignore the need to access 
the window for things other than drawing.

After reading and debugging WebKit, it appears that the very reference I need 
is stuffed into the instance->ndata field that's passed to me at creation time. 
 Yea!   But, I'm assuming that this isn't a recommended source so I'm asking 
the plugin gurus - how I can get access to the appropriate Cocoa objects in an 
approved and supported way.  [Please forgive me if there's an obvious Cocoa way 
to do this - I'm new to the runtime environment and am still absorbing the many 
PDFs documenting it...]


Thanks for any help you can provide...

-doug.

Ps.   One thing I have noticed is that few, if any, of the Netscape code 
samples out there handle the Snow Leopard case where the event and drawing 
models are forced on you and are different from the status quo.  For example, 
most still use the Carbon event model.  Are there any Snow Leopard-friendly 
examples of a Netscape plugin out there?

PPs.  I know that it's trivial to get this information when writing a 
WebKit-style plugin - it's given to you by the WebKitPluginFactory. My 
requirement is to avoid shipping and maintaining two plugins at all cost which 
is why I'm using NS.
_______________________________________________
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev

Reply via email to