Terve,
Ajattelin tässä tekasta testinä yksinkertaisen ja kevyen ikkunamanagerin Linux:lle. Tosin törmäsin heti ongelmaan, onko tieto kellään että miten tuo ikkunan reunat toteutetaan? Eli piilotetaanko ne X:n oma luomat reunat ja piirretään jotenkin ne omat siihen vai mitenkä? Ja miten saan tämän asetukset kaikkiin ikkunoihin?
X ei itsessään piirrä ikkunoihin reunoja lainkaan vaan sen tekee juurikin ikkunamanageri. Asiaa voi havainnollistaa käynnistämällä X ilman ikkunamanageria ja sen jälkeen käynnistämälle siihen jonkin ohjelman.
tjoo elikkäs eikös X itsessään ole kumminkin sellanen alkeellinen WM:ä?
Tyyliin tällänen: http://upload.wikimedia.org/wikipedia/commons/d/
Miten sitten tiedetään että mihin kohtaan pitää piirtää reunat yms yms? Eikös tämä kuitenki tehdä Xlib:in avulla?
kayttaja-3842 kirjoitti:
tjoo elikkäs eikös X itsessään ole kumminkin sellanen alkeellinen WM:ä?
Tyyliin tällänen: http://upload.wikimedia.org/wikipedia/commons/d/
d4/X-Window-System.png
Ei, toi on twm
Itsekin olen jotain wm:n tapaisen virittelyä kokeillut, http://tronche.com/gui/x/ on hyvä referenssi. Muutenkin kannattaa opetella googlen käyttöä. Kannattaa lukea tinyWM:n lähdekoodi läpi, se on täysin käytettävä ikkunamanageri alle viidelläkymmenellä koodirivillä. Ikkunamanagerin on hyvä tukea ICCCM-protokollia mahdollisimman hyvin, http://tronche.com/gui/x/icccm/ on hyvä ohje siihen. Jos pitkälle kehittää, kannattaa myös _NET -protokollia tukea. Suosittelen myös (hiukan) edistyneempien ikkunamanagerien koodin lukemista. Ionissa ei ole paljoa koodia, ja siitä voi etsiskellä ohjeita käytännössä.
kayttaja-3842 kirjoitti:
tjoo elikkäs eikös X itsessään ole kumminkin sellanen alkeellinen WM:ä?
Tässä on X ilman ikkunamanageria:
http://debbox.homeunix.net/~petria/tmp/
Ja tässä twm päällä:
http://debbox.homeunix.net/~petria/tmp/
Tuosta aika helposti näkee mitä ikkunamangeri tekee.. :)
Aihe on jo aika vanha, joten et voi enää vastata siihen.