示例mac Firefox插件?

时间:2010-02-18 19:53:52

标签: objective-c macos npapi browser-plugin

我正在尝试为mac重新编写一个旧的图像查看插件。旧版本使用QuickDraw(我说它已经老了)和资源(真的很旧)所以它在Firefox 3.6中不起作用(这就是为什么我要重写它)

我知道一些Objective C,所以我认为我将使用新奇的Mac例程和笔尖等重新编写这个。但是,我不知道如何开始。我有Mozilla源代码附带的BasicPlugin示例,所以我知道如何使用入口点等创建插件。但是,我不知道如何创建nib,以及如何将Obj-C与入口点接口,等

有没有人知道比BasicPlugin.bundle更高级的mac样本? (最好是足够简单,我可以只看它并理解它......)

感谢。

1 个答案:

答案 0 :(得分:2)

可悲的是,我真的不知道任何好的“中间”示例。但是,整合Obj-C并不困难。因此,下面简要概述了需要做的事情。

你可以在同一个项目中使用Obj-C和C / C ++ - 来源,只是推荐它们在某种程度上保持分离。例如,这可以通过让具有入口点和其他NPAPI接口的源文件保持普通的C或C ++文件来完成,例如,从那里转发插件到插件 Opaque pointers有助于保持清晰的分离,例如here

插件的主要更改包括切换到不同的绘图和事件模型。这些必须在NPP_New()中进行协商,here是绘图模型的示例。使用Cocoa并支持64位环境时,您需要使用Cocoa event model

要绘制UI元素,您应该能够使用NSGraphicsContext from the CGContextRef,然后绘制NSView in the context。另请参阅this post及其后续内容中提供的详细信息。