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

<chapter id="kmdr-basics">
<chapterinfo>
<title
>Conceptes bàsics de &kommander;</title>
<authorgroup>
<author
><firstname
>Tamara</firstname
> <surname
>King</surname
> <affiliation
><address
> <email
>tik@acm.org</email>
</address
></affiliation>
</author>
<author
><firstname
>Eric</firstname
> <surname
>Laffoon</surname
> <affiliation
><address
> <email
>sequitur@kde.org</email>
</address
></affiliation>
</author>

&traductor.Antoni.Bella; 

</authorgroup>
</chapterinfo>

<title
>Conceptes bàsics de &kommander;</title>

<!-- This chapter should tell the user how to use your app. You should use as
many sections (Chapter, Sect1, Sect3, etc...) as is necessary to fully document
your application. -->

<sect1 id="concepts">
<title
>Conceptes</title>


<para
>&kommander; va ser originalment dissenyat al voltant d'un concepte simple que ha demostrat ser quelcom revolucionari entre les eines de disseny visual. Normalment, aquestes eines permeten crear diàlegs i possiblement interfícies de finestra principal. Per descomptat, una interfície d'interfície principal és la finestra principal del programa que en general conté menús, barres d'eines, barra d'estat i l'àrea de l'aplicació. Els diàlegs són finestres filles que normalment no contenen menús i es diuen així perquè el seu propòsit és <quote
>tenir un diàleg</quote
> o intercanvi d'informació entre l'usuari i l'aplicació principal. Els elements d'un diàleg s'anomenen <quote
>estris</quote
> i serveixen d'enllaç al vostre programa. &kommander; és diferent perquè és inherent al no-programàtic. Això utilitza el concepte d'associar text amb els estris sobre el diàleg. Inicialment això s'anomenava <quote
>Text associat</quote
>, però ara s'anomena <quote
>Text &kommander;</quote
>. Els estris als diàlegs de &kommander; poden incloure el contingut d'altres estris per referència i un estri pot fer referència al seu propi contingut d'una forma <quote
>Especial</quote
> que tindrà aquest aspecte, @widgetText. Els especials són ordres que tenen un significat especial en &kommander;. De manera que si heu creat un diàleg amb dues LineEditestris i el primer s'anomena <quote
>PrimerNom</quote
> i el segon <quote
>Cognom</quote
> podreu crear un botó i establir el seu Text &kommander; a <quote
>El meu nom és @PrimerNom @Cognom</quote
>. Hauríeu d'establir @widgetText en els estris de noms i cognoms. Recordeu? Hem de dir-li a &kommander; que faci referència al text en els mateixos. Podeu executar això des d'una <application
>Konsole</application
> i la sortida seria la cadena. Per tant, faria referència al primer nom d'aquesta manera: @PrimerNom -> obtenint l'estri anomenat PrimerNom(@PrimerNom) -> @widgetText -> obtenint el contingut de l'estri LineEdit. Per tant, en aquest cas @PrimerNom torna <quote
>Enric</quote
>: @PrimerNom -> @widgetText -> <quote
>Enric</quote
>. </para>

<para
>Així de simple és el cor de &kommander;. El que podeu fer amb això és el veritablement interessant. En primer lloc, cal assenyalar que això no és res en comparació amb l'enfocament normal d'una eina basada en el llenguatge, &kommander; no necessita sentències de programació per a definir aquestes operacions. Això fa que amb &kommander; els desenvolupadors avancin més ràpid. Per als usuaris finals, és molt més senzill que aprendre les construccions d'un llenguatge. Això vol dir que podreu concentrar-vos en la vostra tasca en comptes de tenir el material de referència eternament a mà. Al començament, quan les persones estan exposades a una eina com &kommander; la primera pregunta és <quote
>On podria trobar un ús per a aquesta eina tan genial?</quote
> Com resulta evident, la manipulació de cadenes s'utilitza gairebé en qualsevol lloc on mireu. </para>

<para
>Llavors, què pot fer el &kommander;? Aquesta és la llista detallada de les operacions bàsiques. El &kommander; pot: </para>

<orderedlist>
<listitem
><para
>Passar cadenes al programa que crida a través de la sortida estàndard.</para
></listitem>
<listitem
><para
>Cridar a programes executables.</para
></listitem>
<listitem
><para
>Utilitzar &DCOP; per interactuar amb programes del &kde;.</para
></listitem>
</orderedlist>

<para
>Si no sou un programador, voldreu saber el següent en termes més simples. En primer lloc, si llanceu &kommander; des d'una consola, la consola serà el programa que crida. Aquí hi ha una relació pare-fill. L'enviament d'un missatge a la consola es fa amb la sortida estàndard (stdout) del programa fill, anomenada així ja que també hi ha una sortida d'error. Això és interessant perquè alguns programes, com &quantaplus;, utilitzen la sortida estàndard per rebre informació dels programes que llancen. De manera que els diàlegs de &kommander; poden donar la seva sortida a les cadenes de text directament en l'editor de &quantaplus; si se'ls crida des de &quantaplus;. Això voldrà dir que els diàlegs de &kommander; poden ser extensions útils pels programes. </para>

<para
>El segon cas és cridant a un executable. Qualsevol programa que s'executi al vostre sistema és un executable. Fins i tot un programa d'script s'executa amb l'intèrpret tècnicament també s'executa. &kommander; pot executar ordres igual que en la consola encara que s'executin des del menú. Així, per exemple, si voleu que s'obri el &GIMP;, hauríeu de tenir un botó tingués la cadena <quote
>gimp</quote
> i en una manera especial com: @exec(gimp). Simplement amb això obrireu el &GIMP; quan l'utilitzeu. També podríeu executar <quote
>ls -l</quote
>, però només veuríeu el resultat si s'executa des d'una consola. </para>

<para
>El tercer cas és molt interessant. &DCOP; és l'abreviatura per a «<emphasis
>D</emphasis
>esktop <emphasis
>CO</emphasis
>mmunication <emphasis
>P</emphasis
>rotocol» (protocol de comunicació de l'escriptori) del &kde; i és molt poderós. Continuar i executar el programa <application
>kdcop</application
> i feu-hi una ullada. Aviat us adonareu que gairebé qualsevol aplicació del &kde; s'ha construït amb els estàndards de &DCOP; i les ben dissenyades tenen molt a fer. Amb &DCOP; poden consultar informació de tot tipus, així com establir valors dels estris i més. En aquest manual hi ha una secció sobre l'ús de &DCOP;. &kommander; pot enviar &DCOP; a qualsevol programa del &kde;, així com controlar-lo per &DCOP;. De fet, podeu enviar &DCOP; des de la línia d'ordres a qualsevol programa del &kde;. Llavors, quin és el problema? Doncs, que si voleu crear un elevat nombre d'ordres, us adonareu que la línia d'ordres de &DCOP; està bé per a ordres curtes, però pot causar retards si, per exemple, es criden diversos centenars de vegades des d'un bucle. Aquesta és la raó pel que &kommander; té una especial @dcop, ja que és aproximadament 1000 vegades més ràpida. Com que &kommander; pot enviar i rebre &DCOP;, es pot utilitzar &DCOP; per a scripts de &kommander;. Per això també tenim una especial &DCOP; local, @ldcop, que permet escriure molt menys per emetre una ordre. </para>

<para
>Són aquests tots els conceptes bàsics de &kommander;? No, però haurien d'ajudar-vos a donar sentit al seu funcionament i per a que no ho interpreteu com un llenguatge estrany. N'hi ha uns quants més. Els senyals i les ranures són els gestors d'esdeveniments de &kommander;. Un esdeveniment en un programa bàsicament significa que <quote
>ha succeït quelcom</quote
> com que s'ha creat un estri o que s'ha modificar el seu text. Aquests canvis <quote
>emeten senyals</quote
> i es poden connectar a una ranura receptora que després farà quelcom quan succeeixi l'esdeveniment. Un ús d'això en &kommander; és similar a Text &kommander;, <quote
>Text de població</quote
>. Text de població omplirà un estri quan es cridi. Igual que Text &kommander;, Text de població pot contenir cadenes de text o scripts. </para>

<para
>Amb això hauríeu de tenir clars els conceptes bàsics per començar a utilitzar &kommander;. Tractem de mantenir baix el nombre d'especials i utilitzem molt &DCOP;. La idea és que volem mantenir el poder de &kommander; el més coherent i racional possible. Trobareu que podreu incorporar qualsevol llenguatge d'script en &kommander; allà on el necessiteu, fins i tot múltiples llenguatges d'script en un diàleg. La resta de la informació en aquest document assumeix que esteu familiaritzat amb els conceptes i termes que aquí es presenten. Els exemples i guies d'aprenentatge també són molt útils per entendre el que es pot fer amb &kommander;. </para>
</sect1>
&editor; <sect1 id="executor">
<title
>L'executor</title>

<para
>L'executor, anomenat <application
>kmdr-executor</application
>, executa scripts de &kommander;. Aquest carrega els fitxers <literal role="extension"
>.kmdr</literal
> i genera dinàmicament un diàleg completament funcional. </para>

<sect2 id="executor-for-programmers">
<title
>Executor per a programadors</title>

<para
>Els desenvolupadors en C++ poden utilitzar la classe KmdrDialogInstance en els seus programes en C++, de manera que la funcionalitat d'execució resti encastada qualsevol aplicació, fent obsoleta la necessitat d'executar el programa executor extern. Per a la creació del diàleg estàndard, la sobrecàrrega és mínima, però la creació de l'aplicació &kde; pot endarrerir el diàleg per al voltant d'un segon. </para>
</sect2>

</sect1>

<sect1 id="create-dialog">
<title
>Crear un diàleg</title>

<para
></para>
</sect1>

</chapter>
