GTK 2.x Themes – Część III

Aktualna wersja poradnika znajduje się tutaj.

W poprzedniej części obiecywałem że opisze poszczególne elementy Gtk. Posłużę się materiałami ze strony gnome więc nie wińcie mnie za braki, błędy itd.
Spis treści:
/GnomePanel
/GtkButton
/GtkCheckButton
/GtkColorButton
/GtkComboBox
/GtkComboBoxEntry
/GtkEntry
/GtkFrame
/GtkMenu
/GtkMenuBar
/GtkMenuItem
/GtkNotebook
/GtkProgressBar
/GtkRadioButton
/GtkScale
/GtkSpinButton
/GtkStatusbar
/GtkTreeView

/GnomePanel

Panel posiada klasę PanelToplevel
Przykład: ten kod powinien zadziałać dla paska menu w panelu (np. lista okien, aplet Menu bar):

widget_class "PanelToplevel.*.GtkMenuBar" style "panel-menu"

Problemy: Jedyna drogą aby nadać tło jest użycie bg_pixmap w pliku gtkrc.

/GtkButton

Przycisk to chyba najprostszy element, należy jedynie pamiętać że używany jest w elementach ../GtkComboBox, ../GtkTreeView and ../GtkOptionMenu. Wygląda on tak:

Button
Button

Wartości:

default-border {1, 1, 1, 1}
default-outside-border {0, 0, 0, 0}
child-displacement-x 0
child-displacement-y 0
displace-focus FALSE
inner-border  {1, 1, 1, 1}

{1, 1, 1, 1} znaczy: {left, right, top, bottom}
Wygląd przycisku gdy ustawimy interior-focus = 1

Button
Button

Wygląd przycisku gdy ustawimy interior-focus = 0

Button
Button

/GtkCheckButton

Wygląda on tak:

Check
Check

Wartości:

indicator-size 13 - wielkość kwadracika lub kółeczka
indicator-spacing 2 - odległość pomiędzy tekstem a kwadratem

Wygląd z exterior focus:

Check
Check

Wygląd z interior focus:

Check
Check

/GtkColorButton

Jest to zwykły przycisk (GtkButton) z GtkFrame w środku.

Colorbutton
Colorbutton

Opis znajduje się w punktach GtkButton i GtkFrame.

/GtkComboBox

Pozwala na wybieranie z listy. Zawiera w sobie GtkButton oraz GtkFrame, dane zapisane są w GtkCellView.

Combobox
Combobox

Wartości:

appears-as-list FALSE - ustawiamy tutaj czy dane mają wyglądać jak lista czy jak zwykłe menu

/GtkComboBoxEntry

Wygląda tak:

ComboboxEntry
ComboboxEntry

a zachowuje się jak poprzednik.

/GtkEntry

Jest to zwykłe pole tekstowe.

Entry
Entry

Wartości:

inner-border {2 ,2 ,2 ,2} - odległości pomiędzy tekstem a ramką

Wygląd z GtkWidget::interior-focus = 1

Entry
Entry

Wygląd z GtkWidget::interior-focus = 0

Entry
Entry

/GtkFrame

Rysuje ramki dookoła innych elementów, wygląda tak:

Frame
Frame
Frame
Frame

/GtkMenu

Zwykłe menu 🙂
Wartości:

vertical-padding 1
horizontal-padding 0
vertical-offset 0
horizontal-offset -2
double-arrows TRUE
Menu
Menu
Offsets
Offsets

/GtkMenuBar

Zwykły MenuBar

Menubar
Menubar

Wartości:

shadow-type GTK_SHADOW_OUT
internal-padding 1
Menubar
Menubar

x/ythickness nie są używane gdy ustawimy GTK_SHADOW_NONE.

/GtkMenuItem

Każdy element w GtkMenu jest typu GtkMenuItem.
Wartości:

 selected-shadow-type GTK_SHADOW_NONE
horizontal-padding 3
toggle-spacing 5
arrow-spacing 10

/GtkNotebook

Notebook
Notebook

Wartości:

 has-secondary-backward-stepper FALSE
has-secondary-forward-stepper FALSE
has-backward-stepper TRUE
has-forward-stepper TRUE
tab-overlap 2
tab-curvature 1
Notebook
Notebook

/GtkProgressBar

Zwykły pasek postępu.

Progressbar
Progressbar

Wartości:

xspacing 7 - dodatkowy odstęp
yspacing 7 - dodatkowy odstęp
Progressbar
Progressbar

/GtkRadioButton

Działa tak samo jak GtkCheckButton.

Radiobutton
Radiobutton

/GtkScale

Wygląda to tak:

Scale
Scale

Wartości:

slider-length 31
value-spacing 2

Dodatkowo można używać wartości z GtkRange:

slider-width 14
trough-border 1
stepper-size 14
stepper-spacing 0
arrow-displacement-x 0
arrow-displacement-y 0
activate_slider FALSE
trough-side-details FALSE
trough-under-steppers TRUE
Slider
Slider

/GtkSpinButton

Spin
Spin

Wartości:

shadow-type GTK_SHADOW_IN
Spin
Spin

/GtkStatusbar

Statusbar
Statusbar

Wartości:

shadow-type GTK_SHADOW_IN

/GtkTreeView

Tree
Tree

Wartości:

expander-size 12
vertical-separator 2
horizontal-separator 2
allow-rules TRUE
indent-expanders TRUE
row-ending-details FALSE
grid-line-width 1
tree-line-width 1
grid-line-pattern "11"
tree-line-pattern "11"

Więcej ustawień odnośnie konkretnych programów znajdziecie tutaj.
W kolejnej części postaram się opisać opcje kolorów oraz pokazać używanie tego co dzisiaj się pojawiło. Czyli zmiany standardowych wartości 🙂

Obrazki itd pochodzą ze strony Gnome. Wszelkie copyrajty należą do Gnome.

Aktualna wersja poradnika znajduje się tutaj.

  • Thanks for this manuals, maybe later I will try to create my own GTK theme 😀

  • Hehe, sporo fatygi sobie zadajesz, ale przyda się bardzo 😛

  • noo, ładnie wszystko opisane. Przyda się 🙂

  • avalan: jak się człowiek nudzi to coś robi 😉

    pagenoare: thx 😉

  • Czy istnieje sposób na usunięcie (nadanie innego stylu) dla ograniczników panelu? (gdy nie jest on rozciągnięty na 100% szerokości okna)? Bo w domyślnym stylu wyświetlają się takie kropki, które nie wyglądają estetycznie.

  • Chodzi o te kropeczki w prawym dolnym rogu do zmieniania rozmiaru okna?
    Tak czy siak można korzystać z kilku silników w jednym stylu. Można by np. przez silnik pixmapa ustawić tam przeźroczysty obrazek co by zlikwidował owe kropki. Jest to jakieś obejście problemu.
    Sprawdzę czy są jakieś prostrze metody oczywiście 😉