OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "apps/ui/views/app_window_frame_view.h" | 5 #include "apps/ui/views/app_window_frame_view.h" |
6 | 6 |
7 #include "base/strings/utf_string_conversions.h" | 7 #include "base/strings/utf_string_conversions.h" |
8 #include "extensions/browser/app_window/native_app_window.h" | 8 #include "extensions/browser/app_window/native_app_window.h" |
9 #include "extensions/common/draggable_region.h" | 9 #include "extensions/common/draggable_region.h" |
10 #include "grit/theme_resources.h" | 10 #include "grit/theme_resources.h" |
(...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
222 | 222 |
223 // Caption is a safe default. | 223 // Caption is a safe default. |
224 return HTCAPTION; | 224 return HTCAPTION; |
225 } | 225 } |
226 | 226 |
227 void AppWindowFrameView::GetWindowMask(const gfx::Size& size, | 227 void AppWindowFrameView::GetWindowMask(const gfx::Size& size, |
228 gfx::Path* window_mask) { | 228 gfx::Path* window_mask) { |
229 // We got nothing to say about no window mask. | 229 // We got nothing to say about no window mask. |
230 } | 230 } |
231 | 231 |
| 232 void AppWindowFrameView::SizeConstraintsChanged() { |
| 233 if (draw_frame_) { |
| 234 maximize_button_->SetEnabled(widget_->widget_delegate() && |
| 235 widget_->widget_delegate()->CanMaximize()); |
| 236 } |
| 237 } |
| 238 |
232 gfx::Size AppWindowFrameView::GetPreferredSize() const { | 239 gfx::Size AppWindowFrameView::GetPreferredSize() const { |
233 gfx::Size pref = widget_->client_view()->GetPreferredSize(); | 240 gfx::Size pref = widget_->client_view()->GetPreferredSize(); |
234 gfx::Rect bounds(0, 0, pref.width(), pref.height()); | 241 gfx::Rect bounds(0, 0, pref.width(), pref.height()); |
235 return widget_->non_client_view() | 242 return widget_->non_client_view() |
236 ->GetWindowBoundsForClientBounds(bounds) | 243 ->GetWindowBoundsForClientBounds(bounds) |
237 .size(); | 244 .size(); |
238 } | 245 } |
239 | 246 |
240 void AppWindowFrameView::Layout() { | 247 void AppWindowFrameView::Layout() { |
241 if (!draw_frame_) | 248 if (!draw_frame_) |
242 return; | 249 return; |
243 gfx::Size close_size = close_button_->GetPreferredSize(); | 250 gfx::Size close_size = close_button_->GetPreferredSize(); |
244 const int kButtonOffsetY = 0; | 251 const int kButtonOffsetY = 0; |
245 const int kButtonSpacing = 1; | 252 const int kButtonSpacing = 1; |
246 const int kRightMargin = 3; | 253 const int kRightMargin = 3; |
247 | 254 |
248 close_button_->SetBounds(width() - kRightMargin - close_size.width(), | 255 close_button_->SetBounds(width() - kRightMargin - close_size.width(), |
249 kButtonOffsetY, | 256 kButtonOffsetY, |
250 close_size.width(), | 257 close_size.width(), |
251 close_size.height()); | 258 close_size.height()); |
252 | 259 |
253 bool can_ever_resize = widget_->widget_delegate() | 260 maximize_button_->SetEnabled(widget_->widget_delegate() && |
254 ? widget_->widget_delegate()->CanResize() | 261 widget_->widget_delegate()->CanMaximize()); |
255 : false; | |
256 maximize_button_->SetEnabled(can_ever_resize); | |
257 gfx::Size maximize_size = maximize_button_->GetPreferredSize(); | 262 gfx::Size maximize_size = maximize_button_->GetPreferredSize(); |
258 maximize_button_->SetBounds( | 263 maximize_button_->SetBounds( |
259 close_button_->x() - kButtonSpacing - maximize_size.width(), | 264 close_button_->x() - kButtonSpacing - maximize_size.width(), |
260 kButtonOffsetY, | 265 kButtonOffsetY, |
261 maximize_size.width(), | 266 maximize_size.width(), |
262 maximize_size.height()); | 267 maximize_size.height()); |
263 gfx::Size restore_size = restore_button_->GetPreferredSize(); | 268 gfx::Size restore_size = restore_button_->GetPreferredSize(); |
264 restore_button_->SetBounds( | 269 restore_button_->SetBounds( |
265 close_button_->x() - kButtonSpacing - restore_size.width(), | 270 close_button_->x() - kButtonSpacing - restore_size.width(), |
266 kButtonOffsetY, | 271 kButtonOffsetY, |
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
391 restore_button_->SetImage( | 396 restore_button_->SetImage( |
392 views::CustomButton::STATE_NORMAL, | 397 views::CustomButton::STATE_NORMAL, |
393 rb.GetNativeImageNamed(IDR_APP_WINDOW_RESTORE).ToImageSkia()); | 398 rb.GetNativeImageNamed(IDR_APP_WINDOW_RESTORE).ToImageSkia()); |
394 minimize_button_->SetImage( | 399 minimize_button_->SetImage( |
395 views::CustomButton::STATE_NORMAL, | 400 views::CustomButton::STATE_NORMAL, |
396 rb.GetNativeImageNamed(IDR_APP_WINDOW_MINIMIZE).ToImageSkia()); | 401 rb.GetNativeImageNamed(IDR_APP_WINDOW_MINIMIZE).ToImageSkia()); |
397 } | 402 } |
398 } | 403 } |
399 | 404 |
400 } // namespace apps | 405 } // namespace apps |
OLD | NEW |