пример плагинов Mac Firefox? - PullRequest
0 голосов
/ 18 февраля 2010

Я пытаюсь переписать старый плагин для просмотра изображений для Mac.Старая версия использует QuickDraw (я сказал, что он старый) и ресурсы (действительно очень старые), и поэтому он не работает в Firefox 3.6 (поэтому я переписываю его)

Я знаю некоторыеЦель C, и поэтому я полагаю, что я собираюсь переписать это с использованием новомодных подпрограмм Mac, перьев и т. Д. Однако я не знаю, с чего начать.У меня есть пример BasicPlugin, который поставляется с исходным кодом Mozilla, поэтому я знаю, как создать плагин с точками входа и т. Д. Однако я не знаю, как создать перо и как связать Obj-C с точками входа,и т.д.

Кто-нибудь знает более продвинутый образец для Mac, чем BasicPlugin.bundle?(Желательно достаточно просто, чтобы я мог просто посмотреть и понять это ...)

спасибо.

1 Ответ

2 голосов
/ 19 февраля 2010

К сожалению, я действительно не знаю ни одного хорошего "промежуточного" примера. Однако интегрировать Obj-C не так уж и сложно. Таким образом, ниже приведен краткий обзор того, что необходимо сделать.

Вы можете использовать Obj-C и C / C ++ - источники в одном проекте, просто рекомендуется держать их в некоторой степени разделенными. Например, это можно сделать, позволив исходному файлу с точками входа и другим интерфейсом NPAPI оставаться простыми файлами C или C ++ и, например, переадресация звонков в плагин оттуда.
Непрозрачные указатели помогают поддерживать чистое разделение, см., Например, здесь .

Основные изменения в вашем плагине включают переключение на различные модели чертежей и событий. Они должны быть согласованы в NPP_New(), здесь является примером для модели чертежа. При использовании Какао и для поддержки 64-битных сред необходимо использовать модель событий Какао .

Для рисования элементов пользовательского интерфейса вы можете использовать NSGraphicsContext из CGContextRef, а затем нарисовать NSView в контексте . См. Также подробности, приведенные в этом сообщении и его последующих действиях.

...