Vindusbehandleren (eller på italiensk , vindusbehandleren ) er en komponent i det grafiske grensesnittet til datamaskinens operativsystem som administrerer utseendet og plasseringen til et vindu i et skrivebordsmiljø . [1] [2]
På 1970-tallet ble Xerox Alto den første datamaskinen som kom med et fungerende WIMP GUI. Den brukte en stablebar vindusbehandling som tillot overlappende vinduer. Selv om det er uklart om Microsoft Windows inneholder prosjekter kopiert fra Apples Mac-operativsystem, er det klart at ingen av dem var de første som produserte en GUI ved å bruke stablede vinduer. På begynnelsen av 1980-tallet brukte Xerox Star, Altos etterfølger, "tiling" for de fleste av hovedprogramvinduene og overlegg bare for dialoger, og eliminerte det meste av behovet for stabling. [3] Mac OS var et av de første kommersielt vellykkede eksemplene på et grafisk brukergrensesnitt som brukte en slags stablingsvinduadministrasjon via QuickDraw . MacOS bruker for tiden en mer avansert Window Manager som støtter komposisjon fra Mac OS X 10.0 og har blitt oppdatert i Mac OS X 10.2 for å støtte maskinvareakselerert komposisjon via Quartz Compositor [4]
GEM 1.1 var en vindusbehandling som støttet skrivebordsmetaforen og brukte stabling, slik at alle vinduer kunne overlappe hverandre. Den ble utgitt på begynnelsen av 1980-tallet. GEM er kjent for å være inkludert som hovedgrensesnittet brukt på Atari ST, som kjørte Atari TOS, og var også et populært grafisk brukergrensesnitt for MS-DOS før den utbredte bruken av Microsoft Windows. Etter et Apple-søksmål ble GEM tvunget til å fjerne stablingsfunksjoner, noe som gjorde det til en flisleggingsvindusbehandler.
I løpet av midten av 1980-tallet inneholdt Amiga-operativsystemet et tidlig eksempel på en sammensatt vindusbehandler kalt Intuition (et av AmigaOS-bibliotekene på lavt nivå, som var til stede i Amiga-system-ROMene), som var i stand til å gjenkjenne hvilke vinduer eller deler av dem var dekket og hvilke vinduer som var i forgrunnen og fullt synlige, slik at han kun kunne tegne de delene av skjermen som trengte oppdatering. I tillegg støttet Intuition komponering. Applikasjoner kan først kreve en minneregion utenfor gjeldende visningsregion for å bruke som punktgrafikk. Amiga-vindussystemet ville deretter bruke en serie bit-blits ved å bruke systemets maskinvare-blitter for å lage en sammensetning av punktgrafikk av disse applikasjonene, sammen med knapper og skyveknapper, i skjermens minne, uten å kreve at disse applikasjonene skal tegne noen av sine egne. .
Intuisjonen forutså også brukerens valg ved å gjenkjenne posisjonen til den flytende pekeren på andre elementer på skjermen (vinduets tittellinjer, deres lukkede og endre størrelse på gadgets, hele ikoner), og var derfor i stand til å garantere nesten null ventetid for å erklære opplevelsen av bruk av vindusbehandling Workbench . Sistnevnte var den eneste vindusbehandleren som til slutt inspirerte en hel familie av etterkommere og etterfølgere: Ambient i MorphOS, Zune / Wanderer i AROS, Workbench NG (ny generasjon i AmigaOS 4.0 og 4.1). Workbench 4.1 har blitt forbedret av 2D-vektorgrensesnittet drevet av Kairo-biblioteker og har en moderne Porter-Duff 3D-basert komposisjonsmotor.
I 1988 ble Presentation Manager standardskallet på OS / 2, som i sin første versjon bare brukte et kommandolinjegrensesnitt (CLI). IBM og Microsoft designet OS / 2 som en etterfølger til DOS og Windows for DOS. Etter suksessen med Windows 3.10, forlot Microsoft imidlertid prosjektet til fordel for Windows. Senere ble Microsofts plan for en fremtidig versjon 3 av OS / 2 Windows NT, og IBM gjorde en fullstendig redesign av OS / 2-skallet, og erstattet OS / 2 1.x Presentation Manager for objektorientert Workplace Shell som debuterte i OS / 2 2.0 [5] .
På systemer som bruker X Window System, er det et klart skille mellom vindusbehandlingen og vindussystemet. Strengt tatt samhandler ikke en X-vindusbehandler direkte med videomaskinvare, mus eller tastaturer - dette er skjermserverens ansvar.
X Window System-brukere har muligheten til enkelt å bruke mange forskjellige vindusbehandlere: Metacity, brukt i GNOME 2, og KWin, brukt i KDE Plasma Workspaces, og mange andre. Siden mange vindusbehandlere er modulære, kan folk bruke andre, for eksempel Compiz (en 3D-komposisjonsvindusbehandler), som erstatter vindusbehandleren. Sawfish og awesome på den annen side er utvidbare vindusbehandlere som tilbyr presis vinduskontroll. Det er også mulig å mikse og matche komponenter fra forskjellige vindusbehandlere; for eksempel kan KWin vindusdekorasjoner brukes med GNOME-skrivebords- og dockkomponenter.
X-vindusbehandlere har også muligheten til å overordne applikasjoner på nytt, noe som betyr at mens i utgangspunktet alle applikasjoner adopteres fra rotvinduet (i hovedsak hele skjermen), kan en applikasjon som startes i rotvinduet, adopteres fra et annet vindu. Vindusbehandlere under X Window System tar i bruk applikasjoner fra hovedvinduet og endrer dem til vindusdekorasjoner (for eksempel ved å legge til en tittellinje). Re-foreldre kan også brukes til å legge til innholdet i ett vindu til et annet. X window managers for re-parenting kan da arrangere ett eller flere programmer i samme vindu og kan enkelt kombinere flislegging og stabling på ulike måter.
Microsoft Windows har levert en integrert stablevindusbehandler siden Windows 2.0; Windows Vista introduserte Compositing Desktop Window Manager (dwm.exe) som et valgfritt maskinvareakselerert alternativ. I Windows, ettersom GDI er en del av kjernen [6] , er vindusbehandlerrollen nært assosiert med de grafiske undersystemene til kjernen og kan stort sett ikke erstattes, selv om tredjepartsverktøy kan brukes til å simulere en vindusbehandler for flislegging på toppen av slike systemer. Fra og med Windows 8 kan den Direct3D-baserte Desktop Window Manager ikke lenger deaktiveres. Den kan bare startes på nytt med hurtigtastkombinasjonen Ctrl + Shift + Win + B [7] .
Windows Utforsker (explorer.exe) brukes som standard som et skall i moderne Windows-systemer for å gi en oppgavelinje og filbehandling, sammen med mange funksjoner til en vindusbehandling; aspekter ved Windows kan endres gjennom de medfølgende konfigurasjonsverktøyene, ved å modifisere Windows-registeret eller med tredjepartsverktøy, for eksempel WindowBlinds eller Resource Hacker. Windows-vindusbehandleren kan også fungere som en X-vindusbehandler via Cygwin / X i multiwindow -modus (og muligens andre X-vindusimplementeringer).
Merk at Microsoft og X Window System bruker forskjellige termer for å beskrive lignende konsepter. For eksempel er begrepet vindusbehandling sjelden nevnt av Microsoft fordi det er integrert og ikke utskiftbart og forskjellig fra skallet [8] . Windows-skallet er analogt med konseptet med et skrivebordsmiljø i andre grafiske brukergrensesnittsystemer.
Vindusbehandlere er ofte delt inn i tre eller flere klasser, som beskriver hvordan vinduer utformes og oppdateres.
Komposittvindusbehandlere lar deg lage og tegne alle vinduer separat, og deretter sette sammen og vise dem i ulike 2D- og 3D-miljøer. De mest avanserte komposittvindusbehandlerne tillater et stort utvalg av grensesnittutseende og tilstedeværelsen av avanserte 2D- og 3D- visuelle effekter.
Alle vindusbehandlere som har overlappende vinduer og ikke er sammensatte vindusbehandlere, er stablevindusbehandlere, selv om ikke alle bruker de samme metodene. Overlappende vindusbehandlere lar vinduer overlappe ved å tegne bakgrunnsvinduer først, som kalles malerens algoritme. Redigeringer krever noen ganger at alle vinduer stables eller males på nytt, noe som vanligvis innebærer å male hvert vindu på nytt. Imidlertid, for å bringe et bakgrunnsvindu i forgrunnen, tegnes vanligvis bare ett vindu på nytt, ettersom bakgrunnsvinduer kan ha deler av andre vinduer malt på seg, noe som effektivt sletter de dekkede områdene.
Tiling (flising) vindusbehandlere maler alle vinduer på skjermen ved å plassere dem side ved side eller over og under hverandre, slik at ingen vindu noen gang dekker et annet. Microsoft Windows 1.0 brukte flislegging, og en rekke vindusbehandlere for flislegging er tilgjengelig for X.
Dynamiske vindusbehandlere kan dynamisk bytte mellom flislagt og flytende vindusoppsett. En rekke dynamiske vindusbehandlere for X er tilgjengelige.
Et aktivt vindu er det nåværende "fokuserte" vinduet til Window Manager. Ulike vindusbehandlere indikerer det aktive vinduet på forskjellige måter og lar brukeren bytte mellom vinduer på forskjellige måter. For eksempel, i Microsoft Windows, hvis både Notisblokk og Microsoft Paint er åpne , vil vinduet aktiveres ved å klikke i Notisblokk-vinduet. På Windows er det aktive vinduet indikert med en annen farget tittellinje. Men å klikke er ikke den eneste måten å velge et aktivt vindu på: noen vindusbehandlere (som FVWM) aktiverer vinduet under musepekeren: bare flytt musen for å bytte vinduer; et klikk er ikke nødvendig.
Vindusbehandlere tilbyr ofte en måte å velge det aktive vinduet ved å bruke tastaturet i stedet for musen. En typisk tastekombinasjon er Alt + Tab, brukt av Windows og KDE (som standard, selv om den kan konfigureres av brukeren); en annen er apple-tasten -tilde, brukt av Macintosh. Ved å trykke på den riktige tastekombinasjonen ruller vanligvis alle synlige vinduer i en bestemt rekkefølge, selv om andre handlinger er mulige.
Mange, men ikke alle, vindusbehandlere gir et skjermområde som inneholder en slags visuell kontroll (ofte en knapp) for hvert vindu på skjermen. Hver knapp inneholder vanligvis tittelen på vinduet og kan også inneholde et ikon. Dette området av skjermen gir vanligvis en slags visuell indikasjon på hvilket vindu som er aktivt, for eksempel kan den aktive vindu-knappen virke "trykket". Det er vanligvis også mulig å endre det aktive vinduet ved å klikke på den aktuelle knappen. I Microsoft Windows kalles dette området av skjermen oppgavelinjen ; på Apple Macintosh-systemer kalles dette området av skjermen dokken.
Det aktive vinduet er kanskje ikke alltid foran alle andre vinduer på skjermen. Det aktive vinduet er ganske enkelt vinduet som tastene som er skrevet på tastaturet sendes til; det kan være visuelt skjult av andre vinduer. Dette gjelder spesielt i vindusbehandlere som ikke krever et klikk for å endre aktive vinduer: FVWM, for eksempel, gjør vinduet aktivt under musepekeren, men endrer ikke Z-rekkefølgen (rekkefølgen vinduene vises i, målt fra forgrunnen bakgrunn). I stedet må du klikke på kanten av vinduet for å bringe det til fronten. Det er også situasjoner i klikk-for-fokus-vindusbehandlere som Microsoft Windows der det aktive vinduet kan være nedtonet; dette er imidlertid mye mindre vanlig.
Annen sjeldnere implementert programvare er: