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

<sect1 id="dcop-interface">
<sect1info>
<title
>&DCOP; Funktionen</title>
<authorgroup>
<author
><firstname
></firstname
> <surname
></surname
> <affiliation
><address
> <email
></email>
</address
></affiliation>
</author>

<othercredit role="translator"
><firstname
>Georg</firstname
><surname
>Schuster</surname
><affiliation
><address
><email
>gschuster@utanet.at</email
></address
></affiliation
><contrib
>Deutsche Übersetzung</contrib
></othercredit
> 

</authorgroup>
</sect1info>

<title
>&DCOP; Funktionen</title>

<para
>Das &DCOP; kann in &kommander; auf verschiedene Weise aufgerufen werden. Die Erste ist die Konsolenmethode </para>
<para
>dcop kmdr-executor-@pid KommanderIf changeWidgetText myWidget <quote
>neuer Text</quote
> </para>
<para
>Dies setzt voraus, dass Sie sich innerhalb einer &kommander;-Datei befinden und Zugriff auf die Anweisung @pid haben, die die Prozess-ID enhält. Da ist es einfacher, <quote
>kmdr-executor-@pid</quote
> mit @dcopid zu ersetzen. Diese Syntax (möglicherweise ohne Anweisungen) kann von der Befehlszeile oder jedem externen Skript genutzt werden, um das &kommander;-Fenster zu ändern. </para>
<para
>Weil &kommander; in seiner Alfa-Entwicklungsstufe noch keinen vollständigen Parser hat, ist die Verwendung des viel schnelleren internen &DCOP; aus einem anderen Anwendungsfenster (Konsolen-&DCOP; ist langsam) viel schwieriger, weil viele Informationen mitgegeben werden müssen, einschließlich eines Prototyps des Aufrufes. Der Aufruf oben würde so aussehen: </para>
<para
>@dcop(@dcopid, KommanderIf, <quote
>enableWidget(QString, bool)</quote
>, Bedienelement, true) </para>
<para
>Zur Zeit der Erstellung sollte aufgepasst werden, dass die Schachtelung von &DCOP;-Aufrufen innerhalb von Skriptsprachkonstrukten (wie <application
>bash</application
>) die Verwendung von Konsolenaufrufen verlangt.<emphasis
>Bei der Verwendung von internem &DCOP; werden alle &kommander;-Anweisungen zuerst ausgeführt und dann erst das Skript.</emphasis
> </para>
<para
>Es gibt einen neuen vereinfachten Weg, &DCOP; innerhalb von &kommander; zu nutzen, mittels Objektsyntax. Angenommen, der Text in einem Bedienelement namens @Zeileneingabefeld1 soll geändert werden. Dies würde so aussehen. </para>
<para
>@Zeileneingabefeld1.changeWidgetText(Neuer Text) </para>
<para
>Wie Sie sehen, ist die neue Syntax einfach und passt schlüssig zu den Funktionsgruppen. Die gesamte &DCOP;-Referenz benutzt die neue Objektsyntax, wie oben. <emphasis
>Bitte beachten Sie, dass beim Referenzieren eines Bedienelementes mit &DCOP; aus einem anderen Fenster oder einer anderen Anwendung der erste Parameter immer der Name des Bedienelementes sein muss. Alle hier aufgelisteten Funktionen beginnen mit dem zweiten Parameter.</emphasis
> </para>

<sect2 id="dcop-globals">
<title
>&DCOP; für globale Variablen</title>
<variablelist>
<varlistentry>
<term
>global(QString VariablenName)</term>
<listitem>
<para
>Liefert den Wert der angegebenen globalen Variable zurück. Wenn ein Skript aus dem &kommander;-Fenster gestartet wird, verschwinden alle (nicht-globalen) Variablen, die im Skript belegt wurden, nach Ablauf des Skripts und sind so nicht für andere Skripte oder neue Instanzen des aufrufenden Prozesses verfügbar. Der <quote
>Gültigkeitsbereich</quote
> global bedeutet, dass die Variable für jeden Prozess dieses Fensters existiert, bis es geschlossen wird. Diese Variablen können jederzeit mit einem weiteren <function
>@setGlobal</function
>-Aufruf geändert werden. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>setGlobal(QString VariablenName, QString value)</term>
<listitem>
<para
>Erstellt eine Variable, die global im Hinblick auf den Fensterprozeß ist und weist ihr den Wert zu. Dieser Wert kann mit global(QString VariablenName) gelesen oder geändert werden. </para>
</listitem>
</varlistentry>
</variablelist>
</sect2>

<sect2 id="dcop-all">
<title
>&DCOP; für alle Bedienelemente</title>

<variablelist>
<varlistentry>
<term
>changeWidgetText(QString Text)</term>
<listitem>
<para
>Dies sollte in setWidgetText umbenannt werden und der Name ist daher veraltet. Es entfernt den angezeigten Text im Bedienelement und ersetzt ihn mit dem Parametertext. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>enableWidget(bool schalter)</term>
<listitem>
<para
>Schaltet ein Bedienelement ein oder aus. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>associatedText</term>
<listitem>
<para
>Liefert den mit dem angegebenen Bedienelement verbundenen Text zurück. Das ist nicht das gleiche, wie der angezeigte Text. Diesen würde man mit <quote
>@widgetText </quote
> oder Skriptbefehlen erreichen, um den angezeigten Wert zu erhalten. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>setAssociatedText(QString Text)</term>
<listitem>
<para
>Dies setzt den Standardtext von &kommander;. Das ist typischerweise gleich wie <quote
>@widgetText</quote
> um anzuzeigen, was im Bedienelement enthalten ist. Normalerweise hat man keinen Bedarf dafür, aber auf jeden Fall vorhanden. Trifft für alle Bedienelemente zu, die Text enthalten können. </para>
</listitem>
</varlistentry>
</variablelist>
</sect2>

<sect2 id="dcop-box">
<title
>&DCOP; für Listenfeld- und Kombinationsfeld-Bedienelemente</title>
<variablelist>
<varlistentry>
<term
>addListItem(QString Element, int Index)</term>
<listitem>
<para
>Fügt ein Element zu einem ListBox-Bedienelement am angegebenen Index hinzu. Der Index beginnt mit Null. Zum Hinzufügen am Ende der Liste dient -1. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>addListItems(QStringList Elemente, int Index)</term>
<listitem>
<para
>Dies fügt eine Liste von Zeichenketten auf einmal hinzu. Die Liste sollte mit <acronym
>EOL</acronym
> (\n - Zeilenschaltungen) getrennt sein. Das ist praktisch, weil man über bash leicht zu so einer Liste kommt. So liefert z. B. @exec(ls -l ~/projects | grep kmdr) ein Inhaltsverzeichnis von &kommander;-Dateien im Projektordner als passende Liste. Der Listenindex beginnt bei Null. Mit -1 kann am Ende der bestehenden Liste angehängt werden. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>addUniqueItem(QString Element)</term>
<listitem>
<para
>addUniqueItem fügt ein Element am Ende der Liste nur dann hinzu, wenn es einmalig ist. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>clearList</term>
<listitem>
<para
>Entfernt alle Elemente. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>removeListItem(int Index)</term>
<listitem>
<para
>Entfernt das Element mit angegebenem Index. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>item(int Index)</term>
<listitem>
<para
>Liefert den Text des Elementes mit angegebenem Index zurück. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>setCurrentListItem(int Index)</term>
<listitem>
<para
>Setze das aktuelle (oder ausgewählte) Element auf den angegebenen Index. Verwendbar in Listbox und ComboBox-Bedienelementen. </para>
</listitem>
</varlistentry>
</variablelist>
</sect2>

<sect2 id="dcop-button">
<title
>&DCOP; für Ankreuzfeld- und Auswahlknopf-Bedienelemente</title>
<variablelist>
<varlistentry>
<term
>setChecked(QString BedienelementName, bool aktiviert)</term>
<listitem>
<para
>Aktiviert/deaktiviert Ankreuzfeld- oder Auswahlknopf-Bedienelemente. </para>
</listitem>
</varlistentry>
</variablelist>
</sect2>

<sect2 id="dcop-tab">
<title
>&DCOP; für Karteireiter-Bedienelemente</title>
<variablelist>
<varlistentry>
<term
>setCurrentTab(QString BedienelementName, int Index)</term>
<listitem>
<para
>Wählt das Unterfenster mittels Index für Karteireiter-Bedienelemente. Der Index beginnt bei Null. </para>
</listitem>
</varlistentry>
</variablelist>
</sect2>


</sect1>
