Remove GtkShadowType & change set_shadow_type() to set_draw_border()/etc.
Submitted by Daniel Boles
The set_shadow_type() in GtkFrame, GtkScrolledWindow, and GtkViewport just
- adds the .flat (Frame) or .frame (ScrolledWindow, Viewport) style class if the argument is GTK_SHADOW_NONE,
- or removes it for any other shadow type.
The other 4 GtkShadowTypes are all treated identically (removing said class) by GTK+, and they do not set any CSS classes that themes could use to differentiate between the various ShadowTypes.
Therefore, GtkShadowType is mostly ineffective, and misleading as it really controls a simple no/yes on whether to draw a border/frame around these widgets.
To make this clearer, I'd suggest replacing these set_shadow_type(GtkShadowType) methods with one taking a boolean indicating whether the border/frame should be drawn - something like set_draw_border(gboolean) or set_is_flat(gboolean).
An alternative resolution is to add appropriate classes (e.g. .in, .out, .etched) on the relevant CSS nodes, which themes could use to make the other GtkShadowTypes actually accomplish something - but I'm guessing this is unlikely.
I'm happy to work on this if a decision is made on how to proceed.