Operațiuni pe ferestre - programare fereastră x folosind pascal gratuit

1.1.9. Operațiuni pe ferestre

Manipulează ferestre nu numai că poate folosind atribute: Xlib oferă un set de funcții pentru a schimba dimensiunea lor, mutați ecran și într-o stivă de ferestre, rulare, etc.







Prima pereche de operațiuni care poate fi aplicată ferestrei este afișarea sau ascunderea. Afișarea ferestrei determină apariția ferestrei pe ecran, ascunzând rezultatele șterse din ecran (deși fereastra logică din memorie există în continuare). De exemplu, în cazul în care programul are o casetă de dialog, în loc să creeze-l de fiecare dată când cererea utilizatorului, putem crea o fereastră dată în modul Stealth și, atunci când utilizatorul solicită să deschidă un dialog, o fereastra de afișare pe ecran. Când utilizatorul dă clic pe "OK" sau pe "Anulează", fereastra este ascunsă. Acest lucru este mult mai rapid decât crearea și distrugerea unei ferestre, dar merită resursele, atât pe partea clientului, cât și pe partea X a serverului.

O fereastră poate fi afișată utilizând XMapWindow (). Ascundeți cu XUnmapWindow (). Funcția de afișare va determina trimiterea evenimentului Expose la program, dacă fereastra nu este complet acoperită de alte ferestre.







O altă acțiune care poate fi efectuată pe ferestre este de a le muta într-o altă poziție. Acest lucru se poate face cu funcția XMoveWindow (). care ia noile coordonate ale ferestrei. Rețineți că după mutarea ferestrei pot fi parțial ascunse de alte ferestre (sau invers, deschise de ele) și astfel poate fi generat un mesaj Expunere.

Puteți modifica dimensiunea ferestrei utilizând funcția XResizeWindow (). De asemenea, putem combina deplasarea și redimensionarea utilizând o singură funcție XMoveResizeWindow ().

Toate funcțiile de mai sus au modificat proprietățile unei singure ferestre. Există o serie de proprietăți asociate acestei ferestre și altor ferestre. Una dintre ele este ordinea de a trimite la stack. Ordinea în care ferestrele sunt stivuite unul peste celălalt. Se spune că fereastra din prim-plan este în partea superioară a stivei, iar fereastra de fundal se află în partea de jos a stivei. Funcția XRaiseWindow () deplasează fereastra în partea de sus a stivei. Mutarea ferestrei în partea inferioară a teancului este o funcție a XLowerWindow ().

Folosind funcția XIconifyWindow (), fereastra poate fi redusă la minimum. și cu ajutorul lui XMapWindow () - restaurat. Pentru a înțelege de ce XIconifyWindow () nu există nici o funcție inversă, trebuie remarcat faptul că, atunci când fereastra este minimizată, de fapt, este ascuns, iar pictograma afișează o fereastră în loc. Deci, pentru a restabili fereastra originală, trebuie doar să o afișați din nou. Pictograma este de fapt o altă fereastră, care este strâns legată de fereastra noastră normală - aceasta nu este o altă stare a ferestrei noastre.

Următorul exemplu demonstrează utilizarea operațiilor pe ferestre:
Anexă: Codul sursă al programului winmove.pas







Trimiteți-le prietenilor: