| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "ui/views/controls/button/image_button.h" | 5 #include "ui/views/controls/button/image_button.h" |
| 6 | 6 |
| 7 #include <utility> | 7 #include <utility> |
| 8 | 8 |
| 9 #include "base/strings/utf_string_conversions.h" | 9 #include "base/strings/utf_string_conversions.h" |
| 10 #include "ui/accessibility/ax_view_state.h" | 10 #include "ui/accessibility/ax_view_state.h" |
| (...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 138 | 138 |
| 139 void ImageButton::OnBlur() { | 139 void ImageButton::OnBlur() { |
| 140 View::OnBlur(); | 140 View::OnBlur(); |
| 141 if (focus_painter_.get()) | 141 if (focus_painter_.get()) |
| 142 SchedulePaint(); | 142 SchedulePaint(); |
| 143 } | 143 } |
| 144 | 144 |
| 145 gfx::ImageSkia ImageButton::GetImageToPaint() { | 145 gfx::ImageSkia ImageButton::GetImageToPaint() { |
| 146 gfx::ImageSkia img; | 146 gfx::ImageSkia img; |
| 147 | 147 |
| 148 if (!images_[STATE_HOVERED].isNull() && hover_animation_->is_animating()) { | 148 if (!images_[STATE_HOVERED].isNull() && hover_animation().is_animating()) { |
| 149 img = gfx::ImageSkiaOperations::CreateBlendedImage(images_[STATE_NORMAL], | 149 img = gfx::ImageSkiaOperations::CreateBlendedImage( |
| 150 images_[STATE_HOVERED], hover_animation_->GetCurrentValue()); | 150 images_[STATE_NORMAL], images_[STATE_HOVERED], |
| 151 hover_animation().GetCurrentValue()); |
| 151 } else { | 152 } else { |
| 152 img = images_[state_]; | 153 img = images_[state()]; |
| 153 } | 154 } |
| 154 | 155 |
| 155 return !img.isNull() ? img : images_[STATE_NORMAL]; | 156 return !img.isNull() ? img : images_[STATE_NORMAL]; |
| 156 } | 157 } |
| 157 | 158 |
| 158 //////////////////////////////////////////////////////////////////////////////// | 159 //////////////////////////////////////////////////////////////////////////////// |
| 159 // ImageButton, private: | 160 // ImageButton, private: |
| 160 | 161 |
| 161 gfx::Point ImageButton::ComputeImagePaintPosition(const gfx::ImageSkia& image) { | 162 gfx::Point ImageButton::ComputeImagePaintPosition(const gfx::ImageSkia& image) { |
| 162 int x = 0, y = 0; | 163 int x = 0, y = 0; |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 205 gfx::ImageSkia temp = images_[i]; | 206 gfx::ImageSkia temp = images_[i]; |
| 206 images_[i] = alternate_images_[i]; | 207 images_[i] = alternate_images_[i]; |
| 207 alternate_images_[i] = temp; | 208 alternate_images_[i] = temp; |
| 208 } | 209 } |
| 209 toggled_ = toggled; | 210 toggled_ = toggled; |
| 210 SchedulePaint(); | 211 SchedulePaint(); |
| 211 | 212 |
| 212 NotifyAccessibilityEvent(ui::AX_EVENT_VALUE_CHANGED, true); | 213 NotifyAccessibilityEvent(ui::AX_EVENT_VALUE_CHANGED, true); |
| 213 } | 214 } |
| 214 | 215 |
| 215 void ToggleImageButton::SetToggledImage(ButtonState state, | 216 void ToggleImageButton::SetToggledImage(ButtonState image_state, |
| 216 const gfx::ImageSkia* image) { | 217 const gfx::ImageSkia* image) { |
| 217 if (toggled_) { | 218 if (toggled_) { |
| 218 images_[state] = image ? *image : gfx::ImageSkia(); | 219 images_[image_state] = image ? *image : gfx::ImageSkia(); |
| 219 if (state_ == state) | 220 if (state() == image_state) |
| 220 SchedulePaint(); | 221 SchedulePaint(); |
| 221 } else { | 222 } else { |
| 222 alternate_images_[state] = image ? *image : gfx::ImageSkia(); | 223 alternate_images_[image_state] = image ? *image : gfx::ImageSkia(); |
| 223 } | 224 } |
| 224 } | 225 } |
| 225 | 226 |
| 226 void ToggleImageButton::SetToggledTooltipText(const base::string16& tooltip) { | 227 void ToggleImageButton::SetToggledTooltipText(const base::string16& tooltip) { |
| 227 toggled_tooltip_text_ = tooltip; | 228 toggled_tooltip_text_ = tooltip; |
| 228 } | 229 } |
| 229 | 230 |
| 230 //////////////////////////////////////////////////////////////////////////////// | 231 //////////////////////////////////////////////////////////////////////////////// |
| 231 // ToggleImageButton, ImageButton overrides: | 232 // ToggleImageButton, ImageButton overrides: |
| 232 | 233 |
| 233 const gfx::ImageSkia& ToggleImageButton::GetImage(ButtonState state) const { | 234 const gfx::ImageSkia& ToggleImageButton::GetImage( |
| 235 ButtonState image_state) const { |
| 234 if (toggled_) | 236 if (toggled_) |
| 235 return alternate_images_[state]; | 237 return alternate_images_[image_state]; |
| 236 return images_[state]; | 238 return images_[image_state]; |
| 237 } | 239 } |
| 238 | 240 |
| 239 void ToggleImageButton::SetImage(ButtonState state, | 241 void ToggleImageButton::SetImage(ButtonState image_state, |
| 240 const gfx::ImageSkia* image) { | 242 const gfx::ImageSkia* image) { |
| 241 if (toggled_) { | 243 if (toggled_) { |
| 242 alternate_images_[state] = image ? *image : gfx::ImageSkia(); | 244 alternate_images_[image_state] = image ? *image : gfx::ImageSkia(); |
| 243 } else { | 245 } else { |
| 244 images_[state] = image ? *image : gfx::ImageSkia(); | 246 images_[image_state] = image ? *image : gfx::ImageSkia(); |
| 245 if (state_ == state) | 247 if (state() == image_state) |
| 246 SchedulePaint(); | 248 SchedulePaint(); |
| 247 } | 249 } |
| 248 PreferredSizeChanged(); | 250 PreferredSizeChanged(); |
| 249 } | 251 } |
| 250 | 252 |
| 251 //////////////////////////////////////////////////////////////////////////////// | 253 //////////////////////////////////////////////////////////////////////////////// |
| 252 // ToggleImageButton, View overrides: | 254 // ToggleImageButton, View overrides: |
| 253 | 255 |
| 254 bool ToggleImageButton::GetTooltipText(const gfx::Point& p, | 256 bool ToggleImageButton::GetTooltipText(const gfx::Point& p, |
| 255 base::string16* tooltip) const { | 257 base::string16* tooltip) const { |
| 256 if (!toggled_ || toggled_tooltip_text_.empty()) | 258 if (!toggled_ || toggled_tooltip_text_.empty()) |
| 257 return Button::GetTooltipText(p, tooltip); | 259 return Button::GetTooltipText(p, tooltip); |
| 258 | 260 |
| 259 *tooltip = toggled_tooltip_text_; | 261 *tooltip = toggled_tooltip_text_; |
| 260 return true; | 262 return true; |
| 261 } | 263 } |
| 262 | 264 |
| 263 void ToggleImageButton::GetAccessibleState(ui::AXViewState* state) { | 265 void ToggleImageButton::GetAccessibleState(ui::AXViewState* state) { |
| 264 ImageButton::GetAccessibleState(state); | 266 ImageButton::GetAccessibleState(state); |
| 265 GetTooltipText(gfx::Point(), &state->name); | 267 GetTooltipText(gfx::Point(), &state->name); |
| 266 } | 268 } |
| 267 | 269 |
| 268 } // namespace views | 270 } // namespace views |
| OLD | NEW |