<?xml version="1.0"  encoding="UTF-8" ?>

<sect1 id="dcop-interface">
<sect1info>
<title
>Функції &DCOP;</title>
<authorgroup>
<author
><firstname
></firstname
> <surname
></surname
> <affiliation
><address
> <email
></email>
</address
></affiliation>
</author>

<othercredit role="translator"
><firstname
>Юрій</firstname
><surname
>Чорноіван</surname
><affiliation
><address
><email
>yurchor@ukr.net</email
></address
></affiliation
><contrib
>Переклад українською</contrib
></othercredit
> 

</authorgroup>
</sect1info>

<title
>Функції &DCOP;</title>

<para
>Викликати у &kommander; &DCOP; можна у декілька способів. По-перше, це можна зробити за допомогою консолі </para>
<para
>dcop kmdr-executor-@pid KommanderIf changeWidgetText myWidget <quote
>new text</quote
> </para>
<para
>Тут ми припускали, що виконується файл &kommander; і ви маєте доступ до спеціальної функції @pid, яка визначає ідентифікатор процесу. Фактично, простіше замінити <quote
>kmdr-executor-@pid</quote
> на @dcopid. Але ви можете користуватися і цим синтаксисом (звичайно ж, без спеціальних функцій) з командного рядка або будь-якого зовнішнього скрипту для того, щоб змінити вікно &kommander;. </para>
<para
>Оскільки у &kommander; не передбачено повноцінний інструмент обробки на стадії Alpha, якщо вам потрібно скористатися набагато швидшим внутрішнім &DCOP; з вікна іншої програми (&DCOP; консолі є дуже повільним), задача стає набагато складнішою, оскільки вам слід буде надати набагато більше відомостей, зокрема прототип виклику. Наведений вище виклик набуде форми: </para>
<para
>@dcop(@dcopid, KommanderIf, <quote
>enableWidget(QString, bool)</quote
>, Widget, true) </para>
<para
>Читаючи попередні приклади, вам слід весь час пам’ятати, що під час вбудовування викликів &DCOP; у структури скриптової мови (на зразок <application
>bash</application
>), ви змушені будете використовувати виклики за допомогою консолі. <emphasis
>Якщо ви використовуєте внутрішній &DCOP;, спочатку буде виконано всі спеціальні функції &kommander;, а потім вже виконуватиметься сам скрипт.</emphasis
> </para>
<para
>Існує новий спрощений спосіб використання &DCOP; у &kommander; за допомогою об’єктного синтаксису. Припустімо, що ви бажаєте змінити текст віджета з назвою @LineEdit1. Відповідна команда виглядатиме так:. </para>
<para
>@LineEdit1.changeWidgetText(Новий текст) </para>
<para
>Як ви можете бачити, новий синтаксис є дуже простим, а також добре узгоджується візуально з групами функцій. Всі посилання на &DCOP; у цьому розділі використовуватимуть новий об’єктний синтаксис, наведений вище. <emphasis
>Будь ласка, зауважте, що, якщо ви викликаєте на віджет за допомогою &DCOP; з іншого вікна або іншої програми, першим параметром завжди буде назва віджета. Записи всіх перелічених у цьому розділі функцій починатимуться з другого параметра.</emphasis
> </para>

<sect2 id="dcop-globals">
<title
>&DCOP; для загальних змінних</title>
<variablelist>
<varlistentry>
<term
>global(QString variableName)</term>
<listitem>
<para
>Повертає значення вказаної глобальної змінної. Якщо скрипт було запущено з вікна &kommander;, всі (неглобальні) змінні, встановлені цим скриптом, припинять своє існування після завершення виконання скрипту і тому будуть недоступними іншим процесам скриптів або у новому екземплярі процесу виклику. Глобальна <quote
>область видимості</quote
> означає, що змінна існуватиме для будь-якого з процесів вікна до закриття самого вікна. Ви можете змінити ці змінні у будь-який момент за допомогою нового виклику <function
>@setGlobal</function
>. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>setGlobal(QString variableName, QString value)</term>
<listitem>
<para
>Створює змінну, яка є глобальною для процесу вікна і надає значення цій змінній. Це значення можна отримати за допомогою функції global(QString variableName) або перевизначене. </para>
</listitem>
</varlistentry>
</variablelist>
</sect2>

<sect2 id="dcop-all">
<title
>&DCOP; для всіх віджетів</title>

<variablelist>
<varlistentry>
<term
>changeWidgetText(QString text)</term>
<listitem>
<para
>Назва цієї функції є іншою назвою функції setWidgetText, цю функцію, ймовірно, буде вилучено з наступних версій програми. Ця функція вилучає текст показаний у віджеті і заміняє його на вказаний як параметр текст. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>enableWidget(bool enable)</term>
<listitem>
<para
>Вмикає або вимикає показ віджета. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>associatedText</term>
<listitem>
<para
>Повертає текст, пов’язаних з вказаним віджетом. Цей текст може не збігатися з показаним текстом. Буде повернуто значення <quote
>@widgetText</quote
> або текст і/або скрипт, використаний для появи показаного значення. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>setAssociatedText(QString text)</term>
<listitem>
<para
>Ця команда встановлює типовий рядок тексту &kommander;. Це значення типово передається <quote
>@widgetText</quote
> і відповідає тексту підказки щодо того, що слід ввести до віджета. Навряд чи у вас виникне потреба у цій команді, але, якщо все ж виникне, ви будете знати, що така команда є. Застосовується для всіх віджетів, які містять дані. </para>
</listitem>
</varlistentry>
</variablelist>
</sect2>

<sect2 id="dcop-box">
<title
>&DCOP; для віджетів ListBox і ComboBox</title>
<variablelist>
<varlistentry>
<term
>addListItem(QString item, int index)</term>
<listitem>
<para
>Додає пункт до віджета ListBox на вказану позицію. Нумерація списку починається з нуля. Щоб додати пункт у кінець списку, скористайтеся параметром -1. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>addListItems(QStringList items, int index)</term>
<listitem>
<para
>Ця команда одразу додає увесь список рядків. Пункти списку слід відокремлювати символом <acronym
>EOL</acronym
> (\n — символами нового рядка). Це зручно, оскільки ви можете скористатися bash для порівняно простого отримання списку. Наприклад, за допомогою функції @exec(ls -l ~/projects | grep kmdr) пункти списку складатиметься з переліку файлів у теці вашого проекту &kommander;. Нумерація списку починатиметься з нуля. Щоб додати пункт у кінець списку, скористайтеся параметром -1. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>addUniqueItem(QString item)</term>
<listitem>
<para
>addUniqueItem додасть пункт в кінець списку, лише якщо цей пункт є унікальним. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>clearList</term>
<listitem>
<para
>Вилучає всі елементи. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>removeListItem(int index)</term>
<listitem>
<para
>Вилучає елемент з вказаним номером index. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>item(int index)</term>
<listitem>
<para
>Повертає текст елемента з вказаним номером index. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>setCurrentListItem(int index)</term>
<listitem>
<para
>Визначає для поточного (або виділеного) елемента вказаний номер index. Застосовується до віджетів ListBox і ComboBox. </para>
</listitem>
</varlistentry>
</variablelist>
</sect2>

<sect2 id="dcop-button">
<title
>&DCOP; для віджетів CheckBox і RadioButton</title>
<variablelist>
<varlistentry>
<term
>setChecked(QString widgetName, bool checked)</term>
<listitem>
<para
>Позначає або знімає позначення з віджетів CheckBox або RadioButton. </para>
</listitem>
</varlistentry>
</variablelist>
</sect2>

<sect2 id="dcop-tab">
<title
>&DCOP; для віджетів TabWidget</title>
<variablelist>
<varlistentry>
<term
>setCurrentTab(QString назваВіджета, int index)</term>
<listitem>
<para
>Відкриває вкладку з номером index у TabWidget. Нумерація починається з 0. </para>
</listitem>
</varlistentry>
</variablelist>
</sect2>


</sect1>
