# Conceptes bàsics de &kommander;

Tamara
King

     tik@acm.org

Eric
Laffoon

     sequitur@kde.org

&traductor.Antoni.Bella;

# Conceptes bàsics de &kommander;

## Conceptes

&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 tenir un diàleg o intercanvi d'informació entre l'usuari i l'aplicació principal. Els elements d'un diàleg s'anomenen estris 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 Text associat, però ara s'anomena Text &kommander;. 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 Especial 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 PrimerNom i el segon Cognom podreu crear un botó i establir el seu Text &kommander; a El meu nom és @PrimerNom @Cognom. 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 Konsole 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 Enric: @PrimerNom -> @widgetText -> Enric.

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 On podria trobar un ús per a aquesta eina tan genial? Com resulta evident, la manipulació de cadenes s'utilitza gairebé en qualsevol lloc on mireu.

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

1. Passar cadenes al programa que crida a través de la sortida estàndard.

2. Cridar a programes executables.

3. Utilitzar &DCOP; per interactuar amb programes del &kde;.

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.

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 gimp i en una manera especial com: @exec(gimp). Simplement amb això obrireu el &GIMP; quan l'utilitzeu. També podríeu executar ls -l, però només veuríeu el resultat si s'executa des d'una consola.

El tercer cas és molt interessant. &DCOP; és l'abreviatura per a «Desktop COmmunication Protocol» (protocol de comunicació de l'escriptori) del &kde; i és molt poderós. Continuar i executar el programa kdcop 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.

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 ha succeït quelcom com que s'ha creat un estri o que s'ha modificar el seu text. Aquests canvis emeten senyals 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;, Text de població. Text de població omplirà un estri quan es cridi. Igual que Text &kommander;, Text de població pot contenir cadenes de text o scripts.

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;.

&editor;

## L'executor

L'executor, anomenat kmdr-executor, executa scripts de &kommander;. Aquest carrega els fitxers `.kmdr` i genera dinàmicament un diàleg completament funcional.

### Executor per a programadors

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.

## Crear un diàleg