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 "chrome/browser/ui/views/extensions/shell_window_views.h" | 5 #include "chrome/browser/ui/views/extensions/shell_window_views.h" |
6 | 6 |
7 #include "base/utf_string_conversions.h" | 7 #include "base/utf_string_conversions.h" |
8 #include "chrome/browser/extensions/extension_host.h" | 8 #include "chrome/browser/extensions/extension_host.h" |
9 #include "chrome/common/extensions/draggable_region.h" | 9 #include "chrome/common/extensions/draggable_region.h" |
10 #include "chrome/common/extensions/extension.h" | 10 #include "chrome/common/extensions/extension.h" |
(...skipping 19 matching lines...) Expand all Loading... |
30 | 30 |
31 #if defined(OS_WIN) && !defined(USE_AURA) | 31 #if defined(OS_WIN) && !defined(USE_AURA) |
32 #include "chrome/browser/shell_integration.h" | 32 #include "chrome/browser/shell_integration.h" |
33 #include "chrome/browser/web_applications/web_app.h" | 33 #include "chrome/browser/web_applications/web_app.h" |
34 #include "ui/base/win/shell.h" | 34 #include "ui/base/win/shell.h" |
35 #endif | 35 #endif |
36 | 36 |
37 #if defined(USE_ASH) | 37 #if defined(USE_ASH) |
38 #include "ash/ash_constants.h" | 38 #include "ash/ash_constants.h" |
39 #include "ash/wm/custom_frame_view_ash.h" | 39 #include "ash/wm/custom_frame_view_ash.h" |
| 40 #include "ui/aura/env.h" |
40 #include "ui/aura/window.h" | 41 #include "ui/aura/window.h" |
41 #endif | 42 #endif |
42 | 43 |
43 namespace { | 44 namespace { |
44 #if !defined(USE_ASH) | 45 #if !defined(USE_ASH) |
45 const int kResizeInsideBoundsSize = 5; | 46 const int kResizeInsideBoundsSize = 5; |
46 const int kResizeAreaCornerSize = 16; | 47 const int kResizeAreaCornerSize = 16; |
47 #endif | 48 #endif |
48 | 49 |
49 // Height of the chrome-style caption, in pixels. | 50 // Height of the chrome-style caption, in pixels. |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
114 close_button_->SetImage(views::CustomButton::BS_PUSHED, | 115 close_button_->SetImage(views::CustomButton::BS_PUSHED, |
115 rb.GetNativeImageNamed(IDR_CLOSE_BAR_P).ToImageSkia()); | 116 rb.GetNativeImageNamed(IDR_CLOSE_BAR_P).ToImageSkia()); |
116 close_button_->SetAccessibleName( | 117 close_button_->SetAccessibleName( |
117 l10n_util::GetStringUTF16(IDS_APP_ACCNAME_CLOSE)); | 118 l10n_util::GetStringUTF16(IDS_APP_ACCNAME_CLOSE)); |
118 AddChildView(close_button_); | 119 AddChildView(close_button_); |
119 } | 120 } |
120 | 121 |
121 #if defined(USE_ASH) | 122 #if defined(USE_ASH) |
122 aura::Window* window = frame->GetNativeWindow(); | 123 aura::Window* window = frame->GetNativeWindow(); |
123 // Ensure we get resize cursors for a few pixels outside our bounds. | 124 // Ensure we get resize cursors for a few pixels outside our bounds. |
124 int outside_bounds = ui::GetDisplayLayout() == ui::LAYOUT_TOUCH ? | 125 window->SetHitTestBoundsOverrideOuter( |
125 ash::kResizeOutsideBoundsSizeTouch : | 126 gfx::Insets(-ash::kResizeOutsideBoundsSize, |
126 ash::kResizeOutsideBoundsSize; | 127 -ash::kResizeOutsideBoundsSize, |
127 window->set_hit_test_bounds_override_outer( | 128 -ash::kResizeOutsideBoundsSize, |
128 gfx::Insets(-outside_bounds, -outside_bounds, | 129 -ash::kResizeOutsideBoundsSize), |
129 -outside_bounds, -outside_bounds)); | 130 ash::kResizeOutsideBoundsScaleForTouch); |
130 // Ensure we get resize cursors just inside our bounds as well. | 131 // Ensure we get resize cursors just inside our bounds as well. |
131 // TODO(jeremya): do we need to update these when in fullscreen/maximized? | 132 // TODO(jeremya): do we need to update these when in fullscreen/maximized? |
132 window->set_hit_test_bounds_override_inner( | 133 window->set_hit_test_bounds_override_inner( |
133 gfx::Insets(ash::kResizeInsideBoundsSize, ash::kResizeInsideBoundsSize, | 134 gfx::Insets(ash::kResizeInsideBoundsSize, ash::kResizeInsideBoundsSize, |
134 ash::kResizeInsideBoundsSize, ash::kResizeInsideBoundsSize)); | 135 ash::kResizeInsideBoundsSize, ash::kResizeInsideBoundsSize)); |
135 #endif | 136 #endif |
136 } | 137 } |
137 | 138 |
138 gfx::Rect ShellWindowFrameView::GetBoundsForClientView() const { | 139 gfx::Rect ShellWindowFrameView::GetBoundsForClientView() const { |
139 if (window_->frameless() || frame_->IsFullscreen()) | 140 if (window_->frameless() || frame_->IsFullscreen()) |
(...skipping 15 matching lines...) Expand all Loading... |
155 std::max(header_width, client_bounds.width()), | 156 std::max(header_width, client_bounds.width()), |
156 client_bounds.height() + kCaptionHeight); | 157 client_bounds.height() + kCaptionHeight); |
157 } | 158 } |
158 | 159 |
159 int ShellWindowFrameView::NonClientHitTest(const gfx::Point& point) { | 160 int ShellWindowFrameView::NonClientHitTest(const gfx::Point& point) { |
160 if (frame_->IsFullscreen()) | 161 if (frame_->IsFullscreen()) |
161 return HTCLIENT; | 162 return HTCLIENT; |
162 | 163 |
163 #if defined(USE_ASH) | 164 #if defined(USE_ASH) |
164 gfx::Rect expanded_bounds = bounds(); | 165 gfx::Rect expanded_bounds = bounds(); |
165 int outside_bounds = ui::GetDisplayLayout() == ui::LAYOUT_TOUCH ? | 166 int outside_bounds = ash::kResizeOutsideBoundsSize; |
166 ash::kResizeOutsideBoundsSizeTouch : | 167 if (ui::GetDisplayLayout() == ui::LAYOUT_TOUCH && |
167 ash::kResizeOutsideBoundsSize; | 168 aura::Env::GetInstance()->is_touch_down()) { |
| 169 outside_bounds *= ash::kResizeOutsideBoundsScaleForTouch; |
| 170 } |
168 expanded_bounds.Inset(-outside_bounds, -outside_bounds); | 171 expanded_bounds.Inset(-outside_bounds, -outside_bounds); |
169 if (!expanded_bounds.Contains(point)) | 172 if (!expanded_bounds.Contains(point)) |
170 return HTNOWHERE; | 173 return HTNOWHERE; |
171 | 174 |
172 int kResizeInsideBoundsSize = ash::kResizeInsideBoundsSize; | 175 int kResizeInsideBoundsSize = ash::kResizeInsideBoundsSize; |
173 int kResizeAreaCornerSize = ash::kResizeAreaCornerSize; | 176 int kResizeAreaCornerSize = ash::kResizeAreaCornerSize; |
174 #endif | 177 #endif |
175 | 178 |
176 // Check the frame first, as we allow a small area overlapping the contents | 179 // Check the frame first, as we allow a small area overlapping the contents |
177 // to be used for resize handles. | 180 // to be used for resize handles. |
(...skipping 398 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
576 OnViewWasResized(); | 579 OnViewWasResized(); |
577 } | 580 } |
578 | 581 |
579 // static | 582 // static |
580 ShellWindow* ShellWindow::CreateImpl(Profile* profile, | 583 ShellWindow* ShellWindow::CreateImpl(Profile* profile, |
581 const extensions::Extension* extension, | 584 const extensions::Extension* extension, |
582 const GURL& url, | 585 const GURL& url, |
583 const ShellWindow::CreateParams& params) { | 586 const ShellWindow::CreateParams& params) { |
584 return new ShellWindowViews(profile, extension, url, params); | 587 return new ShellWindowViews(profile, extension, url, params); |
585 } | 588 } |
OLD | NEW |