EnglezăFrancezăSpaniolă

Rulați servere | Ubuntu > | Fedora > |


Favicon OnWorks

FvwmScript - Online în cloud

Rulați FvwmScript în furnizorul de găzduire gratuit OnWorks prin Ubuntu Online, Fedora Online, emulator online Windows sau emulator online MAC OS

Aceasta este comanda FvwmScript care poate fi rulată în furnizorul de găzduire gratuit OnWorks folosind una dintre multiplele noastre stații de lucru online gratuite, cum ar fi Ubuntu Online, Fedora Online, emulator online Windows sau emulator online MAC OS

PROGRAM:

NUME


FvwmScript - modul pentru construirea unei interfețe grafice cu utilizatorul

REZUMAT


FvwmScript trebuie să fie generat de Fvwm. Nu va funcționa din linia de comandă.

DESCRIERE


FvwmScript este un modul care vă permite să construiți multe aplicații grafice, cum ar fi
accesorii desktop, panou de butoane cu meniuri pop-up, dialoguri modale... La pornire,
FvwmScript citește fișierul care este specificat pe linia de comandă. Acest fișier conține
scenariu. Acest script nu este inclus în fișierul de configurare al Fvwm.

Un script FvwmScript este complet controlabil prin utilizarea tastaturii. (Shift)-Tab circulă
în jurul widget-urilor, Return simulează un clic de mouse, săgețile mută cursorul sau schimbă
valorile widget-ului și Escape „anulează” pentru Menu și PopupMenu.

INVOCARE


FvwmScript poate fi invocat prin inserarea liniei `Module FvwmScript name_of_script' în
fișier .fvwm2rc. Fișierul „name_of_script” poate începe cu o bară oblică, caz în care, este a
cale complet calificată și fișierul este citit. Dacă „name_of_script” nu începe cu a
slash, FvwmScript va arăta în câteva locuri diferite. Dacă .fvwm2rc conținea
linia de comandă `*FvwmScript: Path path_of_the_script_directory', FvwmScript va încerca asta
director. Dacă acest lucru nu funcționează, FvwmScript încearcă directorul de configurare a sistemului și
directorul de configurare a utilizatorului, așa cum este descris în comanda „Citește” din fvwm man
.

Comanda de pornire a FvwmScript poate fi plasată singură pe o linie, dacă FvwmScript trebuie să fie
generat în timpul inițializării fvwm sau poate fi legat de un meniu sau un buton al mouse-ului sau
apăsarea tastei pentru a o invoca mai târziu.

CONFIGURARE OPŢIUNI


Următoarele comenzi pot fi utilizate în fișierul de configurare (vezi fvwm(1), secțiunea MODULUL
COMANDE pentru detalii). Ele sunt folosite numai dacă comenzile script-urilor corespunzătoare nu sunt
folosit în scenariu.

*FvwmScript: DefaultFont font
Specifică fontul implicit care va fi utilizat. Dacă nu este specificat cu această comandă sau în
script cu comanda Font, se presupune că font fix.

*FvwmScript: DefaultFore culoare
Specifică culoarea implicită de prim plan care va fi utilizată. Dacă nu este specificat cu aceasta
comanda sau în scriptul cu comanda ForeColor, se folosește negru.

*FvwmScript: DefaultBack culoare
Specifică culoarea de fundal implicită care va fi utilizată. Dacă nu este specificat cu aceasta
comanda sau în scriptul cu comanda BackColor se folosește grey85.

*FvwmScript: DefaultHilight culoare
Specifică culoarea de iluminare implicită care va fi utilizată. Dacă nu este specificat cu această comandă
sau în scriptul cu comanda HilightColor se folosește grey100.

*FvwmScript: DefaultShadow culoare
Specifică culoarea umbră implicită care va fi utilizată. Dacă nu este specificat cu această comandă
sau în scriptul cu comanda ShadowColor se folosește grey55.

*FvwmScript: DefaultColorset set de culori
Spune modulului să folosească set de culori set de culori ca set de culori implicit. Consultați
Pagina de manual FvwmTheme pentru detalii despre seturile de culori.

ANATOMIE OF A SCRIPT


FvwmScript folosește un anumit limbaj de programare. Un scenariu este compus din cinci părți.
Titlul conține caracteristicile generale ale ferestrei și proprietățile implicite pentru toate
widget-uri. A doua parte conține instrucțiuni care sunt executate la pornirea programului
scenariu. A treia parte conține sarcini periodice care sunt executate în fiecare secundă. The
partea a patra conține instrucțiuni care sunt executate la ieșire. Și ultima parte conține
descrierea widget-urilor. Un widget constă din unsprezece tipuri de elemente: etichete text,
intrări de text pe o singură linie, butoane radio, casete de selectare, butoane, orizontale și verticale
scrollbars, dreptunghiuri, meniuri pop-up, swallowexecs și mini scrollbars.

TITLUL OF A SCRIPT


Sintaxa este următoarea:

WindowTitle şir
Această opțiune setează titlul ferestrei.

WindowSize lățime înălțime
Această opțiune setează dimensiunea ferestrei. lățime și înălțime sunt valori numerice.

Poziția ferestrei x y
Această opțiune setează poziția ferestrei. x și y sunt valori numerice.

Culoarea din fata {culoare}
Această opțiune setează culoarea implicită de prim plan pentru toate widget-urile.

Culoare de fundal {culoare}
Această opțiune setează culoarea implicită de fundal pentru toate widget-urile.

HilightColor {culoare}
Această opțiune setează culoarea de iluminare implicită pentru toate widget-urile.

ShadowColor {culoare}
Această opțiune setează culoarea umbră implicită pentru toate widget-urile.

set de culori {n}
Această opțiune setează setul de culori implicit pentru toate widget-urile.

font {font}
Această opțiune setează fontul implicit pentru toate widget-urile.

UtilizațiGettext [cale_locale]
Activați utilizarea mecanismului gettext care este utilizat de WindowLocaleTitle,
LocaleTitle, instrucțiuni ChangeLocaleTitle și funcția Gettext. Daca nu
este dat un argument, este folosit catalogul local FvwmScript implicit. Acest catalog este
sub directorul de instalare local fvwm, iar domeniul text este FvwmScript
(prefix_instalare/share/locale/*/LC_MESSAGES/FvwmScript.mo). Puteți reseta acest lucru
catalog sau adăugați unele cataloage exact în același mod decât cu LocalePath fvwm
comanda (consultați pagina de manual fvwm). Această instrucțiune ar trebui să fie plasată înaintea
Instrucțiunea WindowLocaleTitle.

WindowLocaleTitle şir
Această opțiune setează titlul ferestrei, dar folosește cataloagele locale definite cu
Utilizați Gettext.

INITIALIZARE


Această parte conține instrucțiuni care vor fi executate la pornire. De exemplu:
init
Începe
Faceți „Exec cat tada.voc > /dev/dsp”
WarpPointer 1
Setați $ToDo=Reporniți
Sfârşit
Aceste instrucțiuni sunt folosite pentru a reda un sunet, pentru a muta indicatorul la widget-ul 1 și la
inițializați $ToDo la „Reporniți” la fiecare pornire.

PERIODIC SARCINI


Această parte a scriptului conține instrucțiuni care sunt executate în fiecare secundă. Pentru
exemplu:
Sarcini periodice
Începe
Dacă (RemainderOfDiv (GetTime) 10)==0 Atunci
Efectuați {Exec xcalc}
Sfârşit
Acest exemplu arată cum să lansați xcalc la fiecare 10 secunde.

THE,en PĂRĂSI FUNCȚIA


Această parte a scriptului conține instrucțiuni care sunt executate atunci când scriptul se iese
(după instrucțiunea Quit sau dacă închideți fereastra cu Închidere, Ștergere sau Distruge
comanda fvwm). De exemplu
QuitFunc
Începe
Nu {Echo pa, pa}
Sfârşit
Rețineți că, dacă ați folosit comanda KillModule fvwm pentru a închide scriptul, unele
instrucțiuni sau funcții care se bazează pe existența unei legături de comunicare între
scriptul și fvwm nu vor fi executate (de exemplu comanda Do). A ucide lin pe a
scriptul cu o comandă fvwm vezi COMANDE secţiune.

PRINCIPAL OF A SCRIPT


A doua parte a scriptului conține descrierea fiecărui widget din script.
Fiecare descriere widget are două părți. Prima parte descrie proprietățile inițiale,
a doua parte conține instrucțiuni care sunt executate atunci când widget-ul primește mesaje.
Toate widget-urile pot trimite și primi mesaje. Toate mesajele sunt identificate printr-un număr. The
mesajul „UserAction” este trimis unui widget atunci când utilizatorul operează widgetul. Sintaxa
pentru prima parte este:
ID widget # Un număr între 1 și 999 inclusiv
Proprietate
Tastați șir
Dimensiune latime inaltime
Poziția xy
Titlu { șir }
Valoarea int
MaxValue int
MinValue int
Șir de font
ForeColor { culoare }
BackColor { culoare }
HilightColor { culoare }
ShadowColor { culoare }
Set de culori int
Steaguri steaguriOpt
Opțiunea flagsOpt pentru Flags este o listă separată de spații care conține unul sau mai multe dintre ele
Cuvinte cheie Ascuns, NoReliefString, Fără focalizare, Stânga / Centru / Dreapta. Ascuns este utilizat pentru a
specificați dacă widget-ul este ascuns la pornire. NoReliefString specifică dacă sunt desenate șiruri
cu ușurare sau nu. Fără focalizare specifică dacă widget-ul poate obține focalizarea tastaturii sau nu.
În mod implicit, toate widget-urile se concentrează, cu excepția Rectangle, HDipstick și VDipstick care nu pot.
Mai mult, widget-urile NoFocus sunt omise atunci când circulați prin intermediul widget-urilor cu
(Shift-)Scurtătură pentru tab. Stânga / Centru / Dreapta specifică poziția textului. Acestea se aplică
numai pentru ItemDraw, List, Menu, PopupMenu și PushButton. Valoarea implicită este Centru pentru ItemDraw
și PushButton și Stânga pentru celelalte widget-uri.

LocaleTitle poate fi folosit în loc de Titlu, pentru a utiliza cataloagele locale definite cu
Utilizați Gettext.

Trebuie specificată poziția fiecărui widget.

Sintaxa pentru a doua parte este:
Principal
Mesajul caz al
SingleClic:
Începe
# listă de instrucțiuni care vor fi
# executat când widget-ul primește
# mesaj „SingleClic”. Acest mesaj este
# generat de utilizator.
Sfârşit
1:
Începe
# listă de instrucțiuni care vor fi
# executat când widget-ul primește
# mesaj 1
Sfârşit
Sfârşit

LISTA OF WIDGETS


Există cincisprezece tipuri de widget-uri.

Caseta de bifat: Afișează caseta de selectare cu un șir.

Titlu: titlul casetei de selectare.

Valoare: dacă Valoarea este egală cu 1, caseta este bifată, altfel nu este.

Mărimea proprietatea este ignorată.

HDrujă: Afișați o joja orizontală.
Acest widget poate fi folosit pentru a afișa utilizarea discului.

Valoare: specificați valoarea curentă a jojei.

MinValue: specificați valoarea minimă a jojei.

MaxValue: specificați valoarea maximă a jojei.

Se impune o dimensiune minimă de 30x11.

HScrollBar: Afișează o bară de defilare orizontală.

Valoare: poziția degetului mare.

MaxValue: limita superioară a valorii.

MinValue: limita inferioară a valorii.

Proprietatea înălțime este ignorată și se impune o lățime minimă. Lățimea ar trebui să fie
cel puțin intervalul plus 37 dacă toate valorile trebuie să fie selectabile de exemplu un min de 0 și
max of 10 are un interval de 11 și, prin urmare, ar trebui să aibă o lățime minimă de 48.

ItemDraw: Afișează o pictogramă și/sau un șir.

Titlu: șir de afișat.

Icoană: pictograma de afișat.

MaxValue: coordonata x a cursorului.

MinValue: coordonata y a cursorului.

Dimensiunea este suficient de mare pentru a conține titlul și/sau pictograma.

Listă: Afișează o listă.
Lista permite utilizatorului să aleagă între diferite opțiuni.

Valoare: specificați ce opțiune este selectată.

MinValue: Prima opțiune vizibilă.

Titlu: titlul conține opțiunile afișate în listă. Sintaxa este următoarea:
{Opțiunea 1|Opțiunea 2|...|Opțiunea N}. Toate meniurile sunt afișate în partea de sus a ferestrei.

Se impune o înălțime minimă de trei articole și se face ca lățimea să fie de cel puțin
108.

Meniu: Afișează un meniu care permite utilizatorului să aleagă o opțiune.
Elementele de tip Meniu sunt dispuse de la stânga la dreapta în partea de sus a ferestrei.
Proprietățile de dimensiune și poziție sunt ignorate.

Valoare: specificați ce opțiune este selectată.

Titlu: titlul conține opțiunile afișate în meniu. Sintaxa este următoarea:
{Opțiunea 1|Opțiunea 2|...|Opțiunea N}.

MiniScroll: Afișează o bară de defilare verticală foarte mică.

Valoare: poziția degetului mare.

MaxValue: limita superioară a valorii.

MinValue: limita inferioară a valorii.

Dimensiunea este setată la 19x34.

PopupMenu: Afișează un meniu pop-up.

Valoare: specificați ce opțiune este selectată.

Titlu: titlul are următoarea sintaxă: {Opțiune 1|Opțiune 2|...|Opțiune N}."Opțiune
1|Opțiunea 2|...|Opțiunea N" este meniul pop-up care este afișat când apăsați mouse-ul
butonul.

Proprietatea dimensiune este ignorată.

Apasa butonul: Afișează butonul de apăsare cu o pictogramă și/sau un șir.

Titlu: acest șir are următoarea sintaxă {Titlul butonului|Opțiunea 1|Opțiune
2|Opțiunea 3|...|Opțiunea N}. „Opțiunea 1|Opțiunea 2|...|Opțiunea N” este meniul pop-up care
este afișat când apăsați butonul din dreapta.

Icoană: pictograma de afișat.

Butonul este suficient de mare pentru a se potrivi pictogramei și sau etichetei.

RadioButon: Afișează butonul radio cu un șir.

Titlu: titlul butonului radio.

Valoare: dacă Valoarea este egală cu 1, caseta este bifată, altfel nu este.

Proprietatea dimensiune este ignorată

Dreptunghi: Afișează un dreptunghi.
Acest tip de widget poate fi folosit pentru a decora fereastra.

SwallowExec
Acest tip de widget face ca FvwmScript să genereze un proces și să captureze primul
fereastră al cărei nume sau resursă este egală cu Titlu și afișați-o în script
fereastră.

Titlu: specificați numele ferestrei care va fi capturat și afișat în script
fereastră.

SwallowExec: specificați linia de comandă de executat pentru a genera procesul. Modulele pot
fi de asemenea înghițit.

Valoare: specificați aspectul chenarului. Valoare posibilă: -1, 0, 1.

Dimensiunea este făcută să fie de cel puțin 30x30

TextField: Afișează un câmp de introducere a textului.
Câmpul de introducere a textului poate fi folosit pentru a edita un șir cu o singură linie.

Titlu: conținutul câmpului de text.

Valoare: poziţia punctului de inserare.

MinValue: poziția finalului selecției.

MaxValue: primul caracter vizibil al titlului

Proprietatea înălțime este ignorată, lățimea este făcută să fie cu cel puțin 40 de pixeli mai lată
decât conținutul inițial.

VJoja: Afișați o joja verticală.

Valoare: specificați valoarea curentă a jojei.

MinValue: specificați valoarea minimă a jojei.

MaxValue: specificați valoarea maximă a jojei.

Dimensiunea este făcută să fie de cel puțin 11x30.

VScrollBar: Afișează o bară de defilare verticală.

Valoare: poziția degetului mare.

MaxValue: limita superioară a valorii.

MinValue: limita inferioară a valorii.

Proprietatea width este ignorată și se impune o înălțime minimă. Înălțimea ar trebui
să fie cel puțin intervalul plus 37 dacă toate valorile trebuie să fie selectabile, de exemplu, un min de 0
iar max de 10 are o gamă de 11 și, prin urmare, ar trebui să aibă o înălțime minimă de 48.

INSTRUCȚIUNI


Iată descrierea tuturor instrucțiunilor.

HideWidget id : ascunde widget-ul numerotat id.

ShowWidget id: arată widgetul numerotat id.

SchimbațiValoarea id1 id2
Setați valoarea widget-ului numerotat id1 la id2.

ChangeMaxValue id1 id2
Setați valoarea maximă a widget-ului numerotat id1 la id2.

ChangeMinValue id1 id2
Setați valoarea minimă a widget-ului numerotat id1 la id2.

Schimbați titlul id1 id2
Setați titlul widget-ului numerotat id1 la id2.

SchimbațiWindowTitle şir
Setați titlul ferestrei la şir.

ChangeWindowTitleFromArg numarg
Setați titlul ferestrei la valoarea lui numarg-al-lea argument al scriptului.

ChangeLocaleTitle id1 id2
Ca ChangeTitle, dar utilizați cataloagele locale definite cu UseGettext.

Schimbă iconița id1 id2
Setați pictograma widget-ului numerotat id1 la id2.

ChangeForeColor id1 {culoare}
Setați culoarea primului plan a widget-ului numerotat id1 la {culoare}.

ChangeBackColor id1 {culoare}
Setați culoarea de fundal a widget-ului numerotat id1 la {culoare}.

ChangeColorSet id1 id2
Setați setul de culori al widget-ului numerotat id1 la id2. Specificarea widget-ului 0 setează
set de culori pentru fereastra principală.

Schimba poziția id1 x y
Mutați widgetul numerotat id1 a pozitiona (x,y).

Schimbați dimensiunea id1 lățime înălțime
Setați dimensiunea widget-ului numerotat id1 la (lățime,înălțime).

Schimbați font id1 newfont
Setați fontul widget-ului numerotat id1 la newfont.

WarpPointer id
Deformați indicatorul mouse-ului în widgetul numerotat id.

WriteToFile nume de fișier {str1} {str2} etc
Scrieți în fișier nume de fișier șirul care este concatenarea tuturor argumentelor
str1, str2, Etc

face {comandă args}
Executați comanda fvwm în blocul Do. Orice comandă fvwm așa cum este descrisă în
Se poate folosi pagina de manual fvwm2. Comenzile sunt trimise din acest modul către principalul fvwm
program de prelucrare. Lungimea comenzii și a argumentelor nu poate depăși 988
caractere.

Setați $a fost={str1} {str2} etc
Concatenați toate argumentele într-un șir și setați variabila $a fost la acest șir.

Ieșire: părăsiți programul.

Trimite semnal id1 id2
Trimite un mesaj numerotat id2 la widget id1.

SendToScript id_script {str11} {str2} etc
Trimiteți un mesaj către scriptul identificat de id_script. Mesajul este
concatenarea lui str1, str2...

Cheie Nume cheie Modificatorul id sig str1 str2 etc
Leagă o tastă de la tastatură la instrucțiune

Trimite semnal id sig

și setează „ultimul șir” la concatenarea lui str1, str2... (vezi
funcția LastString). The Nume cheie și Modificatorii câmpurile sunt definite ca în fvwm
Comandă cheie.

ARGUMENTE


Majoritatea comenzilor folosesc argumente. Există două tipuri de argumente: numere și șiruri. A
Argumentul numeric este o valoare care este între -32000 și +32000. Un șir este întotdeauna
înconjurat cu bretele. Variabilele încep întotdeauna cu caracterul „$” și pot conține ambele
numere și șiruri.

FUNCȚII


Toate funcțiile folosesc argumente. Funcțiile pot returna atât un șir, cât și un număr. Sintaxa
este:
(funcția argument1 argument2 etc)
Iată lista completă a argumentelor:

(GetTitle id)
Returnează titlul widget-ului numerotat id.

(Obține valoare id)
Returnează valoarea curentă a widget-ului numerotat id.

(GetMinValue id)
Returnează valoarea minimă curentă a widget-ului numerotat id.

(GetMaxValue id)
Returnează valoarea maximă curentă a widget-ului numerotat id.

(GetFore id)
Returnează valoarea prim-plan RGB actuală a widget-ului numerotat id în format hex
RRGGBB.

(Vino înapoi id)
Returnează valoarea actuală de fundal RGB a widget-ului numerotat id în format hex
RRGGBB.

(GetHilight id)
Returnează valoarea actuală de iluminare RGB a widget-ului numerotat id în format hex
RRGGBB.

(GetShadow id)
Returnează valoarea actuală a umbrei RGB a widget-ului numerotat id în format hex
RRGGBB.

(GetOutput {str} int1 int2)
Execută comanda str, primește ieșirea standard și returnează cuvântul care se află în
linia int1 iar în poziție int2. Dacă int2 este egal cu -1, se întoarce GetOutput
linia completă.

(NumToHex int)
Returnează valoarea hexazecimală a lui int.

(HexToNum {str})
Returnează valoarea zecimală a str, str trebuie să fie o valoare hexazecimală.

(Adăuga int1 int2)
Returnează rezultatul (int1+int2).

(Mult int1 int2)
Returnează rezultatul (int1*int2).

(Div int1 int2)
Returnează rezultatul (int1/int2).

(StrCopy {str} int1 int2)
Returnează șirul care se află între pozițiile int1 și int2. De exemplu, (StrCopy
{Bună ziua} 1 2) întoarce {El}

(LaunchScript {str})
Această funcție lansează scriptul numit str și returnează un număr de identificare.
Acest număr este necesar pentru a utiliza funcțiile SendToScript și ReceiveFromScript.
Șirul str conține numele scriptului și câteva argumente.

(GetScriptArgument {int})
Această funcție returnează scriptul de argument utilizat în funcția LaunchScript. Dacă
int este egal cu zero, GetScriptArgument returnează numele scriptului.

(GetScriptFather)
Această funcție returnează numărul de identificare al tatălui scriptului.

(ReceivFromScript {int})
Această funcție returnează mesajul trimis de scriptul numerotat int.

(RemainderOfDiv {int1 int2}): t
Această funcție returnează restul diviziunii (int1/int2).

(Fă-ți timp)
Această funcție returnează timpul în secunde.

(GetPid)
Această funcție returnează id-ul de proces al scriptului.

(Gettext {str})
Această funcție returnează traducerea lui str utilizând catalogul(ele) local(e) definit(e).
cu UseGettext.

(SendMsgAndGet {comId} {cmd} bool)
Trimite comanda cmd cu identificator comId la un program extern gata să
comunica cu scriptul folosind un protocol specific FvwmScript. Dacă bool este 0
FvwmScript nu așteaptă un răspuns de la programul extern. În acest caz,
valoarea returnată este 1 dacă mesajul poate fi trimis către programul extern și 0 dacă
nu este cazul. Dacă bool este 1, apoi FvwmScript așteaptă un răspuns de la
program extern și valoarea returnată este acest răspuns (o linie de cel mult 32000
personaje). Dacă comunicarea eșuează, valoarea returnată este 0. Consultați secțiunea
A COMUNICARE PROTOCOL pentru o descriere a protocolului de comunicare utilizat.

(Analiza {str} int)
Unde str trebuie să fie un șir de forma:
X1S1X2S2X3S3...SnXn
unde Xn sunt numere care conțin patru cifre zecimale și unde Sn sunt șiruri de
lungimea exact Xn. Valoarea returnată este șirul Sint. Dacă int este în afara razei de acțiune
(de exemplu, >n) valoarea returnată este șirul gol. Dacă str nu este din cele specificate
forma, valoarea returnată este imprevizibilă (dar goală în medie). Această funcție
este util pentru a gestiona șirurile returnate de funcția SendMsgAndGet.

(LastString)
Această funcție returnează „șirul de lucru curent” pentru instrucțiunea Key și
Comanda SendString (vezi COMANDE secțiune). La pornire, acest șir este gol, dar
când este detectată o legare a tastei (respectiv, se primește o comandă SendString),
atunci acest șir este setat la șirul asociat instrucțiunii (respectiv,
la comanda).

CONDIŢIONAL BUCURI


Există trei tipuri de bucle condiționate. Instrucțiunea „If-Then-Else” are
următoarea sintaxă:
Dacă $ToDo=={Deschide xcalc} Atunci
Efectuați {Exec xcalc &} # Listă de instrucțiuni
Altfel
Începe
Efectuați {Exec killall xcalc &} # Listă de instrucțiuni
Faceți {Exec echo xcalc killed > /dev/console}
Sfârşit
A doua parte „Else-Begin-End” este opțională. Dacă bucla conține o singură instrucțiune,
Începutul și Sfârșitul pot fi omise. Instrucțiunea „While-Do” are următoarea sintaxă:
In timp ce $i<5 Do
Începe
Set $i=(Adăugați i 1) # Lista de instrucțiuni
Sfârşit
Două șiruri pot fi comparate cu „==" și două numere pot fi comparate cu „<”, „<=",
"==", ">=", ">". Bucla „For-Do-Begin-End” are următoarea sintaxă:
Pentru $i=1 To 20 Do
Începe
Efectuați {Exec xcalc &} # Listă de instrucțiuni
Sfârşit

COMANDE


Următoarea comandă fvwm poate fi executată în orice moment

SendToModule ScriptName SendString id sig str

trimite la orice modul cu alias sau nume care se potrivește ScriptName șirul

SendString id sig str

Când un FvwmScript primește un astfel de mesaj, îl trimite către Widget id semnalul numerotat
sig iar sfoara str poate fi obținut cu funcția LastString. Să dăm un
exemplu. Să spunem că aveți un script MyScript cu widget-ul:
Widget 50
Proprietate
Tastați PushButton
Titlu {Ieșire}
...
Principal
Mesajul caz al

SingleClic:
Începe
Părăsi
Sfârşit

1:
Începe
Set $str = (LastString)
Dacă $str == {Ieșire}, atunci
Părăsi
Altfel
SchimbareTitul 33 $str
Sfârşit

Sfârşit
Apoi comanda
SendToModule MyScript SendString 50 1 str
forțează MyScript să iasă dacă str este egal cu „Ieșire” și dacă nu schimbă titlul lui
Widget 33 la str.

Această comandă poate fi folosită pentru a schimba titlul ferestrei

SendToModule ScriptName SchimbațiWindowTitle nouTitlu [Titlu vechi]

face ca orice modul cu alias sau nume care se potrivește ScriptName își schimbă
titlul ferestrei asociat la nouTitlu. Argumentul opțional vechiTitlu are sens când este acolo
sunt mai multe instanțe ale aceluiași script. Vă permite să evitați schimbarea numelui
toate aceste instanțe prin specificarea numelui ferestrei asociate scriptului țintă
(vezi exemplul de mai jos).

+ I Modulul FvwmScript FvwmStorageSend „/dev/hda6”
+ Aștept FvwmStorageSend
+ I SendToModule FvwmStorageSend ChangeWindowTitle HDA6
+ I Modulul FvwmScript FvwmStorageSend „/dev/hda1”
+ Aștept FvwmStorageSend
+ I SendToModule FvwmStorageSend ChangeWindowTitle HDA1 FvwmStorageSend

Fără argumentul FvwmStorageSend în ultimul caz, comanda SendToModule ar avea
a schimbat în HDA1 numele ambelor instanțe ale FvwmStorageSend.

EXEMPLE


Veți găsi exemple de scripturi în directorul de configurare fvwm.

FvwmScript-BellSetup, FvwmScript-KeyboardSetup, FvwmScript-PointerSetup și FvwmScript-
ScreenSetup sunt un set de scripturi care modifică setările X. Aceste scripturi salvează preferințele
într-un fișier numit ~/.xinit-fvwmrc (Dacă doriți să utilizați un alt nume de fișier, dați-l drept
primul argument al scenariului). Dacă doriți să încărcați aceste preferințe la fiecare pornire,
trebuie să includeți linia „.xinit-fvwmrc” în fișierul dumneavoastră .xinitrc (sau .xsession) înainte
pornind fvwm.

FvwmScript-BaseConfig modifică focalizarea fvwm și politica mouse-ului de paginare, plasarea ferestrelor,
opacitatea și alte caracteristici ale comenzilor de mutare și redimensionare, atragere și umbrire
animaţie. Acest script salvează preferințele într-un fișier numit .FvwmBaseConfig în fișierul utilizatorului
director de date (adică $HOME/.fvwm sau $FVWM_USERDIR dacă este setat). Dacă doriți să încărcați acestea
preferințe la fiecare pornire trebuie să adăugați linia „Citiți .FvwmBaseConfig” în fvwm
Fișier de configurare. Dacă doriți să utilizați un alt nume de fișier, dați-l ca prim argument
a scenariului. Când faceți clic pe Ok sau Aplicați o funcție fvwm pe care o puteți defini numită
Se apelează BaseConfigOkFunc sau BaseConfigApplyFunc. Acest lucru permite reîncărcarea specifice
stiluri de aplicație pe care scriptul le-a distrus (de exemplu, AddToFunc BaseConfigOkFunc am citit
MyAppStyle).

FvwmScript-Buttons este un panou de butoane care poate înlocui FvwmButtons (acest script acceptă
meniuri pop-up și necesită xload, xclock, FvwmPager, TkDesk). FvwmScript-Colorset permite
tu să-ți editezi setul de culori (vezi FvwmTheme). FvwmScript-Date vă permite să setați data și
timp. FvwmScript-FileBrowser este un browser de fișiere folosit de celelalte scripturi. FvwmScript-
Find este un front-end elementar de găsit. FvwmScript-Quit vă permite să părăsiți fvwm, să reporniți
fvwm sau un alt manager de ferestre sau închideți și reporniți computerul. FvwmScript-
ScreenDump este un dumper cu ecran. FvwmScript-WidgetDemo este un exemplu de script pur. Vezi
următoarea secțiune pentru FvwmScript-ComExample.

A COMUNICARE PROTOCOL


FvwmScript este un limbaj de programare slab (dar simplu). Dacă trebuie să te descurci cu multe
date și/sau trebuie să utilizați algoritmi complecși, ar trebui să utilizați un program extern (în perl
de exemplu) și „trimiteți” informațiile dorite către scriptul dumneavoastră FvwmScript. Primul
abordarea este de a folosi funcția GetOutput. Acest lucru este simplu, dar ar trebui să rulați din nou
program extern de fiecare dată când aveți nevoie de informații de la acesta (și acest lucru poate cauza performanțe
Probleme). A doua abordare este utilizarea funcției SendMsgAndGet care se extinde
FvwmScript prin utilizarea oricărui limbaj de programare care se poate ocupa de conducte numite (fifos). Noi
descrieți această soluție în această secțiune. (O a treia abordare este utilizarea fvwm-themes-com de la
pachetul fvwm-themes, dar de fapt metoda SendMsgAndGet este o implementare a
fvwm-themes-com în interiorul FvwmScript și aceasta oferă performanțe mai bune).

Practic, porniți un program „extern” (programul pe scurt) din FvwmScript
script (scenariul pe scurt). Acest program rulează în fundal și utilizați
Funcția SendMsgAndGet din scriptul dvs. pentru a pune întrebări sau pentru a oferi instrucțiuni
program. Programul trebuie să respecte cu strictețe un anumit protocol de comunicare. Primul din
tot ce există este un identificator comId pentru comunicare, ar trebui să conțină id-ul procesului
a scriptului pentru o bună implementare a protocolului (utilizați funcția GetPid și treceți
il comId printr-o opțiune a programului). Protocolul folosește două fifos, în utilizatorul fvwm
director, denumit: .tmp-com-in-comId și .tmp-com-out-comId. Programul ar trebui să creeze și
ascultați pe .tmp-com-in-comId fifo. Apoi, când FvwmScript execută o funcție a
formă:

Setați $răspuns = (SendMsgAndGet {comId} {cmd} bool)

FvwmScript scrie cmd pe acest fifo. În acest fel, programul poate citi cmd și poate
executați acțiunea corespunzătoare (ar trebui să eliminați in fifo pentru a suporta mai multe
comunicatii). Dacă bool este 0, FvwmScript nu așteaptă un răspuns de la program și
returnează 1 dacă acțiunile anterioare reușesc și 0 dacă au eșuat (atunci programul ar trebui să „go
înapoi" la in fifo). Dacă bool este 1, apoi FvwmScript așteaptă (20 sec) un răspuns de la
programul și, la rândul său, returnează răspunsul la script (rețineți că bool nu se transmite la
programul deoarece trebuie să știe ce comenzi au nevoie de răspuns). Pentru a răspunde, programul creează
.tmp-com-out-comId fifo și scrie răspunsul pe el. Programul ar trebui să aștepte până
FvwmScript citește răspunsul și apoi ar trebui să elimine fifo-ul de ieșire și să revină la intrare
fifo. Răspunsul ar trebui să fie format dintr-un rând de cel mult 32000 de caractere (aruncă o privire
la funcția Parse pentru a gestiona mai multe linii ca o singură linie).

O modalitate simplă de a înțelege acest protocol și de a scrie scripturi și programe care îl folosesc este
pentru a arunca o privire la exemplul (nu este util) FvwmScript-ComExample și fvwm-script-
ComExample.pl (care se găsește în directorul de date fvwm). Mai mult, această implementare
al protocolului rezolvă întrebări precum: Ce să faceți dacă scriptul iese dintr-un motiv rău?
Ce să faci dacă programul se închide dintr-un motiv rău? ...etc.

Utilizați FvwmScript online folosind serviciile onworks.net


Ad


Ad