MacViews: Use Mac's "Constrained Window Button" style for Button::STYLE_BUTTON LabelButtons
STYLE_BUTTON is typically the button used for dialog buttons
(OK/Cancel/etc.). On Chrome Mac, dialogs have switched from Cocoa
buttons to a "Constrained Window" button style. This is a button with a
gradient and lots of shadows. Use it as the default dialog button style
for MacViews, by porting the current Quartz implementation to Skia.
To integrate into toolkit-views, the approach is similar to how
libgtk2ui::Gtk2Border is used for LabelButtons on Linux Aura. However,
unlike Gtk2Border, we don't want to replace the asset-based `BlueButton`
style with a themed style. (On Mac, the `BlueLabelButton` currently used
for Cocoa dialgos is a port of the toolkit-views BlueButton).
Introduce ui/views/style/platform_style.h. Currently with:
CreateLabelButtonBorder(ButtonStyle) -> LabelButtonBorder
CreateThemedLabelButtonBorder(LabelButton*) -> Border
The first provides the default style as a LabelButtonBorder, which
subclasses of LabelButton can use to customize border insets.
The second provides a way for Gtk2Border to entirely re-theme the button
border provided by a subclass, the way it currently does for BlueButton.
Then, since LabelButtonBorder can paint either with assets or vector
drawing routines, a subclass `LabelButtonAssetBorder` is added to
encapsulate borders drawn with assets.
Screenshots at http://crbug.com/506150#c3
BUG=506150
Review URL: https://codereview.chromium.org/
1217163002
Cr-Commit-Position: refs/heads/master@{#340407}