Так как файлы настроек 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 могла их найти, они должны быть определены в верхнеуровневом модуле, поэтому для добавления действия необходимо предпринять один из следующих шагов:
load
) из одного из файлов настроек;use-modules
) из файлов настроек.
Затем как обычно — с помощью global-set-key
— процедуру можно будет
привязать к сочетанию клавиш.
gschem позволяет регистрировать функции, называемые функциями перехвата
[hooks], которые должны выполняться при выполнении пользователем
встроенной функции. Возможность работы с ними предоставляется модулем Guile
(gschem hook)
. Более подробную информацию об этом см. в разделе
Hooks в gEDA Scheme Reference Manual.
В дополнение к функциям gEDA Scheme API, в gschem для удобства разработчиков расширений предусмотрено несколько вспомогательных процедур.
Функция | Описание |
---|---|
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” для вызова диалогового окна открытия файла. |