Руководство по написанию плагинов к FairyEdit
=========================================
Исходный код этого файла и всех плагинов открыт и вы можете сами
их изучать изнутри
В отличие от большинства программ, являющихся монолитными продуктами,
FairyEdit представляет собой компактный модуль, к которому вы можете
подключать внешние программы. Сама по себе возможность подключения плагинов
не уникальна, но в случае с FairyEdit потенциал расширения функциональности
просто огромен.
Так что такое плагин? Плагин – дополнение к программе, расширяющее ее возможности.
Т.е., например, чтобы создать плагин к графическому редактору, который бы выполнял
преобразование изображений, нужно предусмотреть как минимум две функции в плагине
(и, соответственно, вызвать эти функции в программе) – функция, которая бы возвращала
имя плагина (и/или его тип), чтобы добавить этот плагин в меню (или в тулбар), плюс
главная функция – передачи и приема изображения. Т.е. сначала программа ищет плагины,
потом для каждого найденного вызывает его опозновательную функцию со строго определенным
именем (например, GetPluginName) и добавляет нужный пункт в меню, затем, если
пользователь выбрал этот пункт – вызывает вторую функцию, которой передает входное
изображение (либо имя файла, содержащего это изображение), а эта функция, в свою очередь,
обрабатывает изображение и возвращает его в новом виде (или имя файла с новым изображением).
Сам
API плагинов предельно прост и прозрачен. Все функции с преффиксом Get что-то
возвращают, а с Set – наоборот устанавливают значения. Например, FE_GetSelText возвращает часть
текста, которую пользователь выделил в окне редактора, а с помощью FE_SetSelText это значение
можно поменять на другое. Если преффикс Is, то функция проверяет, является ли действие
(переменная) верными или нет. Например, FE_IsNumber проверяет, является ли строка числом.
Плагин представляет собой микропрограмму, обычную системную библиотеку dll, которая
общается с библиотекой fairyedit.dll (библиотека fairyedit.dll является как бы мостом между
программой и плагином) и самой программой. Но благодаря многим функциям, которые
понимает программа (
API), эти библиотеки позволяют расширить возможности программы FairyEdit,
встраиваются в меню и отдельные элементы программы. Обратите внимание на заблуждение: если
плагин использует
API FairyEdit, это еще не значит, что он должен пользоваться только
этими функциями, наоборот, в вашем арсенале все многообразие возможностей выбраной для
разработки среды программирования; при таком подходе простор для творчества становиться просто
безграничным.
Плагин может встраиваться в разных местах меню программы и другие элементы. Например,
простой плагин "Дата и время" (позволяет вставлять дату и время в редактор в разных форматах)
встраивается в главное меню "Вставить", откуда его можно задействовать. В результате появится
диалог, в котором можно выбрать формат времени или даты и вставить в текст параграфа. Другой
пример, плагин "Кубомет" (виртуальные кубики) активируется из другого меню и т. д. За
это положение отвечает метод плагина GetPluginType, тоесть тип плагина. Простой индекс, число
от 1. Все значения этого метода читайте в дополнении к руководству. Имя плагина, тот текст,
что мы видим в меню, определяется методами GetPluginName и GetPluginHint (название и подсказка).
GetPluginVersion возвращает версию плагина, а GetPluginFEVersion – минимальную версию редактора,
с которой работает плагин (в противном случае редактор может показывать ошибки и сбоить).
GetPluginAuthor и подобные методы дают нам информацию об авторе, его електронную почту для
связи, адрес в сети, где можно скачать новую версию плагина и прочее.
При активации плагина из программы, вызывается метод плагина ShowPlugin, (показать плагин,
запустить плагин) который и запускает плагин в действие. Если в плагине есть диалог, и
он запускается методом ShowPlugin, то этот диалог запуститься, как обычный диалог FairyEdit.
При создании своего плагина можно использовать не все методы из перечисленных, а только
самые нужные, остальные можно упустить. Наверное самый простой метод создать плагин – это
использовать специальный шаблон (можно скачать на сайте) fairyedit_plugin_template.zip.
Извлеките архив в нужную папку, откройте файл untLib.pas и отредактируйте нужные методы,
благо, там много подсказок, так что не заблудитесь. Остальное добавить по собственному
вкусу
FairyEdit — расширяемый редактор книг-игр. Если вы желаете иметь большое количество настроек,
визуальных улучшений и разных возможностей — ставьте плагины. Если чего-то не хватает – пишите плагин сами! Это просто!