missing NULL terminator in set_config_x
[geda-gaf.git] / docs / wiki / geda-gschem_ug-extensions.ru.html
blob0f3013106dc5e753a294a7b250986223b0b5a140
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3 <html>
4 <head>
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" />
10 </head>
11 <body>
12 <a href=.>start</a>&nbsp;=>&nbsp;<a href=geda-gschem_ug.html>gschem_ug</a></br>
13 <div class="table sectionedit1"><table class="inline">
14 <tr class="row0">
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>
16 </tr>
17 </table></div>
18 <!-- EDIT1 TABLE [1-204] -->
19 <h2 class="sectionedit2" id="расширение_функциональности_gschem">Расширение функциональности gschem</h2>
20 <div class="level2">
22 <p>
23 Так как <a href="geda-gschem_ug-config.ru.html" class="wikilink1" title="geda-gschem_ug-config.ru.html">файлы настроек</a> gschem представляют собой скрипты на
24 языке Scheme, в них заложена возможность расширения функциональности gschem
25 с помощью определения новых функций обработки объектов и страниц.
26 </p>
28 <p>
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>.
37 </p>
39 <p>
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>).
44 </p>
46 </div>
47 <!-- EDIT2 SECTION "Расширение функциональности gschem" [206-1784] -->
48 <h3 class="sectionedit3" id="добавление_действия">Добавление действия</h3>
49 <div class="level3">
51 <p>
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 поэтому для добавления действия необходимо предпринять один из следующих
57 шагов:
58 </p>
59 <ul>
60 <li class="level1"><div class="li"> определить процедуру непосредственно в одном из своих файлов настроек;</div>
61 </li>
62 <li class="level1"><div class="li"> определить процедуру в Scheme-файле, загружаемом (с помощью <code>load</code>) из одного из файлов настроек;</div>
63 </li>
64 <li class="level1"><div class="li"> или экспортировать процедуру в модуле Guile, который загружается (с помощью <code>use-modules</code>) из файлов настроек.</div>
65 </li>
66 </ul>
68 <p>
69 Затем как обычно — с помощью <code>global-set-key</code> — процедуру можно будет
70 привязать к сочетанию клавиш.
71 </p>
73 </div>
74 <!-- EDIT3 SECTION "Добавление действия" [1785-3060] -->
75 <h3 class="sectionedit4" id="перехват_встроенных_действий">Перехват встроенных действий</h3>
76 <div class="level3">
78 <p>
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>.
84 </p>
86 </div>
87 <!-- EDIT4 SECTION "Перехват встроенных действий" [3061-3671] -->
88 <h3 class="sectionedit5" id="процедуры_для_разработчиков_расширений">Процедуры для разработчиков расширений</h3>
89 <div class="level3">
91 <p>
92 В дополнение к функциям gEDA Scheme <abbr title="Application Programming Interface">API</abbr>, в gschem для удобства разработчиков
93 расширений предусмотрено несколько вспомогательных процедур.
94 </p>
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">
99 <thead>
100 <tr class="row0">
101 <th class="col0 leftalign"> Функция </th><th class="col1 leftalign"> Описание </th>
102 </tr>
103 </thead>
104 <tr class="row1">
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>
106 </tr>
107 <tr class="row2">
108 <td class="col0"> <code>gschem-postscript ИМЯ_ФАЙЛА</code> </td><td class="col1 leftalign"> Экспорт PostScript в файл <code>ИМЯ_ФАЙЛА</code>. </td>
109 </tr>
110 <tr class="row3">
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>
112 </tr>
113 <tr class="row4">
114 <td class="col0 leftalign"> <code>gschem-exit</code> </td><td class="col1 leftalign"> Немедленный выход из gschem. <strong>Внимание:</strong> если у пользователя были несохранённые изменения в схемах, возможности их сохранить у него уже не будет. </td>
115 </tr>
116 <tr class="row5">
117 <td class="col0 leftalign"> <code>gschem-log СООБЩЕНИЕ</code> </td><td class="col1 leftalign"> Записать <code>СООБЩЕНИЕ</code> в журнал gschem. </td>
118 </tr>
119 <tr class="row6">
120 <td class="col0 leftalign"> <code>gschem-msg СООБЩЕНИЕ</code> </td><td class="col1 leftalign"> Открыть информационное диалоговое окно с текстом <code>СООБЩЕНИЕ</code>. </td>
121 </tr>
122 <tr class="row7">
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>
124 </tr>
125 <tr class="row8">
126 <td class="col0 leftalign"> <code>gschem-filesel СООБЩЕНИЕ ШАБЛОН ФЛАГИ</code> </td><td class="col1"> Открыть диалоговое окно выбора файла с текстом <code>СООБЩЕНИЕ</code> в заголовке и установленным по умолчанию именем файла <code>ШАБЛОН</code>. <code>ФЛАГИ</code> управляют поведением диалогового окна выбора файла, и должны быть списком строк. В списке <code>ФЛАГИ</code> можно задавать следующие строки: <code>&quot;may_exist&quot;</code>, если допускается, что выбранный файл уже существует; <code>&quot;must_exist&quot;</code>, если выбранный файл уже должен существовать; <code>&quot;must_not_exist&quot;</code>, если выбранный файл ещё <em>не</em> должен существовать; <code>&quot;save&quot;</code> для вызова диалогового окна сохранения файла; <code>&quot;open&quot;</code> для вызова диалогового окна открытия файла. </td>
127 </tr>
128 </table></div>
129 <!-- EDIT6 TABLE [4362-7340] -->
130 </div>
131 <!-- EDIT5 SECTION "Процедуры для разработчиков расширений" [3672-] --></body>
132 </html>