1 <!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Transitional//EN"
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5 <link rel=
"stylesheet" media=
"screen" type=
"text/css" href=
"./style.css" />
6 <link rel=
"stylesheet" media=
"screen" type=
"text/css" href=
"./design.css" />
7 <link rel=
"stylesheet" media=
"print" type=
"text/css" href=
"./print.css" />
9 <meta http-equiv=
"Content-Type" content=
"text/html; charset=utf-8" />
12 <a href=.
>start
</a> =
> <a href=geda-gschem_ug.html
>gschem_ug
</a></br>
13 <div class=
"table sectionedit1"><table class=
"inline">
15 <td class=
"col0 leftalign"> «
<a href=
"geda-gschem_ug-stroke.ru.html" class=
"wikilink1" title=
"geda-gschem_ug-stroke.ru.html">Поддержка жестов мышью
</a> </td><td class=
"col1 centeralign"> <strong><a href=
"geda-gschem_ug.ru.html" class=
"wikilink1" title=
"geda-gschem_ug.ru.html">Руководство пользователя gEDA gschem
</a></strong> </td><td class=
"col2 rightalign"> <a href=
"geda-gschem_ug.ru.html" class=
"wikilink1" title=
"geda-gschem_ug.ru.html">Содержание
</a> »
</td>
18 <!-- EDIT1 TABLE [1-204] -->
19 <h2 class=
"sectionedit2" id=
"расширение_функциональности_gschem">Расширение функциональности gschem
</h2>
23 Так как
<a href=
"geda-gschem_ug-config.ru.html" class=
"wikilink1" title=
"geda-gschem_ug-config.ru.html">файлы настроек
</a> gschem представляют собой скрипты на
24 языке Scheme, в них заложена возможность расширения функциональности gschem
25 с помощью определения новых функций обработки объектов и страниц.
29 В gschem (и других утилитах gEDA/gaf, таких как, например,
30 <a href=
"geda-gnetlist_ug.ru.html" class=
"wikilink1" title=
"geda-gnetlist_ug.ru.html">gnetlist
</a>) для обеспечения возможности написания
31 скриптов на Scheme используется
<a href=
"http://www.gnu.org/s/guile/" class=
"urlextern" title=
"http://www.gnu.org/s/guile/" rel=
"nofollow">Guile
32 Scheme
</a>, и в распоряжении разработчика оказываются все возможности языка
33 Guile.
<em>Справочное руководство по Guile
</em> [
<em>Guile Reference Manual
</em>]
34 можно найти либо в формате Info (
<code>info guile
</code> на
35 большинстве систем), либо в формате
<abbr title=
"HyperText Markup Language">HTML
</abbr> на
36 <a href=
"http://www.gnu.org/software/guile/docs/docs.html" class=
"urlextern" title=
"http://www.gnu.org/software/guile/docs/docs.html" rel=
"nofollow">веб-странице Guile
</a>.
40 Для доступа к объектам и страницам gEDA и для их изменения имеется набор
41 модулей, называемый gEDA Scheme
<abbr title=
"Application Programming Interface">API
</abbr>. Есть и
<em>Справочное руководство по
42 Scheme в gEDA
</em> [
<em>gEDA Scheme Reference Manual
</em>] в формате Info
43 (
<code>info geda-scheme
</code>).
47 <!-- EDIT2 SECTION "Расширение функциональности gschem" [206-1784] -->
48 <h3 class=
"sectionedit3" id=
"добавление_действия">Добавление действия
</h3>
52 Действия — это отложенные вычисления [thunks], то есть процедуры Scheme,
53 не принимающие аргументов. Чтобы программа gschem могла их найти, они
54 должны быть определены в верхнеуровневом
55 <a href=
"http://www.gnu.org/software/guile/manual/html_node/Modules.html" class=
"urlextern" title=
"http://www.gnu.org/software/guile/manual/html_node/Modules.html" rel=
"nofollow">модуле
</a>,
56 поэтому для добавления действия необходимо предпринять один из следующих
60 <li class=
"level1"><div class=
"li"> определить процедуру непосредственно в одном из своих файлов настроек;
</div>
62 <li class=
"level1"><div class=
"li"> определить процедуру в Scheme-файле, загружаемом (с помощью
<code>load
</code>) из одного из файлов настроек;
</div>
64 <li class=
"level1"><div class=
"li"> или экспортировать процедуру в модуле Guile, который загружается (с помощью
<code>use-modules
</code>) из файлов настроек.
</div>
69 Затем как обычно — с помощью
<code>global-set-key
</code> — процедуру можно будет
70 привязать к сочетанию клавиш.
74 <!-- EDIT3 SECTION "Добавление действия" [1785-3060] -->
75 <h3 class=
"sectionedit4" id=
"перехват_встроенных_действий">Перехват встроенных действий
</h3>
79 gschem позволяет регистрировать функции, называемые
<em>функциями перехвата
</em>
80 [
<em>hooks
</em>], которые должны выполняться при выполнении пользователем
81 встроенной функции. Возможность работы с ними предоставляется модулем Guile
82 <code>(gschem hook)
</code>. Более подробную информацию об этом см. в разделе
83 <em>Hooks
</em> в
<em>gEDA Scheme Reference Manual
</em>.
87 <!-- EDIT4 SECTION "Перехват встроенных действий" [3061-3671] -->
88 <h3 class=
"sectionedit5" id=
"процедуры_для_разработчиков_расширений">Процедуры для разработчиков расширений
</h3>
92 В дополнение к функциям gEDA Scheme
<abbr title=
"Application Programming Interface">API
</abbr>, в gschem для удобства разработчиков
93 расширений предусмотрено несколько вспомогательных процедур.
95 <div class=
"noteimportant">Нет гарантии, что функции, приведённые в этом разделе, не
96 будут меняться в последующих версиях gEDA/gaf. Для обеспечения стабильности
97 в долгосрочной перспективе используйте только gEDA Scheme
<abbr title=
"Application Programming Interface">API
</abbr>.
98 </div><div class=
"table sectionedit6"><table class=
"inline">
101 <th class=
"col0 leftalign"> Функция
</th><th class=
"col1 leftalign"> Описание
</th>
105 <td class=
"col0"> <code>gschem-print
</code> </td><td class=
"col1 leftalign"> Экспорт в выходной файл в формате PostScript (см. раздел
<a href=
"geda-gschem_ug-printing.ru.html" class=
"wikilink1" title=
"geda-gschem_ug-printing.ru.html">Печать
</a>), имя которого либо задаётся с помощью
<a href=
"geda-gschem_ug-command_line.ru.html" class=
"wikilink1" title=
"geda-gschem_ug-command_line.ru.html">ключа командной строки
</a> <code>-o
</code>, либо, если данный ключ не задан, устанавливается в значение по умолчанию, определённое в самой функции.
</td>
108 <td class=
"col0"> <code>gschem-postscript ИМЯ_ФАЙЛА
</code> </td><td class=
"col1 leftalign"> Экспорт PostScript в файл
<code>ИМЯ_ФАЙЛА
</code>.
</td>
111 <td class=
"col0"> <code>gschem-image ИМЯ_ФАЙЛА
</code> </td><td class=
"col1 leftalign"> Экспорт изображения (см. раздел
<a href=
"geda-gschem_ug-exporting.ru.html" class=
"wikilink1" title=
"geda-gschem_ug-exporting.ru.html">Экспорт изображений
</a>) в выходной файл, указанный с помощью ключа
<code>-o
</code>, или, если данный ключ не задан, в файл
<code>ИМЯ_ФАЙЛА
</code>.
</td>
114 <td class=
"col0 leftalign"> <code>gschem-exit
</code> </td><td class=
"col1 leftalign"> Немедленный выход из gschem.
<strong>Внимание:
</strong> если у пользователя были несохранённые изменения в схемах, возможности их сохранить у него уже не будет.
</td>
117 <td class=
"col0 leftalign"> <code>gschem-log СООБЩЕНИЕ
</code> </td><td class=
"col1 leftalign"> Записать
<code>СООБЩЕНИЕ
</code> в журнал gschem.
</td>
120 <td class=
"col0 leftalign"> <code>gschem-msg СООБЩЕНИЕ
</code> </td><td class=
"col1 leftalign"> Открыть информационное диалоговое окно с текстом
<code>СООБЩЕНИЕ
</code>.
</td>
123 <td class=
"col0 leftalign"> <code>gschem-confirm СООБЩЕНИЕ
</code> </td><td class=
"col1 leftalign"> Открыть диалоговое окно подтверждения с кнопками «Да» [«Yes»] и «Нет» [«No»] и текстом
<code>СООБЩЕНИЕ
</code>. Возвратить
<code>#t
</code>, если пользователь выберет «Да», или
<code>#f
</code> в противном случае.
</td>
126 <td class=
"col0 leftalign"> <code>gschem-filesel СООБЩЕНИЕ ШАБЛОН ФЛАГИ
</code> </td><td class=
"col1"> Открыть диалоговое окно выбора файла с текстом
<code>СООБЩЕНИЕ
</code> в заголовке и установленным по умолчанию именем файла
<code>ШАБЛОН
</code>.
<code>ФЛАГИ
</code> управляют поведением диалогового окна выбора файла, и должны быть списком строк. В списке
<code>ФЛАГИ
</code> можно задавать следующие строки:
<code>"may_exist
"</code>, если допускается, что выбранный файл уже существует;
<code>"must_exist
"</code>, если выбранный файл уже должен существовать;
<code>"must_not_exist
"</code>, если выбранный файл ещё
<em>не
</em> должен существовать;
<code>"save
"</code> для вызова диалогового окна сохранения файла;
<code>"open
"</code> для вызова диалогового окна открытия файла.
</td>
129 <!-- EDIT6 TABLE [4362-7340] -->
131 <!-- EDIT5 SECTION "Процедуры для разработчиков расширений" [3672-] --></body>