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:
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
Wygląd przycisku gdy ustawimy interior-focus = 0
/GtkCheckButton
Wygląda on tak:
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:
Wygląd z interior focus:
/GtkColorButton
Jest to zwykły przycisk (GtkButton) z GtkFrame w środku.
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.
Wartości:
appears-as-list FALSE - ustawiamy tutaj czy dane mają wyglądać jak lista czy jak zwykłe menu
/GtkComboBoxEntry
Wygląda tak:
a zachowuje się jak poprzednik.
/GtkEntry
Jest to zwykłe pole tekstowe.
Wartości:
inner-border {2 ,2 ,2 ,2} - odległości pomiędzy tekstem a ramką
Wygląd z GtkWidget::interior-focus = 1
Wygląd z GtkWidget::interior-focus = 0
/GtkFrame
Rysuje ramki dookoła innych elementów, wygląda tak:
/GtkMenu
Zwykłe menu 🙂
Wartości:
vertical-padding 1 horizontal-padding 0 vertical-offset 0 horizontal-offset -2 double-arrows TRUE
/GtkMenuBar
Zwykły MenuBar
Wartości:
shadow-type GTK_SHADOW_OUT internal-padding 1
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
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
/GtkProgressBar
Zwykły pasek postępu.
Wartości:
xspacing 7 - dodatkowy odstęp yspacing 7 - dodatkowy odstęp
/GtkRadioButton
Działa tak samo jak GtkCheckButton.
/GtkScale
Wygląda to tak:
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
/GtkSpinButton
Wartości:
shadow-type GTK_SHADOW_IN
/GtkStatusbar
Wartości:
shadow-type GTK_SHADOW_IN
/GtkTreeView
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 😉