Sophie

Sophie

distrib > Mageia > 4 > x86_64 > by-pkgid > ffa379e674c6e907833924c14996ed7e > files > 131

geda-docs-1.8.1-6.mga4.x86_64.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
  <title></title>
  <link rel="stylesheet" media="screen" type="text/css" href="./style.css" />
  <link rel="stylesheet" media="screen" type="text/css" href="./design.css" />
  <link rel="stylesheet" media="print" type="text/css" href="./print.css" />

  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>

<div class="table sectionedit780"><table class="inline">
	<tr class="row0">
		<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>
	</tr>
</table></div>
<!-- EDIT780 TABLE [1-204] -->
<h2 class="sectionedit781"><a name="расширение_функциональности_gschem" id="расширение_функциональности_gschem">Расширение функциональности gschem</a></h2>
<div class="level2">

<p>
Так как <a href="geda-gschem_ug-config.ru.html" class="wikilink1" title="geda-gschem_ug-config.ru.html">файлы настроек</a> gschem представляют собой скрипты на
языке Scheme, в них заложена возможность расширения функциональности gschem с
помощью определения новых функций обработки объектов и страниц.
</p>

<p>
В gschem (и других утилитах gEDA/gaf, таких как, например,
<a href="geda-gnetlist_ug.ru.html" class="wikilink1" title="geda-gnetlist_ug.ru.html">gnetlist</a>)
для обеспечения возможности написания скриптов на Scheme используется
<a href="http://www.gnu.org/s/guile/" class="urlextern" title="http://www.gnu.org/s/guile/"  rel="nofollow">Guile Scheme</a>, и в распоряжении разработчика
оказываются все возможности языка Guile. <em>Справочное руководство по Guile</em>
[<em>Guile Reference Manual</em>] можно найти либо в формате Info
(<code>info guile</code> на большинстве систем), либо в формате <acronym title="HyperText Markup Language">HTML</acronym>
на <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>.
</p>

<p>
Для доступа к объектам и страницам gEDA и для их изменения имеется набор
модулей, называемый gEDA Scheme <acronym title="Application Programming Interface">API</acronym>. Есть и <em>Справочное руководство по
Scheme в gEDA</em> [<em>gEDA Scheme Reference Manual</em>] в формате Info
(<code>info geda-scheme</code>).
</p>

</div>
<!-- EDIT781 SECTION "Расширение функциональности gschem" [206-1784] -->
<h3 class="sectionedit782"><a name="добавление_действия" id="добавление_действия">Добавление действия</a></h3>
<div class="level3">

<p>
Действия — это отложенные вычисления [thunks], то есть процедуры Scheme, не
принимающие аргументов.  Чтобы программа gschem могла их найти, они должны
быть определены в верхнеуровневом
<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>,
поэтому для добавления действия необходимо предпринять один из следующих
шагов:
</p>
<ul>
<li class="level1"><div class="li"> определить процедуру непосредственно в одном из своих файлов настроек;</div>
</li>
<li class="level1"><div class="li"> определить процедуру в Scheme-файле, загружаемом (с помощью <code>load</code>) из одного из файлов настроек;</div>
</li>
<li class="level1"><div class="li"> или экспортировать процедуру в модуле Guile, который загружается (с помощью <code>use-modules</code>) из файлов настроек.</div>
</li>
</ul>

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

</div>
<!-- EDIT782 SECTION "Добавление действия" [1785-3060] -->
<h3 class="sectionedit783"><a name="перехват_встроенных_действий" id="перехват_встроенных_действий">Перехват встроенных действий</a></h3>
<div class="level3">

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

</div>
<!-- EDIT783 SECTION "Перехват встроенных действий" [3061-3673] -->
<h3 class="sectionedit784"><a name="процедуры_для_разработчиков_расширений" id="процедуры_для_разработчиков_расширений">Процедуры для разработчиков расширений</a></h3>
<div class="level3">

<p>
В дополнение к функциям gEDA Scheme <acronym title="Application Programming Interface">API</acronym>, в gschem для удобства разработчиков
расширений предусмотрено несколько вспомогательных процедур.
</p>

<p>
<p><div class="noteimportant">Нет гарантии, что функции, приведённые в этом разделе,
не будут меняться в последующих версиях gEDA/gaf. Для обеспечения
стабильности в долгосрочной перспективе используйте только gEDA Scheme
<acronym title="Application Programming Interface">API</acronym>.
</div></p>
</p>
<div class="table sectionedit785"><table class="inline">
	<tr class="row0">
		<th class="col0 leftalign"> Функция                        </th><th class="col1 leftalign"> Описание  </th>
	</tr>
	<tr class="row1">
		<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>
	</tr>
	<tr class="row2">
		<td class="col0"> <code>gschem-postscript ИМЯ_ФАЙЛА</code> </td><td class="col1 leftalign"> Экспорт PostScript в файл <code>ИМЯ_ФАЙЛА</code>.  </td>
	</tr>
	<tr class="row3">
		<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>
	</tr>
	<tr class="row4">
		<td class="col0 leftalign"> <code>gschem-exit</code>  </td><td class="col1 leftalign"> Немедленный выход из gschem.  <strong>Внимание:</strong> если у пользователя были несохранённые изменения в схемах, возможности их сохранить у него уже не будет.  </td>
	</tr>
	<tr class="row5">
		<td class="col0 leftalign"> <code>gschem-log СООБЩЕНИЕ</code>  </td><td class="col1 leftalign"> Записать <code>СООБЩЕНИЕ</code> в журнал gschem.  </td>
	</tr>
	<tr class="row6">
		<td class="col0 leftalign"> <code>gschem-msg СООБЩЕНИЕ</code>  </td><td class="col1 leftalign"> Открыть информационное диалоговое окно с текстом <code>СООБЩЕНИЕ</code>.  </td>
	</tr>
	<tr class="row7">
		<td class="col0 leftalign"> <code>gschem-confirm СООБЩЕНИЕ</code>  </td><td class="col1 leftalign"> Открыть диалоговое окно подтверждения с кнопками “Да” [“Yes”] и “Нет” [“No”] и текстом <code>СООБЩЕНИЕ</code>. Возвратить <code>#t</code>, если пользователь выберет “Да”, или <code>#f</code> в противном случае.  </td>
	</tr>
	<tr class="row8">
		<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>
	</tr>
</table></div>
<!-- EDIT785 TABLE [4364-7312] -->
</div>
<!-- EDIT784 SECTION "Процедуры для разработчиков расширений" [3674-] --></body>
</html>