| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 "ash/frame/caption_buttons/frame_caption_button_container_view.h" | 5 #include "ash/frame/caption_buttons/frame_caption_button_container_view.h" |
| 6 | 6 |
| 7 #include <cmath> | 7 #include <cmath> |
| 8 #include <map> | 8 #include <map> |
| 9 | 9 |
| 10 #include "ash/ash_switches.h" | 10 #include "ash/ash_switches.h" |
| (...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 142 AddChildView(close_button_); | 142 AddChildView(close_button_); |
| 143 } | 143 } |
| 144 | 144 |
| 145 FrameCaptionButtonContainerView::~FrameCaptionButtonContainerView() { | 145 FrameCaptionButtonContainerView::~FrameCaptionButtonContainerView() { |
| 146 } | 146 } |
| 147 | 147 |
| 148 void FrameCaptionButtonContainerView::TestApi::EndAnimations() { | 148 void FrameCaptionButtonContainerView::TestApi::EndAnimations() { |
| 149 container_view_->maximize_mode_animation_->End(); | 149 container_view_->maximize_mode_animation_->End(); |
| 150 } | 150 } |
| 151 | 151 |
| 152 void FrameCaptionButtonContainerView::SetButtonImages( | 152 void FrameCaptionButtonContainerView::SetButtonImage(CaptionButtonIcon icon, |
| 153 CaptionButtonIcon icon, | 153 int icon_image_id) { |
| 154 int icon_image_id, | 154 button_icon_id_map_[icon] = icon_image_id; |
| 155 int hovered_background_image_id, | 155 |
| 156 int pressed_background_image_id) { | |
| 157 button_icon_id_map_[icon] = ButtonIconIds(icon_image_id, | |
| 158 hovered_background_image_id, | |
| 159 pressed_background_image_id); | |
| 160 FrameCaptionButton* buttons[] = { | 156 FrameCaptionButton* buttons[] = { |
| 161 minimize_button_, size_button_, close_button_ | 157 minimize_button_, size_button_, close_button_ |
| 162 }; | 158 }; |
| 163 for (size_t i = 0; i < arraysize(buttons); ++i) { | 159 for (size_t i = 0; i < arraysize(buttons); ++i) { |
| 164 if (buttons[i]->icon() == icon) { | 160 if (buttons[i]->icon() == icon) { |
| 165 buttons[i]->SetImages(icon, | 161 buttons[i]->SetImage(icon, FrameCaptionButton::ANIMATE_NO, icon_image_id); |
| 166 FrameCaptionButton::ANIMATE_NO, | |
| 167 icon_image_id, | |
| 168 hovered_background_image_id, | |
| 169 pressed_background_image_id); | |
| 170 } | 162 } |
| 171 } | 163 } |
| 172 } | 164 } |
| 173 | 165 |
| 174 void FrameCaptionButtonContainerView::SetPaintAsActive(bool paint_as_active) { | 166 void FrameCaptionButtonContainerView::SetPaintAsActive(bool paint_as_active) { |
| 175 minimize_button_->set_paint_as_active(paint_as_active); | 167 minimize_button_->set_paint_as_active(paint_as_active); |
| 176 size_button_->set_paint_as_active(paint_as_active); | 168 size_button_->set_paint_as_active(paint_as_active); |
| 177 close_button_->set_paint_as_active(paint_as_active); | 169 close_button_->set_paint_as_active(paint_as_active); |
| 178 } | 170 } |
| 179 | 171 |
| (...skipping 21 matching lines...) Expand all Loading... |
| 201 if (visible) { | 193 if (visible) { |
| 202 size_button_->SetVisible(true); | 194 size_button_->SetVisible(true); |
| 203 maximize_mode_animation_->SetSlideDuration(kShowAnimationDurationMs); | 195 maximize_mode_animation_->SetSlideDuration(kShowAnimationDurationMs); |
| 204 maximize_mode_animation_->Show(); | 196 maximize_mode_animation_->Show(); |
| 205 } else { | 197 } else { |
| 206 maximize_mode_animation_->SetSlideDuration(kHideAnimationDurationMs); | 198 maximize_mode_animation_->SetSlideDuration(kHideAnimationDurationMs); |
| 207 maximize_mode_animation_->Hide(); | 199 maximize_mode_animation_->Hide(); |
| 208 } | 200 } |
| 209 } | 201 } |
| 210 | 202 |
| 203 void FrameCaptionButtonContainerView::SetButtonSize(const gfx::Size& size) { |
| 204 minimize_button_->set_size(size); |
| 205 size_button_->set_size(size); |
| 206 close_button_->set_size(size); |
| 207 } |
| 208 |
| 211 gfx::Size FrameCaptionButtonContainerView::GetPreferredSize() const { | 209 gfx::Size FrameCaptionButtonContainerView::GetPreferredSize() const { |
| 212 int width = 0; | 210 int width = 0; |
| 213 for (int i = 0; i < child_count(); ++i) { | 211 for (int i = 0; i < child_count(); ++i) { |
| 214 const views::View* child = child_at(i); | 212 const views::View* child = child_at(i); |
| 215 if (child->visible()) | 213 if (child->visible()) |
| 216 width += child_at(i)->GetPreferredSize().width(); | 214 width += child_at(i)->GetPreferredSize().width(); |
| 217 } | 215 } |
| 216 |
| 218 return gfx::Size(width, close_button_->GetPreferredSize().height()); | 217 return gfx::Size(width, close_button_->GetPreferredSize().height()); |
| 219 } | 218 } |
| 220 | 219 |
| 221 void FrameCaptionButtonContainerView::Layout() { | 220 void FrameCaptionButtonContainerView::Layout() { |
| 222 int x = 0; | 221 int x = 0; |
| 223 for (int i = 0; i < child_count(); ++i) { | 222 for (int i = 0; i < child_count(); ++i) { |
| 224 views::View* child = child_at(i); | 223 views::View* child = child_at(i); |
| 225 if (!child->visible()) | 224 if (!child->visible()) |
| 226 continue; | 225 continue; |
| 227 | 226 |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 292 // The early return is dependant on |animate| because callers use | 291 // The early return is dependant on |animate| because callers use |
| 293 // SetButtonIcon() with ANIMATE_NO to progress |button|'s crossfade animation | 292 // SetButtonIcon() with ANIMATE_NO to progress |button|'s crossfade animation |
| 294 // to the end. | 293 // to the end. |
| 295 if (button->icon() == icon && | 294 if (button->icon() == icon && |
| 296 (animate == ANIMATE_YES || !button->IsAnimatingImageSwap())) { | 295 (animate == ANIMATE_YES || !button->IsAnimatingImageSwap())) { |
| 297 return; | 296 return; |
| 298 } | 297 } |
| 299 | 298 |
| 300 FrameCaptionButton::Animate fcb_animate = (animate == ANIMATE_YES) ? | 299 FrameCaptionButton::Animate fcb_animate = (animate == ANIMATE_YES) ? |
| 301 FrameCaptionButton::ANIMATE_YES : FrameCaptionButton::ANIMATE_NO; | 300 FrameCaptionButton::ANIMATE_YES : FrameCaptionButton::ANIMATE_NO; |
| 302 std::map<CaptionButtonIcon, ButtonIconIds>::const_iterator it = | 301 std::map<CaptionButtonIcon, int>::const_iterator it = |
| 303 button_icon_id_map_.find(icon); | 302 button_icon_id_map_.find(icon); |
| 304 if (it != button_icon_id_map_.end()) { | 303 if (it != button_icon_id_map_.end()) |
| 305 button->SetImages(icon, | 304 button->SetImage(icon, fcb_animate, it->second); |
| 306 fcb_animate, | |
| 307 it->second.icon_image_id, | |
| 308 it->second.hovered_background_image_id, | |
| 309 it->second.pressed_background_image_id); | |
| 310 } | |
| 311 } | 305 } |
| 312 | 306 |
| 313 bool FrameCaptionButtonContainerView::ShouldSizeButtonBeVisible() const { | 307 bool FrameCaptionButtonContainerView::ShouldSizeButtonBeVisible() const { |
| 314 return !Shell::GetInstance()->maximize_mode_controller()-> | 308 return !Shell::GetInstance()->maximize_mode_controller()-> |
| 315 IsMaximizeModeWindowManagerEnabled() && | 309 IsMaximizeModeWindowManagerEnabled() && |
| 316 frame_->widget_delegate()->CanMaximize(); | 310 frame_->widget_delegate()->CanMaximize(); |
| 317 } | 311 } |
| 318 | 312 |
| 319 void FrameCaptionButtonContainerView::ButtonPressed(views::Button* sender, | 313 void FrameCaptionButtonContainerView::ButtonPressed(views::Button* sender, |
| 320 const ui::Event& event) { | 314 const ui::Event& event) { |
| (...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 411 FrameCaptionButton* button = buttons[i]; | 405 FrameCaptionButton* button = buttons[i]; |
| 412 views::Button::ButtonState new_state = views::Button::STATE_NORMAL; | 406 views::Button::ButtonState new_state = views::Button::STATE_NORMAL; |
| 413 if (button == to_hover) | 407 if (button == to_hover) |
| 414 new_state = views::Button::STATE_HOVERED; | 408 new_state = views::Button::STATE_HOVERED; |
| 415 else if (button == to_press) | 409 else if (button == to_press) |
| 416 new_state = views::Button::STATE_PRESSED; | 410 new_state = views::Button::STATE_PRESSED; |
| 417 button->SetState(new_state); | 411 button->SetState(new_state); |
| 418 } | 412 } |
| 419 } | 413 } |
| 420 | 414 |
| 421 FrameCaptionButtonContainerView::ButtonIconIds::ButtonIconIds() | |
| 422 : icon_image_id(-1), | |
| 423 hovered_background_image_id(-1), | |
| 424 pressed_background_image_id(-1) { | |
| 425 } | |
| 426 | |
| 427 FrameCaptionButtonContainerView::ButtonIconIds::ButtonIconIds( | |
| 428 int icon_id, | |
| 429 int hovered_background_id, | |
| 430 int pressed_background_id) | |
| 431 : icon_image_id(icon_id), | |
| 432 hovered_background_image_id(hovered_background_id), | |
| 433 pressed_background_image_id(pressed_background_id) { | |
| 434 } | |
| 435 | |
| 436 FrameCaptionButtonContainerView::ButtonIconIds::~ButtonIconIds() { | |
| 437 } | |
| 438 | |
| 439 } // namespace ash | 415 } // namespace ash |
| OLD | NEW |