<?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> <othercredit role="translator" > <firstname >Stefan</firstname > <surname >Asserhäll</surname > <affiliation ><address ><email >stefan.asserhall@comhem.se</email ></address ></affiliation > <contrib >Översättare</contrib ></othercredit > </authorgroup> </sect1info> <title >&DCOP;-funktioner</title> <para >&DCOP; kan anropas på flera sätt i &kommander;. Först metoden via terminalen: </para> <para >dcop kmdr-executor-@pid KommanderIf changeWidgetText minKomponent <quote >ny text</quote > </para> <para >Det här antar att du är inne i en &kommander; fil och har tillgång till specialvärdet @pid, som innehåller process-id. Det är i själva verket enklare att ersätta <quote >kmdr-executor-@pid</quote > med @dcopid. Du kan dock använda den här syntaxen (men förstås utan specialvärden) från kommandoraden eller vilket externt skript som helst för att ändra &kommander;-fönstret. </para> <para >Eftersom &kommander; inte har en fullständig tolk i sin alfaversion, är det mer komplicerat om du vill använda den mycket snabbare interna &DCOP;-funktionen från ett annat programfönster (&DCOP; via terminalen är mycket långsamt), eftersom du måste ange mycket information, inklusive en prototyp av anropet. Anropet ovan skulle bli: </para> <para >@dcop(@dcopid, KommanderIf, <quote >enableWidget(QString, bool)</quote >, komponent, true) </para> <para >När det här skrivs bör du vara medveten om att infoga &DCOP;-anrop inne i skriptspråkstrukturer (som <application >bash</application >) betyder att du måste använda anrop med terminalmetoden. <emphasis >Om du använder intern &DCOP; körs alla &kommander; specialvärden först och därefter körs skriptet.</emphasis > </para> <para >Det finns ett nytt förenklat sätt att använda &DCOP; inne i &kommander; genom att använda en objektsyntax. Låt oss anta att du vill ändra texten i den grafiska komponenten @Radeditor1. Det skulle se ut så här: </para> <para >@Radeditor1.changeWidgetText(Ny text) </para> <para >Som du kan se är den nya syntaxen mycket enkel, samt visuellt överensstämmande med funktionsgrupper. Alla &DCOP;-referenser här använder den nya objektsyntaxen som listas ovan. <emphasis >Observera att om du hänvisar till en grafisk komponent via &DCOP; från ett annat fönster eller ett annat program är den första parametern alltid komponentnamnet. Alla funktioner listas här med början från den andra parametern.</emphasis > </para> <sect2 id="dcop-globals"> <title >&DCOP; för globala variabler</title> <variablelist> <varlistentry> <term >global(QString variabelnamn)</term> <listitem> <para >Returnerar den angivna globala variabelns värde. När ett skript körs från ett fönster i &kommander; upphör alla (icke-globala) variabler som anges i skriptet att existera efter skriptet är färdigt, och är därför inte tillgängliga för andra skriptprocesser eller i en ny instans av den anropande processen. Det globala <quote >omfattningen</quote > betyder att variabeln existerar för alla fönstrets processer ända till fönstret stängs. Du kan ändra variablerna när som helst med ett nytt anrop till <function >@setGlobal</function >. </para> </listitem> </varlistentry> <varlistentry> <term >setGlobal(QString variabelnamn, QString värde)</term> <listitem> <para >Skapar en variabel som är global i fönsterprocessen och tilldelar värdet till den. Värdet kan hämtas med global(QString variabelnamn) eller tilldelas igen. </para> </listitem> </varlistentry> </variablelist> </sect2> <sect2 id="dcop-all"> <title >&DCOP; för alla grafiska komponenter</title> <variablelist> <varlistentry> <term >changeWidgetText(QString text)</term> <listitem> <para >Det här bör heta setWidgetText, och användning av det här namnet kommer troligen att avrådas från. Det tar bort texten som visas i den grafiska komponenten och ersätter den med den angivna texten. </para> </listitem> </varlistentry> <varlistentry> <term >enableWidget(bool aktivera)</term> <listitem> <para >Aktiverar eller inaktiverar en grafisk komponent. </para> </listitem> </varlistentry> <varlistentry> <term >associatedText</term> <listitem> <para >Returnerar texten som är associerad med den angivna grafiska komponenten. Det är inte samma som texten som visas. Det skulle vara <quote >@widgetText</quote > eller texten och/eller skriptet som används för att erhålla det visade värdet. </para> </listitem> </varlistentry> <varlistentry> <term >setAssociatedText(QString text)</term> <listitem> <para >Det här tilldelar den förvalda strängen för &kommander; text. Den tilldelas typiskt värdet <quote >@widgetText</quote > för att visa vad som skrivs in i komponenten. Det är inte troligt att du har mycket nytta av det, men om du gör det finns det där. Gäller alla grafiska komponenter som kan innehålla data. </para> </listitem> </varlistentry> </variablelist> </sect2> <sect2 id="dcop-box"> <title >&DCOP; för listrutor och kombinationsrutor</title> <variablelist> <varlistentry> <term >addListItem(QString objekt, int index)</term> <listitem> <para >Lägger till ett objekt i en listruta på angivet index. Listindex börjar på noll. För att lägga till i slutet på listan, använd -1. </para> </listitem> </varlistentry> <varlistentry> <term >addListItems(QStringList objekt, int index)</term> <listitem> <para >Det här lägger till en stränglista på en gång. Listan ska avdelas av nyrader (\n - nyrader). Det är bekvämt eftersom du kan använda bash för att ganska enkelt få fram listan. Att till exempel använda @exec(s -l ~/projects | grep kmdr) som objekt, ger en kataloglistning med &kommander; filer i din projektkatalog. Listindex börjar med 0. Använd -1 för att lägga till sist i listan. </para> </listitem> </varlistentry> <varlistentry> <term >addUniqueItem(QString objekt)</term> <listitem> <para >addUniqueItem lägger till ett objekt i slutet på listan, men bara om det är unikt. </para> </listitem> </varlistentry> <varlistentry> <term >clearList</term> <listitem> <para >Tar bort alla objekt. </para> </listitem> </varlistentry> <varlistentry> <term >removeListItem(int index)</term> <listitem> <para >Tar bort objektet vid angivet index. </para> </listitem> </varlistentry> <varlistentry> <term >item(int index)</term> <listitem> <para >Returnerar texten för objektet på angivet index. </para> </listitem> </varlistentry> <varlistentry> <term >setCurrentListItem(int index)</term> <listitem> <para >Tilldela nuvarande (eller markerat) objekt till angivet index. Gäller de grafiska komponenterna listruta och kombinationsruta. </para> </listitem> </varlistentry> </variablelist> </sect2> <sect2 id="dcop-button"> <title >&DCOP; för kryssrutor och alternativknappar</title> <variablelist> <varlistentry> <term >setChecked(QString komponentnamn, bool markerad)</term> <listitem> <para >Markerar/avmarkerar en kryssruta eller alternativknapp. </para> </listitem> </varlistentry> </variablelist> </sect2> <sect2 id="dcop-tab"> <title >&DCOP; for flikkomponenter</title> <variablelist> <varlistentry> <term >setCurrentTab(QString komponentnamn, int index)</term> <listitem> <para >Väljer fliken med index för flikkomponenter. Index börjar med 0. </para> </listitem> </varlistentry> </variablelist> </sect2> </sect1>