Page 1
InteracInteracţţiune omiune om--calculatorcalculator
Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//
11
InteracInteracţţiune omiune om--calculatorcalculator MediulMediul
XWindowXWindow
Dr. Sabin-Corneliu Buraga Facultatea de Informatică
Universitatea “A.I.Cuza”
Iaşi, România httphttp://://www.infoiasi.rowww.infoiasi.ro/~/~busacobusaco//
Page 2
InteracInteracţţiune omiune om--calculatorcalculator
Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//
22
“Writing software is more fun
than working.”
/usr/games/fortune
Page 3
InteracInteracţţiune omiune om--calculatorcalculator
Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//
33
CuprinsCuprins
•
Ce este XWindow?•
Caracteristici principale
•
Modelul client/server XWindow•
Aplicaţia de bază XWindow
•
Managementul interfeţei•
Dezvoltarea aplicaţiilor XWindow
•
De la prezent
la viitor
Page 4
InteracInteracţţiune omiune om--calculatorcalculator
Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//
44
CeCe esteeste
XWindowXWindow??•
XWindow
System
X11R6 (versiunea curentă), X11R7 (cea mai recentă)•
Sistem client/server de management al interfeţei grafice
•
Independent de hardware &
de sistemul de operare•
Dezvoltat de MIT (proiectul
Athena
’84) &
DEC (’83)
•
Standardizat de Consorţiul X (1988) –
www.x.org•
Standard industrial pentru dezvoltarea de aplicaţii grafice
Page 5
InteracInteracţţiune omiune om--calculatorcalculator
Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//
55
CeCe esteeste
XWindowXWindow??•
Evoluţie:– 1984: Consorţiul X
•
Disponibilitatea în regim open source a X11•
Suport pentru paradigma WIMP la nivel de reţea
•
Similar SunTools, Mac OS 2.x– 1991: XFree86
•
Suport hardware pentru PC-uri•
Similar Windows 3.1, Mac OS 4.x
– 2001: X.org
/ freedesktop.org•
Suport pentru dispozitive/periferice grafice moderne
•
Similar Mac OS X, Windows 2000/XP
Page 6
InteracInteracţţiune omiune om--calculatorcalculator
Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//
66
CaracteristiciCaracteristici principaleprincipale
•
Bazat pe modelul client/server:– Server – controlează dispozitivele grafice
(display, pointer
al mouse-ului,…)– Client
–
program (aplicaţie) independent(ă)
de server, posibil aflat la distanţă (pe altă maşină: staţii de lucru UNIX, PC-uri,…)
– Canal de comunicaţie
– realizează conexiunea dintre server şi client –
protocolul XWindow
Page 7
InteracInteracţţiune omiune om--calculatorcalculator
Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//
77
CaracteristiciCaracteristici principaleprincipale
• Arhitectura generală a sistemului XWindow:
Page 8
InteracInteracţţiune omiune om--calculatorcalculator
Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//
88
ModelulModelul client/server Xclient/server X
•
Clientul & serverul se găsesc pe aceeaşi maşină
•
Clientul & serverul se găsesc pe maşini diferite
Page 9
InteracInteracţţiune omiune om--calculatorcalculator
Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//
99
ModelulModelul client/server Xclient/server X
•
Modalitatea de execuţie a aplicaţiilor pe maşini aflate la distanţă este transparentă pentru utilizator
Page 10
InteracInteracţţiune omiune om--calculatorcalculator
Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//
1010
ModelulModelul client/server Xclient/server X
•
Modelul serverului X– Mecanismul comunicării depinde de structura
client/server-ului•
Pe aceeaşi maşină (UNIX): comunicare inter-procese
•
Pe maşini diferite omogene (UNIX): TCP/IP•
Pe maşini diferite eterogene (UNIX şi Windows/Mac): TCP/IP
Page 11
InteracInteracţţiune omiune om--calculatorcalculator
Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//
1111
ModelulModelul client/server Xclient/server X
•
Mesaje (cereri) XWindow:– Aplicaţie → server
(e.g.,
deschide fereastra, schimbă fundalul,…)
•
Se realizează fără confirmare
– Periodice (aplicaţie → server) (e.g.,
interogare mouse, paleta de culori)
•
Cerere de informaţii de la server
– Evenimente
(server → aplicaţie)
Page 12
InteracInteracţţiune omiune om--calculatorcalculator
Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//
1212
ModelulModelul client/server Xclient/server X
•
Evenimente:– Fiecare fereastră răspunde la seturi
(diferite) de evenimente– Se generează în mod asincron– Evenimentele pot fi stocate
într-o coadă de evenimente (la client)– Se încearcă minimizarea traficului de reţea– Exemple:
pierderea focus-ului, apăsarea unei taste,…
Page 13
InteracInteracţţiune omiune om--calculatorcalculator
Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//
1313
ModelulModelul client/server Xclient/server X
•
Serverul X– Intermediar între programe (clienţi, aplicaţii) şi resursele unui sistem (I/O)
– Activităţi:•
Acces multi-utilizator
la display
•
Poate manipula structuri complexe (ferestre, fonturi) care sunt referite de clienţi prin ID-uri
(numere)
– După lansare, este iniţializat de xinit– Pentru Linux: XFree86
/
X.org
Page 14
InteracInteracţţiune omiune om--calculatorcalculator
Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//
1414
ModelulModelul client/server Xclient/server X
•
Serverul X– Display ≡
server
– Display ≠
screen– Screen – reprezintă hardware-ul
pe care este desenat display-ul– Un server poate controla mai multe screen-uri– Se poate găsi pe o staţie UNIX,
pe un terminal X dedicat, pe orice PC etc.•
Clientul X– Poate fi activat de la o maşină la distanţă/locală
prin intermediul rlogin, rsh,…
Page 15
InteracInteracţţiune omiune om--calculatorcalculator
Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//
1515
AplicaAplicaţţia de bazia de bazăă XX
•
Trebuie să se conformeze specificaţiilor Consorţiului XWindow
–
protocolul X
•
Se poate dezvolta în orice limbaj suportat
Page 16
InteracInteracţţiune omiune om--calculatorcalculator
Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//
1616
AplicaAplicaţţia de bazia de bazăă XX
•
Clientul trebuie să: –stabilească în prealabil
conexiunea cu serverul
–determine caracteristicile serverului
–realizeze acţiunile implementate de programator, exploatând resursele grafice prin intermediul serverului X
Page 17
InteracInteracţţiune omiune om--calculatorcalculator
Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//
1717
AplicaAplicaţţia de bazia de bazăă XX1.
Conectarea
la server (XOpenDisplay)
2.
Verificarea
mediului (DisplayWidth, DisplayHeight, DefaultDepth)
3.
Crearea ferestrei
principale
(XCreateWindow) 4.
Afişarea ferestrei (XMapWindow, XMapRaised) …
5.
Execuţia aplicaţiei propriu-zise... …
6.
Distrugerea ferestrei (la ieşire) şi închiderea display-ului (XDestroyWindow, XCloseDisplay)
Page 18
InteracInteracţţiune omiune om--calculatorcalculator
Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//
1818
Managementul interfeManagementul interfeţţeiei•
Nu există o interfaţă standard X
–
Componentele interfeţei sunt parte ale aplicaţiei (utilizând “apeluri”
standard)
–
Sistemul particular de interfaţă pe care îl utilizăm este decodificat de serverul X
–
Interfaţa utilizează componente –
widgets
–
O interfaţă X pune la dispoziţie un set de widget-uri
definind look & feel-ul acesteia
Page 19
InteracInteracţţiune omiune om--calculatorcalculator
Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//
1919
Managementul interfeManagementul interfeţţeiei
Page 20
InteracInteracţţiune omiune om--calculatorcalculator
Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//
2020
Managementul interfeManagementul interfeţţeiei•
Interfaţa X
–
Aceeaşi aplicaţie poate avea interfeţe diferite exploatate pe maşini diferite
–
Componente:•
Application
interface•
Management interface
Componentele aplicaţiilor X
Page 21
InteracInteracţţiune omiune om--calculatorcalculator
Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//
2121
Managementul interfeManagementul interfeţţeiei•
Aplicaţiile X se construiesc peste nivelurile principale ale sistemului de dezvoltare X
–
XLib–
Toolkits (Widgets
&
Xt
Intrinsics)
Page 22
InteracInteracţţiune omiune om--calculatorcalculator
Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//
2222
Managementul interfeManagementul interfeţţeiei•
XLib
–
Set de funcţii de bibliotecă de nivel-scăzut–
Este scris în limbajul C standard
–
Implementează apelurile X de bază–
Se utilizează rar în mod direct
–
Baza
unor biblioteci de nivel mai ridicat•
Ferestrele în XLib
–
Structuri fundamentale de date–
Stocate pe server
–
Posedă identificatori unici definiţi la crearea ferestrelor
–
Mărimea se măsoară în pixeli–
Originea (0, 0) este
plasată în stânga-sus
Page 23
InteracInteracţţiune omiune om--calculatorcalculator
Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//
2323
Managementul interfeManagementul interfeţţeiei•
Evenimentele în XLib
–
Mai multe aplicaţii grafice pot rula simultan–
Utilizatorul introduce datele folosind mai multe modalităţi (tastatura, mouse-ul,…)
–
Pot fi generate de utilizator (click), de managerul de ferestre (resize) sau de aplicaţii (cut & paste)
–
Plasate (de server) într-o singură coadă de evenimente spre a fi procesate
–
Evenimentele sunt structuri de date trimise de fereastra care deţine focusul
Page 24
InteracInteracţţiune omiune om--calculatorcalculator
Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//
2424
Managementul interfeManagementul interfeţţeiei•
Evenimentele în XLib
–
Dacă fereastra care deţine focusul nu poate prelucra evenimentul îl va trimite ferestrei părinte, până când:
•
Evenimentul este acceptat de fereastră•
Evenimentul e captat de fereastra root, fiind ignorat
–
Aplicaţiile pot aştepta evenimente (blocking)–
Aplicaţiile pot interoga serverul asupra apariţiei evenimentelor (polling)
–
Un mesaj-eveniment este compus dintr-un set de ID-uri
de
ferestre, fonturi, culori etc.
Page 25
InteracInteracţţiune omiune om--calculatorcalculator
Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//
2525
Managementul interfeManagementul interfeţţeiei•
Procesarea
evenimentelor
while(1) { event
= read (events); switch (event.type) {
case mouse_press: if (event.window
== …)
… case key_press:
… }
}
Avantaj Se
poate
realiza
automat
managementul evenimentelor
Dezavantaj necesită cunoştinţe de programare
orientată-eveniment
Page 26
InteracInteracţţiune omiune om--calculatorcalculator
Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//
2626
Managementul interfeManagementul interfeţţeiei•
X Toolkits
–
X Intrinsics
(Xt)
–
set de widgets
Page 27
InteracInteracţţiune omiune om--calculatorcalculator
Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//
2727
Managementul interfeManagementul interfeţţeiei•
Xt
(X Intrinsics)
–
Standard al Consorţiului X
–
Intermediar între XLib
şi aplicaţie
–
Utilizează OOP pentru a extinde XLib
–
Permite construirea de componente de interfaţă (widgets)
–
Utilizează o ierarhie de clase pentru a crea seturi de widgets
–
Suportă orice tip de interfaţă
Page 28
InteracInteracţţiune omiune om--calculatorcalculator
Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//
2828
Managementul interfeManagementul interfeţţeiei•
Widgets
–
Oferite de diverşi implementatori: Athena
(MIT),
Motif
(OSF) –
în fapt e standard, OpenLook
(AT&T),…
–
Widget ≡
fragment de cod reutilizabil şi configurabil care operează independent de aplicaţie pentru a realiza diferite interacţiuni
–
Separă codul aplicaţiei propriu-zise de codul interfeţei cu utilizatorul
Page 29
InteracInteracţţiune omiune om--calculatorcalculator
Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//
2929
Managementul interfeManagementul interfeţţeiei•
Motif Widgets
–
Se alocă dinamic–
Conţin informaţii de stare
–
Posedă o clasă de bază (“nucleu”) conţinând resursele moştenite de celelalte widget-uri
–
Fiecare widget va fi configurat via resurse (manipulate de un manager de resurse
pus la dispoziţie de XLib)–
Realizează managementul aranjamentului ferestrelor
–
Automatizează operaţiile de redesenare, rescalare
etc.
Page 30
InteracInteracţţiune omiune om--calculatorcalculator
Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//
3030
Managementul interfeManagementul interfeţţeiei•
Motif Widgets
–
Push-button–
Scrollbar
–
Data entry area–
Composite widgets
–
Shell widgets–
Popup-dialog box
–
Special widgets–
…
Page 31
InteracInteracţţiune omiune om--calculatorcalculator
Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//
3131
Managementul interfeManagementul interfeţţeiei•
Managerul de ferestre (window manager)
–
Client special responsabil cu amplasarea
şi dimensionarea
ferestrelor
principale
ale aplicaţiilor
pe display-ul serverului X–
Mediază cereri referitoare la resursele fizice ale display-ului (screen, resurse color, tastatură)
–
Permite utilizatorului să manipuleze ferestrele şi să lanseze alte aplicaţii
–
Defineşte comportamentul sistemului de ferestre folosit
(e.g., suprapunerea, controlul focusului,…)
Page 32
InteracInteracţţiune omiune om--calculatorcalculator
Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//
3232
Managementul interfeManagementul interfeţţeiei•
Managerul de ferestre
–
mwm (Motif)–
twm
–
Tab Window System (MIT)
–
fvwm2–
AfterStep
–
WindowMaker–
KDE –
The K Desktop Environment
–
GNOME –
The GNU Network Object Modeling Environment –
mediu pentru
manageri de ferestre: Enlightment, Sawfish
Med
iid
eskt
op
Page 33
InteracInteracţţiune omiune om--calculatorcalculator
Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//
3333
Managementul interfeManagementul interfeţţeiei•
Mediul
desktop – context
Page 34
InteracInteracţţiune omiune om--calculatorcalculator
Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//
3434
Dezvoltarea aplicaDezvoltarea aplicaţţiilor Xiilor X•
Structura unui program X:
–
Rutina principală•
Iniţializarea toolkit-ului
•
Crearea widget-urilor•
Adăugarea funcţiilor de tratare a evenimentelor
•
Apelarea widget-urilor
(afişarea efectivă)•
Intrarea în bucla principală de procesare a evenimentelor
–
Rutine-eveniment•
Funcţii definite de utilizator
•
Apelate la apariţia unui eveniment particular•
Depind
de tipurile de evenimente
survenite
Page 35
InteracInteracţţiune omiune om--calculatorcalculator
Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//
3535
Dezvoltarea aplicaDezvoltarea aplicaţţiilor Xiilor X
•
În
afară de widget-uri, pot fi folosite şi gadget-urile
–
Nu au ataşată nici o fereastră X–
Nu pot să-şi trateze propriile evenimente•
Evenimentele sunt tratate de widget-ul părinte
•
Nu au acces la setul de resurse (e.g.,
culoare)–
Pot micşora numărul de ferestre X create
–
Exemple: ArrowButtonGadget, LabelGadget
Page 36
InteracInteracţţiune omiune om--calculatorcalculator
Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//
3636
Dezvoltarea aplicaDezvoltarea aplicaţţiilor Xiilor X•
Limbaje:
–
C/C++•
X Toolkit Intrinsics
•
Qt (Trolltech, folosit
de KDE)•
GTK (GNOME Toolkit)
–
Tcl/Tk–
PHP (PHP-GTK)
–
Perl & Python (module pentru
GTK)–
Object Pascal
–
Java–
C#
•
GTK# –
http://gtk-sharp.sourceforge.net/–
…
Page 37
InteracInteracţţiune omiune om--calculatorcalculator
Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//
3737
Dezvoltarea aplicaDezvoltarea aplicaţţiilor Xiilor X•
Instrumente/platforme:
–
KDevelop
(KDE)–
Qt Designer
(Trolltech)
•
Specificarea interfeţei se realizează via XML
–
Glade
(GNOME)–
Kylix
(Borland)
–
Eclipse–
Mono (portare
open-source a .NET)
•
MonoDevelop
–
şi
(multe) altele
Page 38
InteracInteracţţiune omiune om--calculatorcalculator
Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//
3838
Page 39
InteracInteracţţiune omiune om--calculatorcalculator
Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//
3939
Page 40
InteracInteracţţiune omiune om--calculatorcalculator
Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//
4040
Page 41
InteracInteracţţiune omiune om--calculatorcalculator
Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//
4141
De la De la prezentprezent la la viitorviitor
•
Instrumente de autoinstalare/autoconfigurare– Hotplug hardware
•
Utilizarea tehnicilor moderne de redare grafică– Fără distincţie între caracterul 2D/3D– Modularizare clară a funcţionalităţilor client/server
•
Componente grafice de ultimă generaţie– Transluciditate, grafică vectorială, animaţie
Page 42
InteracInteracţţiune omiune om--calculatorcalculator
Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//
4242
De la De la prezentprezent la la viitorviitor
•
Noua infra- structură X (Jamey
Sharp,
2006)
Page 43
InteracInteracţţiune omiune om--calculatorcalculator
Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//
4343
De la De la prezentprezent la la viitorviitor
•
Un driver video X este
compus actualmente din partea de redare 2D (DDX) &
cea de redare 3D (DRI)
•
Efort dublu de dezvoltare•
Soluţie mai bună: emularea operaţiilor 2D via acceleratorul 3D– Un singur driver este suficient– Performanţă superioară– Compatibilitate cu viitorul (forward compatibility)
Page 44
InteracInteracţţiune omiune om--calculatorcalculator
Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//
4444
De la De la prezentprezent la la viitorviitor
•
Suport pentru redare
composite:– Ferestre translucide, cu forme nerectangulare,
anti-aliased– Manager distinct pentru fonturi– Manager distinct pentru combinarea efectelor
(compositing manager):•
Efecte de tip
post-production
•
Afişarea
“smooth”
(la nivel perceptual) a obiectelor grafice
Page 45
InteracInteracţţiune omiune om--calculatorcalculator
Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//
4545
De la De la prezentprezent la la viitorviitor
•
Suport pentru grafica vectorială:– Cairo
•
Model de redare bazat pe specificaţiile PDF (Portable Document Format)
•
Permite aplicaţiilor/toolkit-urilor existente să deseneze judicios
pe “suprafeţe”
vizuale arbitrare
•
API familiar – SVG (Scalable Vector Graphics)
•
Model declarativ bazat pe XML•
Pentru icon-uri, slide-uri, animaţii, redare în browser
•
Reprezentări compacte•
API-uri
complexe în curs de dezvoltare
Page 46
InteracInteracţţiune omiune om--calculatorcalculator
Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//
4646
De la De la prezentprezent la la viitorviitor
•
Suport pentru animaţii:– Accentuarea unor conţinuturi– Mutarea obiectelor de interfaţă– Pictograme, miniaturi (thumbnails),
cursoare animate– Trebuie să satisfacă aşteptările utilizatorilor
în ceea ce priveşte redarea conţinuturilor video (TV, filme, jocuri)
Page 47
InteracInteracţţiune omiune om--calculatorcalculator
Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//
4747
RezumatRezumat
•
Ce este XWindow?
•
Caracteristici principale
•
Modelul client/server XWindow
•
Aplicaţia de baza XWindow
•
Managementul interfeţei
•
Dezvoltarea aplicaţiilor XWindow
•
De la prezent
la viitor
Page 48
InteracInteracţţiune omiune om--calculatorcalculator
Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//
4848
ÎÎntrebărintrebări??