Crearea de teme pentru metacitate

cu numele care va fi numele subiectului tău. În ciuda faptului că Metacity va găsi un subiect în ambele directoare de mai sus, este recomandabil să părăsiți subiectul în directorul de acasă în timp ce îl scrieți și depanați. Următorul pas în crearea unei teme este de a edita fișierul numit "metacity-theme-1.xml", pe care trebuie să-l creați în directorul tematic. Acesta este un fișier care conține o descriere XML a temei, în conformitate cu această descriere DTD. Pentru a crea acest fișier, este mai bine să folosiți tema existentă prin copierea fișierului specificat și apoi modificarea acestuia, în loc să creați o nouă temă de la zero. Primele câteva linii vor arăta astfel:







Bazele creării unei teme

Înainte de a scufunda într-o descriere detaliată a fiecărei părți, hai să aruncăm o privire rapidă.

Tipuri de ferestre acceptate

Există 6 tipuri speciale de ferestre pe care Metacity le înțelege:

Când creați o temă pentru Metacity, vă recomandăm să utilizați aplicația metacity-theme-viewer. care este special conceput pentru testarea subiectelor. Pentru a utiliza această aplicație, specificați doar subiectul pe care doriți să îl încărcați ca argument. Acest subiect va fi descărcat și analizat și, dacă există erori în el, veți vedea mesajele de pe linia de comandă. Trebuie să corectați toate erorile înainte ca tema să fie descărcată cu succes.

Această aplicație este de fapt utilă numai pentru proiectarea stilului de decorare a ferestrei, deoarece nu veți putea accesa acțiunile pe care le-ați alocat butoanelor, precum și ferestrele de meniu.

Pentru a comuta la noua temă, utilizați fie gconftool-2
sau interfața cu utilizatorul din Opțiuni -> Tematică -> Detalii temă, selectați fila "Fereastră fereastră". Când folosiți gconftool2-. tu
trebuie să utilizați următoarea comandă -

gconftool-2 - tip = șir - set / apps / metacity / general / theme [theme_name]

Crearea de teme pentru metacitate

Aplicația de vizualizare temă Metacity - pentru testarea temelor

Adânc înăuntru

Cadrul geometriei

Primul lucru pe care trebuie să-l faceți este să creați o "geometrie a cadrului". Numele geometriei ramei se va referi mai târziu la "stilul cadru".

Următoarea diagramă arată diferite dimensiuni pe care le puteți schimba în geometria cadrului:

Crearea de teme pentru metacitate

Specificațiile geometriei cadrului

Geometria cadrului are mai multe atribute opționale, pe care le puteți defini, de asemenea:

Stabilește dacă înălțimea textului din titlu al ferestrei este inclusă în calculul înălțimii. Dacă nu este specificat, valoarea implicită este adevărată.

Utilizați marcajul Pango - xx-mic, x-mic, mic, mediu, mare, x-mare și xx-mare. Dacă nu este specificat, va fi folosit fontul desktop.

Stabilește dacă colțul din stânga sus al ferestrei va fi rotunjit. Dacă nu este specificat, valoarea implicită este falsă.

Stabilește dacă colțul din dreapta sus al ferestrei va fi rotunjit. Dacă nu este specificat, valoarea implicită este falsă.

Stabilește dacă colțul din stânga jos al ferestrei va fi rotunjit. Dacă nu este specificat, valoarea implicită este falsă.

Stabilește dacă colțul din dreapta jos al ferestrei va fi rotunjit. Dacă nu este specificat, valoarea implicită este falsă.












După ce setați geometria cadrului, puteți utiliza moștenirea. Aici există o simplă suprapunere a oricăror valori, de la cele care au fost moștenite de la părinte.







În loc să setați mărimea butoanelor, puteți seta numai factorul de perspectivă.


Operațiuni de desen

"operațiunile de desen" (operațiunile de pictura) reprezintă baza pentru crearea temei Metacity. Pentru a trage cu succes o parte a cadrului, trebuie să setați operația de desen pentru această "piesă de cadru" (partea cadru).

Operațiile de desen sunt, de obicei, descrise la început, dar pot fi, de asemenea, construite direct în locul potrivit [a se vedea exemplu de mai jos]. Pentru operațiile de desen, este permisă următoarea listă de operatori:

Desenează o linie cu culoarea de culoare specificată de la coordonate (x1, y1) la (x2, y2). Culorile pot fi specificate prin nume precum "albastru", hex tip "# FF0099" sau culoare din tema GTK, date în formularul "gtk: base [NORMAL]". exemple de mai jos]. Există atribute adiționale ca lățimea. dash_on_length și dash_off_length. care în mod prestabilit sunt setate la "0".







Desenează un patrulater din (x, y) și cu lățimea specificată și înălțimea înălțimii. Există un atribut suplimentar completat. care este setat la "false" în mod implicit.

Desenează un arc începând de la (x, y) și cu o lățime a spatelui. înălțime. unghiul inițial de start_angle și al doilea unghi de înclinare. Există un atribut suplimentar completat. care este setat la "false" în mod implicit.

Se dă o listă cu alte operații de desen cu numele și valorile date tile_width și tile_height. Există argumente suplimentare (x, y), lățime. înălțime. tile_xoffset și tile_yoffset cu. care implicit au valoarea FIXME.

Stilul de frontieră

Când creați un "stil de cadru", asociați diferite "piese de cadru" și "butoane de fereastră" cu o "geometrie a cadrelor" speciale. În mod normal, trebuie să creați un stil pentru astfel de stări de fereastră ca normal. maximizat. umbrite. maximized_and_shaded și având în vedere dependența de un astfel de lucru, cum ar fi: dacă fereastra se va concentra sau nu.

Mai întâi, vom crea un șablon care va conține toate informațiile necesare pentru desenarea acestui stil de cadru.

La stabilirea stilului ramei, este permisă și moștenirea. Puteți specifica un stil diferit care suprascrie stilul părinte.

Elemente de cadru

Pentru a desena părți ale cadrului, pentru fiecare parte a cadrului trebuie să furnizați o operație de desen. Dacă omiteți orice parte, atunci nu se va trage nimic pentru această parte a cadrului.


Alternativ, după cum sa menționat mai devreme, puteți oferi o operație de desen in linie.





Următoarele diagrame prezintă diferite piese care pot avea un stil în cadrul specificat:

Crearea de teme pentru metacitate

Butoane pentru ferestre

Așa cum am menționat mai devreme, pentru un cadru dat, trebuie să specificați un set minim de butoane pentru acesta. Metodele de desenare ar trebui să fie redate pentru astfel de butoane cât mai apropiate, maximizează, minimizează și meniul, în timp ce pentru fiecare dintre cele două stări - normale și presate. Dacă nu este specificat prelight, pentru această stare va fi folosit normal.