Grundlæggende Kommander

Tamara King

Eric Laffoon

Oversætter: Rune Rønde Laursen

Indholdsfortegnelse

Koncepter
Editoren
Hovedvindue
Filmenuen
Redigeringsmenuen
Værktøjsmenuen
Layoutmenuen
Kør-menuen
Vinduemenuen
Hjælp-menuen
Eksekutoren
Eksekutor for programmører
At oprette en dialog

Koncepter

Kommander blev oprindeligt designet omkring et simpelt koncept der har vist sig næsten revolutionerende blandt visuelle designværktøjer. Typisk tillader disse værktøjer at man kan oprette dialoger og måske endda hovedvindue-grænseflader. Hovedvindue-grænseflader er naturligvis et programs hovedgrænseflade der typisk indeholder menuer, værktøjslinjer, statuslinje og programarealet. Dialoger er børnevinduerne som typisk ikke har menuer og således navngivet fordi deres formål er at “have en dialog” eller udveksle information mellem dig og hovedprogrammet. Elementerne i en dialog kaldes “kontroller” og du kobler dit program til disse kontroller. Kommander er anderledes pga. sin non-programmatiske natur i denne henseende. Det bruger konceptet om at associere tekst med kontrollerne på dialogen. Til at begynde med kaldtes dette “Associeret tekst” men kaldes nu “Kommander tekst”. Kontroller i Kommander-dialoger kan indeholde indholdet af andre kontroller gennem en reference og en kontrol kan referere sit eget indhold vha. en “Speciel” som ser således ud: @kontrolTekst. Specielle er kommandoer med specielle betydning i Kommander. Så hvis du har oprettet en dialog med to linjeEditorkontroller og navngivet den første “Fornavn” og den anden “Efternavn”, kan du oprette en knap og sætte dens Kommandertekst til “Mit navn er @Fornavn @Efternavn”. Du vil være nødt til at sætte @kontrolTekst i for- og efternavnskontrollerne, husker du? Vi må fortælle Kommander at referere til teksten i dem. Du kan køre dette fra en Konsol og den vil så udskrive strengen for dig. Så den vil referere fornavnet sådan her: @Fornavn -> hent kontrollen med navnet Fornavn(@Fornavn) -> @kontrolTekst -> hent indholdet af linjeEditorkontrollen. Så i dette tilfælde returnerer @Fornavn “Eric”: @fornavn -> @kontrolTekst -> “Eric”.

Dette er kernen af Kommander. Det er hvad du kan gøre med disse funktionaliteter der gør det interessant. For det første er det værd at bide mærke i, at sammenlignet med den almindelige fremgangsmåde i et sprogbaseret værktøj, er der ikke behov for programmeringsudtryk i Kommander, for at definere disse operationer. Dette gør Kommander hurtig for udviklere. For slutbrugere er det meget simplere end at lære sprogkontruktioner. For alle betyder det at man kan fokusere på opgaven og ikke hele tiden sidde med referencedokumentationen i hånden. I starten, når folk introduceres for et værktøj som Kommander, er det første spørgsmål altid “Hvad kan jeg bruge sådan et lækkert værktøj til?” Det viser sig at strengmanipulation bruges sådan ca. overalt.

Så hvad kan Kommander? Her er en liste kogt ned til de mest grundlæggende funktioner. Kommander kan:

  1. Videregive strenge til et kaldende program gennem stdout.

  2. Kald eksekverbare programmer.

  3. Brug DCOP for at kommunikere med KDE-programmer.

Hvis du ikke er programmør, vil du måske gerne have en forklaring for lægmand. I den første, hvis du starter Kommander fra en konsol, så er konsol det kaldende program. Det er et forældre barn forhold der. At sende en besked til en konsol gøre med barnets standardudskrift (sdtout), det hedder sådan fordi der også er fejludskrift. Dette er interessant fordi nogle programmer som Quanta Plus beruger stdout for at modtage information fra programmer de starter. Så Kommander dialoger kan udskrive deres tekststrenge direkte i Quanta Plus' editor hvis de kaldes fra Quanta Plus Det betyder at Kommander-dialoger kan være brugbare udvidelser til programmer.

Det andet tilfælde er når man kalder en eksekverbar. Et hvilket som helst program der kører på dit system er eksekverbart. Selv et scriptprogram køres af scriptets fortolker, så teknisk set eksekveres det også. Kommander kan køre kommandoer ligesom konsollen, selv hvis du kører det fra menuen. Hvis du f.eks. ville åbne The GIMP ville du have en knap der afleder strengen “gimp” og putte den i en speciel på denne måde: @exec(gimp). På ingen tid vil du se The GIMP åbnes når du bruger dette. Du kan også exec “ls -l”, men du ville kun kunne se uddata når du kører det i en konsol.

Det tredje tilfælde er meget interessant. DCOP er kort for KDE's DesktopCommunicationProtocol og det er meget kraftigt.Prøv at køre kdcop-programmet og kig lidt på det. Du finder hurtigt ud af at i alle KDEprogrammer der er opbygget efter standarderne, har ting der sker med DCOP og i de veldesignede sker der rigtig meget. Med DCOP kan du sspørge efter al mulig information såvel som at sætte værdier for kontroller og meget andet. Der er et afsnit om at bruge DCOP i denne manual. Kommander kan sende DCOP til et hvilket som helst KDE-program, såvel som at blive kontrolleret af DCOP. Faktisk kan du sende DCOP fra kommandolinjen til et hvilket som helst KDE-program. Så hvad er al den snak til for? Sagen er at hvis du vil udføre mange kommandoer, finder du hurtigt ud af at kommandolinjen og DCOP er fine til korte kommandoer, men kan give forsinkelser når det f.eks. kaldes fra en løkke et par hundrede gange. Det er derfor Kommander har en @dcop speciel, fordi den er ca. 1000 gange hurtigere. Fordi Kommander kan sende og modtage DCOP, kan DCOP bruges til at scripte Kommander. Det er også derfor vi har en lokal DCOP-speciel @ldcop, som tillader dig at skrive meget mindre for at bruge en kommando.

Er dette er alle kernekoncepterne i Kommander? Nej men det burde være en hjælp til dig for at finde ud af hvordan det virker, så det som vi har beskrevet ikke lyder som rent volapyk. Der er et par koncepter mere. Kommander bruger signaler og slot til at håndtere begivenheder. En begivenhed i et program betyder sådan set bare “der skete noget” som oprettelsen af en kontrol eller en ændring af noget tekst. Disse ændringer “udsender signaler” og du kan forbinde disse signaler til en modtagende slot som så gør et eller andet når begivenheden sker.En måde at bruge Kommander er søsteren til Kommanders Tekst, “BefolkningsTekst” BefolkningsTekst, befolker en kontrol når den kaldes. Ligesom KommanderTekst, kan BefolkningsTekst indeholde tekststrenge eller scripter.

Nu har du fået lært de simple ting i Kommander så du kn komme i gang. Vi forsøger at holdet antallet af specielle på et lavt niveau og vi bruger DCOP rigtig meget. Idéen er at vi vil holde Kommanders fordele så konsistente og strømlinede som muligt. Du vil opdage at du kan indarbejde et hvilket som helst scriptsprog i Kommander når behovet opstår og endda flere scriptsprog i en dialog. Resten af informtionen i dette dokument antager at du er bekendt med de her præsenterede koncepter og udtryk. Eksemplerne og gennemgangene er også meget brugbare når man skal forstå hvad Kommander kan.