« Поддержка жестов мышью Руководство пользователя gEDA gschem Содержание »

Расширение функциональности gschem

Так как файлы настроек gschem представляют собой скрипты на языке Scheme, в них заложена возможность расширения функциональности gschem с помощью определения новых функций обработки объектов и страниц.

В gschem (и других утилитах gEDA/gaf, таких как, например, gnetlist) для обеспечения возможности написания скриптов на Scheme используется Guile Scheme, и в распоряжении разработчика оказываются все возможности языка Guile. Справочное руководство по Guile [Guile Reference Manual] можно найти либо в формате Info (info guile на большинстве систем), либо в формате HTML на веб-странице Guile.

Для доступа к объектам и страницам gEDA и для их изменения имеется набор модулей, называемый gEDA Scheme API. Есть и Справочное руководство по Scheme в gEDA [gEDA Scheme Reference Manual] в формате Info (info geda-scheme).

Добавление действия

Действия — это отложенные вычисления [thunks], то есть процедуры Scheme, не принимающие аргументов. Чтобы программа gschem могла их найти, они должны быть определены в верхнеуровневом модуле, поэтому для добавления действия необходимо предпринять один из следующих шагов:

Затем как обычно — с помощью global-set-key — процедуру можно будет привязать к сочетанию клавиш.

Перехват встроенных действий

gschem позволяет регистрировать функции, называемые функциями перехвата [hooks], которые должны выполняться при выполнении пользователем встроенной функции. Возможность работы с ними предоставляется модулем Guile (gschem hook). Более подробную информацию об этом см. в разделе Hooks в gEDA Scheme Reference Manual.

Процедуры для разработчиков расширений

В дополнение к функциям gEDA Scheme API, в gschem для удобства разработчиков расширений предусмотрено несколько вспомогательных процедур.

Нет гарантии, что функции, приведённые в этом разделе, не будут меняться в последующих версиях gEDA/gaf. Для обеспечения стабильности в долгосрочной перспективе используйте только gEDA Scheme API.

Функция Описание
gschem-print Экспорт в выходной файл в формате PostScript (см. раздел Печать), имя которого либо задаётся с помощью ключа командной строки -o, либо, если данный ключ не задан, устанавливается в значение по умолчанию, определённое в самой функции.
gschem-postscript ИМЯ_ФАЙЛА Экспорт PostScript в файл ИМЯ_ФАЙЛА.
gschem-image ИМЯ_ФАЙЛА Экспорт изображения (см. раздел Экспорт изображений) в выходной файл, указанный с помощью ключа -o, или, если данный ключ не задан, в файл ИМЯ_ФАЙЛА.
gschem-exit Немедленный выход из gschem. Внимание: если у пользователя были несохранённые изменения в схемах, возможности их сохранить у него уже не будет.
gschem-log СООБЩЕНИЕ Записать СООБЩЕНИЕ в журнал gschem.
gschem-msg СООБЩЕНИЕ Открыть информационное диалоговое окно с текстом СООБЩЕНИЕ.
gschem-confirm СООБЩЕНИЕ Открыть диалоговое окно подтверждения с кнопками “Да” [“Yes”] и “Нет” [“No”] и текстом СООБЩЕНИЕ. Возвратить #t, если пользователь выберет “Да”, или #f в противном случае.
gschem-filesel СООБЩЕНИЕ ШАБЛОН ФЛАГИ Открыть диалоговое окно выбора файла с текстом СООБЩЕНИЕ в заголовке и установленным по умолчанию именем файла ШАБЛОН. ФЛАГИ управляют поведением диалогового окна выбора файла, и должны быть списком строк. В списке ФЛАГИ можно задавать следующие строки: “may_exist”, если допускается, что выбранный файл уже существует; “must_exist”, если выбранный файл уже должен существовать; “must_not_exist”, если выбранный файл ещё не должен существовать; “save” для вызова диалогового окна сохранения файла; “open” для вызова диалогового окна открытия файла.