Code: Select all
; CSS example from Carlos Garnacho: Styling GTK+ with CSS
; https://thegnomejournal.wordpress.com/2011/03/15/styling-gtk-with-css/
EnableExplicit
#GTK_STYLE_PROVIDER_PRIORITY_APPLICATION = 600
CompilerIf (#PB_Compiler_Version < 540 And Subsystem("gtk3") = #False) Or
(#PB_Compiler_Version >= 540 And Subsystem("gtk2") = #True)
MessageRequester("Program terminated", "This program only works with GTK 3!")
End
CompilerElse
ImportC ""
gtk_css_provider_load_from_data(*CSSProvider, CSSData.P-UTF8, Length.I,
*Error.GError)
gtk_css_provider_new()
gtk_style_context_add_provider_for_screen(*Screen.GdkScreen, *StyleProvider,
Priority.I)
EndImport
Define CSSProvider.I
Define CSSHoverButton.S
Define Screen.I
CSSHoverButton = "" +
".button {" + #LF$ +
" background: white;" + #LF$ +
"}" + #LF$ +
#LF$ +
".button:hover {" + #LF$ +
" transition: 300ms ease-in-out;" + #LF$ +
" background: yellow;" + #LF$ +
"}" + #LF$
CSSProvider= gtk_css_provider_new()
gtk_css_provider_load_from_data(CSSProvider, CSSHoverButton, -1, 0)
Screen = gdk_display_get_default_screen_(gdk_display_get_default_())
gtk_style_context_add_provider_for_screen(Screen, CSSProvider,
#GTK_STYLE_PROVIDER_PRIORITY_APPLICATION)
g_object_unref_(CSSProvider)
OpenWindow(0, 100, 100, 240, 100, "Color changing button")
ButtonGadget(0, 20, 30, 200, 35, "Change my color!")
Repeat
Until WaitWindowEvent() = #PB_Event_CloseWindow
CompilerEndIf
