Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(555)

Unified Diff: ui/views/controls/button/label_button.cc

Issue 15061006: views: Switch Checkbox over to LabelButton. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: override GetImage + SetCheckedImage Created 7 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ui/views/controls/button/label_button.cc
diff --git a/ui/views/controls/button/label_button.cc b/ui/views/controls/button/label_button.cc
index bc1c06351ee9ed514c0c2f62b20c4e6cec259a59..f2382480228989cd85406d4107644c0c75f7595d 100644
--- a/ui/views/controls/button/label_button.cc
+++ b/ui/views/controls/button/label_button.cc
@@ -61,16 +61,28 @@ LabelButton::LabelButton(ButtonListener* listener, const string16& text)
LabelButton::~LabelButton() {}
const gfx::ImageSkia& LabelButton::GetImage(ButtonState for_state) {
- if (for_state != STATE_NORMAL && button_state_images_[for_state].isNull())
- return button_state_images_[STATE_NORMAL];
- return button_state_images_[for_state];
+ if (for_state != STATE_NORMAL && button_state_images_[0][for_state].isNull())
+ return button_state_images_[0][STATE_NORMAL];
+ return button_state_images_[0][for_state];
+}
+
+const gfx::ImageSkia& LabelButton::GetFocusedImage(ButtonState for_state) {
msw 2013/05/18 03:46:30 Don't make a separate GetFocusedImage. Check if th
tfarina 2013/05/18 18:43:23 Done.
+ if (for_state != STATE_NORMAL && button_state_images_[1][for_state].isNull())
+ return button_state_images_[1][STATE_NORMAL];
+ return button_state_images_[1][for_state];
}
void LabelButton::SetImage(ButtonState for_state, const gfx::ImageSkia& image) {
- button_state_images_[for_state] = image;
+ button_state_images_[0][for_state] = image;
image_->SetImage(GetImage(state()));
}
+void LabelButton::SetFocusedImage(ButtonState for_state,
+ const gfx::ImageSkia& image) {
+ button_state_images_[1][for_state] = image;
+ image_->SetImage(GetFocusedImage(state()));
+}
+
const string16& LabelButton::GetText() const {
return label_->text();
}
@@ -194,6 +206,17 @@ const char* LabelButton::GetClassName() const {
return kViewClassName;
}
+void LabelButton::GetExtraParams(ui::NativeTheme::ExtraParams* params) const {
+ params->button.checked = false;
+ params->button.indeterminate = false;
+ params->button.is_default = is_default_;
+ params->button.is_focused = HasFocus() && IsAccessibilityFocusable();
+ params->button.has_border = style() == STYLE_NATIVE_TEXTBUTTON;
+ params->button.classic_state = 0;
+ params->button.background_color = GetNativeTheme()->GetSystemColor(
+ ui::NativeTheme::kColorId_ButtonBackgroundColor);
+}
+
void LabelButton::ResetColorsFromNativeTheme() {
const ui::NativeTheme* theme = GetNativeTheme();
SkColor colors[STATE_COUNT] = {
@@ -292,7 +315,7 @@ gfx::Rect LabelButton::GetThemePaintRect() const {
ui::NativeTheme::State LabelButton::GetThemeState(
ui::NativeTheme::ExtraParams* params) const {
GetExtraParams(params);
- switch(state()) {
+ switch (state()) {
case STATE_NORMAL: return ui::NativeTheme::kNormal;
case STATE_HOVERED: return ui::NativeTheme::kHovered;
case STATE_PRESSED: return ui::NativeTheme::kPressed;
@@ -325,15 +348,4 @@ ui::NativeTheme::State LabelButton::GetForegroundThemeState(
return ui::NativeTheme::kHovered;
}
-void LabelButton::GetExtraParams(ui::NativeTheme::ExtraParams* params) const {
- params->button.checked = false;
- params->button.indeterminate = false;
- params->button.is_default = is_default_;
- params->button.is_focused = HasFocus() && IsAccessibilityFocusable();
- params->button.has_border = style() == STYLE_NATIVE_TEXTBUTTON;
- params->button.classic_state = 0;
- params->button.background_color = GetNativeTheme()->GetSystemColor(
- ui::NativeTheme::kColorId_ButtonBackgroundColor);
-}
-
} // namespace views

Powered by Google App Engine
This is Rietveld 408576698