This package provides the GTK Look and Feel, which is implemented on top of the Synth Look and Feel.
Rather than having a unique class per Region handle the painting, GTKPainter handles ALL painting. GTKPainter delegates all its painting calls to a GTKEngine, which has methods mirroring GTK's gtkstyleclass.
GTK resource files offer the ability to specify properties that will be matched based on object hierarchy. For example, GtkWidget allows for specifying the size of the focus rectangle through such a property, which can be specified in a resource file using the following convention:
GtkWidget::focus-line-width=10
GTKStyle offers support for such properties using the getClassSpecificValue method or one of its variants, which takes a Region that will be mapped to the correspoding Gtk widget and then matched based on Gtk's object hierarchy. Certain Synth style properties are mapped to the appropriate GTK class specific property were appropriate. GTKStyle also contains a static Map of the synth specific property values that resembles what was previously in the defaults table.
GTKStyleFactory subclasses DefaultSynthStyleFactory and adds support for GTK specific style matching. GTKStyleFactory also maintains a mapping between the synth name space and gtk's name space.