Xlib

Xlib er en klient bibliotek for X Window System-protokollen, der er udviklet i C.

Det indeholder funktioner til at interagere med en server X. For disse funktioner en programmør kan skrive programmer uden kendskab til detaljerne i protokollen. Kun få programmer bruger Xlib direkte; I stedet bruger de andre biblioteker, der bruger funktioner Xlib at give toolkits:

  • Xt
  • Xaw
  • Motiv
  • FLTK
  • GTK +
  • Qt
  • Tk

Xlib optrådte circa 1985 og bruges i grafiske brugergrænseflader til mange Unix-lignende operativsystemer. Biblioteket er et levedygtigt alternativ til XCB Xlib. Selv på dette tidspunkt Xlib er stadig i brug, kan en realisering af Xlib bruge XCB.

Typer af data

De første typer opbygning er givet i Xlib Display og typer identifikatorer.

Uformelt et display er et fysisk eller virtuelt indretninger, som er lavet grafiske operationer. Strukturen af ​​Xlib bibliotek indeholder oplysninger til visning, men indeholder betydeligt mere information om kanal mellem klient og server. For eksempel i en Unix-lignende styresystem, strukturen indeholder filen håndtaget på stikket på denne kanal. Det meste af Xlib funktionen har som et argument, fordi de opererer eller kanal er i forhold til en bestemt kanal. Især alle funktioner i Xlib der interagerer med serverne har brug for dette for at få adgang til kanalen.

Nogle andre funktioner har brug for denne, selv om de fungerer lokalt, som operationel data vedrørende en bestemt kanal. Operationer af denne type indbefatter for eksempel operationer på kø af begivenheder, der er beskrevet nedenfor.

Vinduerne, den colormap og andre er styret af serveren, hvilket betyder, at datoen for deres faktiske gennemførelse alt er deponeret på serveren. Klienten driver disse objekter til at bruge deres identifikatorer. Det kan ikke drive en genstand, men blot bede serveren til at udføre operationen på den angivne objekt-id.

De typer, ,, er alle identifikatorer, som er 32-bit heltal. En klient skaber et vindue til at spørge serveren til at oprette den. Dette gøres for at et opkald af en funktion af Xlib, som returnerer en identifikator af vinduet, som er et tal. Denne identifikator kan bruges af klienten til at anmode om andre operationer på det samme objekt.

Identifikatorer er unikke for serveren. De fleste af dem kan bruges af flere programmer til at henvise til de samme objekter. For eksempel, to ansøgninger er forbundet til den samme server under anvendelse af samme identifikator til at henvise til det samme vindue. Disse programmer anvender to forskellige kanaler, og dermed har to forskellige strukturer; Men når de ansøger om operationer for den samme identifikator, disse transaktioner vil blive foretaget på samme emne.

Egenskaber

Funktionerne i biblioteket Xlib kan grupperes i:

  • operationer af tilslutning;
  • server anmodninger, herunder anmodninger om drift og anmodninger om oplysninger;
  • og de lokale operationer af klienten: operationer på begivenheden køen og andre operationer på lokale dato

Eksempel

Følgende program skaber et vindue med en lille sort firkant i det.

Klienten opretter en forbindelse til serveren for at ringe. Det anmoder derefter oprettelsen af ​​et vindue. Opkald gør vinduet synligt.

Pladsen er designet til at ringe til. Denne operation kan kun udføres, fordi vinduet er oprettet. Dog kan ydeevnen være utilstrækkelig. Bestemt, er bevarelsen af ​​indholdet af vinduet ikke garanteres. For eksempel, hvis vinduet er dækket, og derefter afdækkes igen, kan dens indhold anmode om at blive redesignet. Programmet er informeret om, at vinduet eller sin del skal udarbejdes, når den modtager en begivenhed.

Udformningen af ​​indholdet af vinduet er lavet nell'loop begivenheder. Inden du indtaster denne løkke, er de begivenheder, der påvirker anvendelsen valgt til. Arrangementet loop venter på en indgående hændelse: Hvis begivenheden er et tryk på en knap, programmet lukkes, hvis en begivenhed er at udsætte indholdet af vinduet gentegnes. De funktionsblokke og downloade bufferen, hvis der er en hændelse i køen.

Forrige artikel Xanadu
Næste artikel Xavier Seracini