This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
geda:gschem_ug:extensions.ru [2012/04/26 15:42] vzh Use cursive for a term |
geda:gschem_ug:extensions.ru [2014/04/24 14:24] (current) vzh Proper quotes |
||
---|---|---|---|
Line 4: | Line 4: | ||
Так как [[config.ru|файлы настроек]] gschem представляют собой скрипты на | Так как [[config.ru|файлы настроек]] gschem представляют собой скрипты на | ||
- | языке Scheme, в них заложена возможность расширения функциональности gschem с | + | языке Scheme, в них заложена возможность расширения функциональности gschem |
- | помощью определения новых функций обработки объектов и страниц. | + | с помощью определения новых функций обработки объектов и страниц. |
В gschem (и других утилитах gEDA/gaf, таких как, например, | В gschem (и других утилитах gEDA/gaf, таких как, например, | ||
- | [[geda:gnetlist_ug.ru|gnetlist]]) | + | [[geda:gnetlist_ug.ru|gnetlist]]) для обеспечения возможности написания |
- | для обеспечения возможности написания скриптов на Scheme используется | + | скриптов на Scheme используется [[http://www.gnu.org/s/guile/|Guile |
- | [[http://www.gnu.org/s/guile/|Guile Scheme]], и в распоряжении разработчика | + | Scheme]], и в распоряжении разработчика оказываются все возможности языка |
- | оказываются все возможности языка Guile. //Справочное руководство по Guile// | + | Guile. //Справочное руководство по Guile// [//Guile Reference Manual//] |
- | [//Guile Reference Manual//] можно найти либо в формате Info | + | можно найти либо в формате Info (''[[info://guile|info guile]]'' на |
- | (''[[info://guile|info guile]]'' на большинстве систем), либо в формате HTML | + | большинстве систем), либо в формате HTML на |
- | на [[http://www.gnu.org/software/guile/docs/docs.html|веб-странице Guile]]. | + | [[http://www.gnu.org/software/guile/docs/docs.html|веб-странице Guile]]. |
Для доступа к объектам и страницам gEDA и для их изменения имеется набор | Для доступа к объектам и страницам gEDA и для их изменения имеется набор | ||
Line 23: | Line 23: | ||
==== Добавление действия ==== | ==== Добавление действия ==== | ||
- | Действия --- это отложенные вычисления [thunks], то есть процедуры Scheme, не | + | Действия --- это отложенные вычисления [thunks], то есть процедуры Scheme, |
- | принимающие аргументов. Чтобы программа gschem могла их найти, они должны | + | не принимающие аргументов. Чтобы программа gschem могла их найти, они |
- | быть определены в верхнеуровневом | + | должны быть определены в верхнеуровневом |
[[http://www.gnu.org/software/guile/manual/html_node/Modules.html|модуле]], | [[http://www.gnu.org/software/guile/manual/html_node/Modules.html|модуле]], | ||
поэтому для добавления действия необходимо предпринять один из следующих | поэтому для добавления действия необходимо предпринять один из следующих | ||
Line 44: | Line 44: | ||
''(gschem hook)''. Более подробную информацию об этом см. в разделе | ''(gschem hook)''. Более подробную информацию об этом см. в разделе | ||
//Hooks// в //gEDA Scheme Reference Manual//. | //Hooks// в //gEDA Scheme Reference Manual//. | ||
- | |||
- | |||
==== Процедуры для разработчиков расширений ==== | ==== Процедуры для разработчиков расширений ==== | ||
Line 51: | Line 49: | ||
расширений предусмотрено несколько вспомогательных процедур. | расширений предусмотрено несколько вспомогательных процедур. | ||
- | <note important>Нет гарантии, что функции, приведённые в этом разделе, | + | <note important>Нет гарантии, что функции, приведённые в этом разделе, не |
- | не будут меняться в последующих версиях gEDA/gaf. Для обеспечения | + | будут меняться в последующих версиях gEDA/gaf. Для обеспечения стабильности |
- | стабильности в долгосрочной перспективе используйте только gEDA Scheme | + | в долгосрочной перспективе используйте только gEDA Scheme API.</note> |
- | API.</note> | + | |
^ Функция ^ Описание ^ | ^ Функция ^ Описание ^ | ||
Line 63: | Line 60: | ||
| ''gschem-log СООБЩЕНИЕ'' | Записать ''СООБЩЕНИЕ'' в журнал gschem. | | | ''gschem-log СООБЩЕНИЕ'' | Записать ''СООБЩЕНИЕ'' в журнал gschem. | | ||
| ''gschem-msg СООБЩЕНИЕ'' | Открыть информационное диалоговое окно с текстом ''СООБЩЕНИЕ''. | | | ''gschem-msg СООБЩЕНИЕ'' | Открыть информационное диалоговое окно с текстом ''СООБЩЕНИЕ''. | | ||
- | | ''gschem-confirm СООБЩЕНИЕ'' | Открыть диалоговое окно подтверждения с кнопками "Да" ["Yes"] и "Нет" ["No"] и текстом ''СООБЩЕНИЕ''. Возвратить ''#t'', если пользователь выберет "Да", или ''#f'' в противном случае. | | + | | ''gschem-confirm СООБЩЕНИЕ'' | Открыть диалоговое окно подтверждения с кнопками «Да» [«Yes»] и «Нет» [«No»] и текстом ''СООБЩЕНИЕ''. Возвратить ''#t'', если пользователь выберет «Да», или ''#f'' в противном случае. | |
- | | ''gschem-filesel СООБЩЕНИЕ ШАБЛОН ФЛАГИ'' | Открыть диалоговое окно выбора файла с текстом ''СООБЩЕНИЕ'' в заголовке и установленным по умолчанию именем файла ''ШАБЛОН''. ''ФЛАГИ'' управляют поведением диалогового окна выбора файла, и должны быть списком строк. В списке ''ФЛАГИ'' можно задавать следующие строки: ''"may_exist"'', если допускается, что выбранный файл уже существует; ''"must_exist"'', если выбранный файл уже должен существовать; ''"must_not_exist"'', если выбранный файл ещё //не// должен существовать; ''"save"'' для вызова диалогового окна сохранения файла; ''"open"'' для вызова диалогового окна открытия файла. | | + | | ''gschem-filesel СООБЩЕНИЕ ШАБЛОН ФЛАГИ'' | Открыть диалоговое окно выбора файла с текстом ''СООБЩЕНИЕ'' в заголовке и установленным по умолчанию именем файла ''ШАБЛОН''. ''ФЛАГИ'' управляют поведением диалогового окна выбора файла, и должны быть списком строк. В списке ''ФЛАГИ'' можно задавать следующие строки: ''%%"may_exist"%%'', если допускается, что выбранный файл уже существует; ''%%"must_exist"%%'', если выбранный файл уже должен существовать; ''%%"must_not_exist"%%'', если выбранный файл ещё //не// должен существовать; ''%%"save"%%'' для вызова диалогового окна сохранения файла; ''%%"open"%%'' для вызова диалогового окна открытия файла. | |