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

Side by Side Diff: ash/frame/caption_buttons/frame_caption_button_container_view.cc

Issue 1505223004: Do not use assets for Ash window control button backgrounds (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: WIP for pkasting and estade feedback Created 5 years 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 unified diff | Download patch
OLDNEW
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
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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698