summaryrefslogtreecommitdiffstats
path: root/chromium/ui/views/controls/button/label_button_border.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/ui/views/controls/button/label_button_border.cc')
-rw-r--r--chromium/ui/views/controls/button/label_button_border.cc50
1 files changed, 12 insertions, 38 deletions
diff --git a/chromium/ui/views/controls/button/label_button_border.cc b/chromium/ui/views/controls/button/label_button_border.cc
index d124764fd76..23e9319ded3 100644
--- a/chromium/ui/views/controls/button/label_button_border.cc
+++ b/chromium/ui/views/controls/button/label_button_border.cc
@@ -31,36 +31,20 @@ const int kButtonInsets = 5;
const int kTextHoveredImages[] = IMAGE_GRID(IDR_TEXTBUTTON_HOVER);
const int kTextPressedImages[] = IMAGE_GRID(IDR_TEXTBUTTON_PRESSED);
-Button::ButtonState GetButtonState(ui::NativeTheme::State state) {
- switch (state) {
- case ui::NativeTheme::kDisabled: return Button::STATE_DISABLED;
- case ui::NativeTheme::kHovered: return Button::STATE_HOVERED;
- case ui::NativeTheme::kNormal: return Button::STATE_NORMAL;
- case ui::NativeTheme::kPressed: return Button::STATE_PRESSED;
- case ui::NativeTheme::kMaxState: NOTREACHED() << "Unknown state: " << state;
- }
- return Button::STATE_NORMAL;
-}
-
-// A helper function to paint the native theme or images as appropriate.
+// A helper function to paint the appropriate broder images.
void PaintHelper(LabelButtonBorder* border,
gfx::Canvas* canvas,
- const ui::NativeTheme* theme,
- ui::NativeTheme::Part part,
ui::NativeTheme::State state,
const gfx::Rect& rect,
const ui::NativeTheme::ExtraParams& extra) {
- if (border->style() == Button::STYLE_NATIVE_TEXTBUTTON) {
- theme->Paint(canvas->sk_canvas(), part, state, rect, extra);
- } else {
- Painter* painter =
- border->GetPainter(extra.button.is_focused, GetButtonState(state));
- // Paint any corresponding unfocused painter if there is no focused painter.
- if (!painter && extra.button.is_focused)
- painter = border->GetPainter(false, GetButtonState(state));
- if (painter)
- Painter::PaintPainterAt(canvas, painter, rect);
- }
+ Painter* painter =
+ border->GetPainter(extra.button.is_focused,
+ Button::GetButtonStateFrom(state));
+ // Paint any corresponding unfocused painter if there is no focused painter.
+ if (!painter && extra.button.is_focused)
+ painter = border->GetPainter(false, Button::GetButtonStateFrom(state));
+ if (painter)
+ Painter::PaintPainterAt(canvas, painter, rect);
}
} // namespace
@@ -105,8 +89,6 @@ LabelButtonBorder::LabelButtonBorder(Button::ButtonStyle style)
Painter::CreateImageGridPainter(kTextHoveredImages));
SetPainter(false, Button::STATE_PRESSED,
Painter::CreateImageGridPainter(kTextPressedImages));
- } else if (style == Button::STYLE_NATIVE_TEXTBUTTON) {
- set_insets(gfx::Insets(5, 12, 5, 12));
}
}
@@ -115,10 +97,8 @@ LabelButtonBorder::~LabelButtonBorder() {}
void LabelButtonBorder::Paint(const View& view, gfx::Canvas* canvas) {
const NativeThemeDelegate* native_theme_delegate =
static_cast<const LabelButton*>(&view);
- ui::NativeTheme::Part part = native_theme_delegate->GetThemePart();
gfx::Rect rect(native_theme_delegate->GetThemePaintRect());
ui::NativeTheme::ExtraParams extra;
- const ui::NativeTheme* theme = view.GetNativeTheme();
const gfx::Animation* animation = native_theme_delegate->GetThemeAnimation();
ui::NativeTheme::State state = native_theme_delegate->GetThemeState(&extra);
@@ -127,7 +107,7 @@ void LabelButtonBorder::Paint(const View& view, gfx::Canvas* canvas) {
const SkRect sk_rect = gfx::RectToSkRect(rect);
canvas->sk_canvas()->saveLayer(&sk_rect, NULL);
state = native_theme_delegate->GetBackgroundThemeState(&extra);
- PaintHelper(this, canvas, theme, part, state, rect, extra);
+ PaintHelper(this, canvas, state, rect, extra);
SkPaint paint;
skia::RefPtr<SkXfermode> sk_lerp_xfer =
@@ -135,18 +115,12 @@ void LabelButtonBorder::Paint(const View& view, gfx::Canvas* canvas) {
paint.setXfermode(sk_lerp_xfer.get());
canvas->sk_canvas()->saveLayer(&sk_rect, &paint);
state = native_theme_delegate->GetForegroundThemeState(&extra);
- PaintHelper(this, canvas, theme, part, state, rect, extra);
+ PaintHelper(this, canvas, state, rect, extra);
canvas->sk_canvas()->restore();
canvas->sk_canvas()->restore();
} else {
- PaintHelper(this, canvas, theme, part, state, rect, extra);
- }
-
- // For inverted color schemes, draw a solid fill with the button color.
- if (gfx::IsInvertedColorScheme()) {
- rect.Inset(insets_);
- canvas->FillRect(rect, extra.button.background_color);
+ PaintHelper(this, canvas, state, rect, extra);
}
}