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

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

&rune.laursen.role; 

</authorgroup>
</sect1info>

<title
>&DCOP; Funktioner</title>

<para
>&DCOP; kan kaldes på flere måder i &kommander;. Den første er konsolmetoden </para>
<para
>dcop kmdr-executor-@pid KommanderIf changeWidgetText minKontrol <quote
>ny tekst</quote
> </para>
<para
>Dette antager at du er inde i en &kommander;-fil og har adgang til specialen @pid, som indeholder procesID'et. Faktisk er de lettere at erstatte <quote
>kmdr-executor-@pid</quote
> med @dcopid. Du kan dog bruge denne syntaks (naturligvis uden specialerne), fra kommandolinjen eller et hvilket som helst eksternt script, for at ændre &kommander;-vinduet. </para>
<para
>Fordi &kommander; ikke har en fuldstændig fortolker i sit alfastadium, hvis du vil bruge den meget hurtigere interne &DCOP; fra et andet applikationsvindue (konsol &DCOP; er meget langsomt) er det meget mere kompliceret fordi du skal give meget information, inklusive en prototype af kaldet. Det ovenstående kald ville blive til: </para>
<para
>@dcop(@dcopid, KommanderIf, <quote
>enableWidget(QString, bool)</quote
>, Widget, true) </para>
<para
>Da dette blev skrevet skulle man være klar over at indlejre &DCOP;-kald inde i scriptsprogstrukturer (som <application
>bash</application
> betyder at man skal bruge konsolmetodekald. <emphasis
>Hvis du bruger interne &DCOP;-kld , vil alle &kommander;-specialer blive udført først og dernæst scriptet.</emphasis
> </para>
<para
>Der er en ny og simpel måde at bruge &DCOP; på, i &kommander; ved at bruge en objektsyntaks. Lad os sige at du vil ændre teksten i en kontrols navn @linjeEditor1. Det ville se således ud: </para>
<para
>@LineEdit1.changeWidgetText(New text) </para>
<para
>Som du kan se er den nye syntaks meget let, såvel som visuel konsistent med funktionsgrupper. Alle &DCOP;-referencer her vil bruge den nye objektsyntaks som vist ovenfor. <emphasis
> Læg mærke til at hvis du refererer til en kontrol vh. &DCOP; fra et andet vindue eller en anden applikation, er den første parameter altid kontrollens navn. Alle funktioner der er vist her starter med den anden parameter.</emphasis
> </para>

<sect2 id="dcop-globals">
<title
>&DCOP; til globale variable</title>
<variablelist>
<varlistentry>
<term
>global(QString variableName)</term>
<listitem>
<para
>Returnerer værdien af den specficerede globale variabel. Når et script køres inde fra &kommander;-vinduet, vil alle (non-globale) variabler sat i dette script, holde op med at eksistere efter scriptet er kørt færdigt og vil derfor ikke være til rådighed for andre scriptprocesser eller i en ny instans af den kaldende proces. Det globale <quote
>virkefelt</quote
> betyder at variablen eksisterer for alle processer i vinduet indtil dette vindue lukkes. Du kan ændre disse variabler på et hvilket som helst tidspunk, med et nyt kald til <function
>@setGlobal</function
>. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>setGlobal(QString variableName, QString value)</term>
<listitem>
<para
>Opretter en variabel som er global for vinduesprocessen og tildeler værdien til den. Denne værdi kan hentes med global(QString variabelNavn) eller tildeles en ny værdi. </para>
</listitem>
</varlistentry>
</variablelist>
</sect2>

<sect2 id="dcop-all">
<title
>&DCOP; til alle kontroller</title>

<variablelist>
<varlistentry>
<term
>changeWidgetText(QString text)</term>
<listitem>
<para
>Dette skal omdøbes til setWidgetText og dette navn bliver sikker overflødiggjort. Det fjerner teksten der vises i kontrollen og erstatter det med den givne tekst. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>enableWidget(bool enable)</term>
<listitem>
<para
>Aktiverer eller deaktiverer en kontrol. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>associatedText</term>
<listitem>
<para
>Returnerer teksten associeret med den angivne kontrol. Dette er ikke det samme den viste tekst. Det skulle laves sådan her: <quote
>@kontrolTekst</quote
> eller tekst og eller scripting brugt til at ankomme ved den viste værdi. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>setAssociatedText(QString text)</term>
<listitem>
<para
>Den sætter &kommander;s standard Text-streng. Den sættes typisk til <quote
>@widgeText</quote
> for at vise hvad der indtastes i kontrollen. Det er usandsynligt at du får behov for det, men hvis du gør er det her det foregår. Dette gælder for alle kontroller der kan indeholde data. </para>
</listitem>
</varlistentry>
</variablelist>
</sect2>

<sect2 id="dcop-box">
<title
>&DCOP; til listeboks- og kombinationsfelt-kontroller</title>
<variablelist>
<varlistentry>
<term
>addListItem(QString item, int index)</term>
<listitem>
<para
>Tilføjer et element til en listebokskontrol ved det specificerede indeks. Listeindekset starter ved nul For at tilføje til slutinngen af en liste, bruges -1. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>addListItems(QStringList items, int index)</term>
<listitem>
<para
>Dette tilføjer en liste af strenge på én gang. Listen skal afsluttes af <acronym
>EOL</acronym
>(\n - nye linjer). Dette er nyttigt eftersom du kan bruge bash til at hente listen ret smertefrit. F.eks. ved at bruge @exec(ls -l ~/projekter | grep kmdr) for elementer, giver dig en katalogudskrift af &kommander;-filer i din projektmappe. Listeindeks starter ved nul. Brug -1 for at tilføje til slutningen af en liste. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>addUniqueItem(QString item)</term>
<listitem>
<para
>addUniqueItem tilføjer et element til slutningen af listen, men kun hvis det er unikt. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>clearList</term>
<listitem>
<para
>Fjerner alle indgange. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>removeListItem(int index)</term>
<listitem>
<para
>Fjerner elementet ved det angivne indeks. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>item(int index)</term>
<listitem>
<para
>Returnerer elementets tekst ved det angivne indeks. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>setCurrentListItem(int index)</term>
<listitem>
<para
>Sætter det aktuelle (eller markerede) element til det angivne indeks. Gælder for listefelt- og kombinationsbokskontroller. </para>
</listitem>
</varlistentry>
</variablelist>
</sect2>

<sect2 id="dcop-button">
<title
>&DCOP; for afkrydsningsfelt- og radioknapkontroller</title>
<variablelist>
<varlistentry>
<term
>setChecked(QString widgetName, bool checked)</term>
<listitem>
<para
>Afkrydser eller fjerner afkrysdning i afkrydsningsfelt- og radioknapkontroller. </para>
</listitem>
</varlistentry>
</variablelist>
</sect2>

<sect2 id="dcop-tab">
<title
>&DCOP; for fanebladskontroller</title>
<variablelist>
<varlistentry>
<term
>setCurrentTab(QString widgetName, int index)</term>
<listitem>
<para
>Markér fanebladet ved indeks for fanebladskontroller. Indeks starter ved nul. </para>
</listitem>
</varlistentry>
</variablelist>
</sect2>


</sect1>
