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 #ifndef CHROME_BROWSER_UI_VIEWS_APPS_NATIVE_APP_WINDOW_VIEWS_H_ | 5 #ifndef CHROME_BROWSER_UI_VIEWS_APPS_NATIVE_APP_WINDOW_VIEWS_H_ |
6 #define CHROME_BROWSER_UI_VIEWS_APPS_NATIVE_APP_WINDOW_VIEWS_H_ | 6 #define CHROME_BROWSER_UI_VIEWS_APPS_NATIVE_APP_WINDOW_VIEWS_H_ |
7 | 7 |
8 #include "apps/shell_window.h" | 8 #include "apps/shell_window.h" |
9 #include "apps/ui/native_app_window.h" | 9 #include "apps/ui/native_app_window.h" |
10 #include "base/observer_list.h" | 10 #include "base/observer_list.h" |
11 #include "content/public/browser/web_contents_observer.h" | 11 #include "content/public/browser/web_contents_observer.h" |
12 #include "third_party/skia/include/core/SkRegion.h" | 12 #include "third_party/skia/include/core/SkRegion.h" |
13 #include "ui/gfx/image/image_skia.h" | 13 #include "ui/gfx/image/image_skia.h" |
14 #include "ui/gfx/rect.h" | 14 #include "ui/gfx/rect.h" |
15 #include "ui/views/controls/webview/unhandled_keyboard_event_handler.h" | 15 #include "ui/views/controls/webview/unhandled_keyboard_event_handler.h" |
16 #include "ui/views/widget/widget.h" | 16 #include "ui/views/widget/widget.h" |
17 #include "ui/views/widget/widget_delegate.h" | 17 #include "ui/views/widget/widget_delegate.h" |
18 #include "ui/views/widget/widget_observer.h" | 18 #include "ui/views/widget/widget_observer.h" |
19 | 19 |
20 #if defined(OS_WIN) | 20 #if defined(OS_WIN) |
21 #include "chrome/browser/shell_integration.h" | 21 #include "chrome/browser/shell_integration.h" |
22 #endif | 22 #endif |
23 | 23 |
| 24 #if defined(USE_ASH) |
| 25 namespace ash { |
| 26 class ImmersiveFullscreenController; |
| 27 } |
| 28 #endif |
| 29 |
24 class ExtensionKeybindingRegistryViews; | 30 class ExtensionKeybindingRegistryViews; |
25 class Profile; | 31 class Profile; |
26 | 32 |
27 namespace apps { | 33 namespace apps { |
28 class ShellWindowFrameView; | 34 class ShellWindowFrameView; |
29 } | 35 } |
30 | 36 |
31 namespace content { | 37 namespace content { |
32 class RenderViewHost; | 38 class RenderViewHost; |
33 class WebContents; | 39 class WebContents; |
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
145 virtual void Layout() OVERRIDE; | 151 virtual void Layout() OVERRIDE; |
146 virtual void ViewHierarchyChanged( | 152 virtual void ViewHierarchyChanged( |
147 const ViewHierarchyChangedDetails& details) OVERRIDE; | 153 const ViewHierarchyChangedDetails& details) OVERRIDE; |
148 virtual gfx::Size GetPreferredSize() OVERRIDE; | 154 virtual gfx::Size GetPreferredSize() OVERRIDE; |
149 virtual gfx::Size GetMinimumSize() OVERRIDE; | 155 virtual gfx::Size GetMinimumSize() OVERRIDE; |
150 virtual gfx::Size GetMaximumSize() OVERRIDE; | 156 virtual gfx::Size GetMaximumSize() OVERRIDE; |
151 virtual void OnFocus() OVERRIDE; | 157 virtual void OnFocus() OVERRIDE; |
152 virtual bool AcceleratorPressed(const ui::Accelerator& accelerator) OVERRIDE; | 158 virtual bool AcceleratorPressed(const ui::Accelerator& accelerator) OVERRIDE; |
153 | 159 |
154 // NativeAppWindow implementation. | 160 // NativeAppWindow implementation. |
155 virtual void SetFullscreen(bool fullscreen) OVERRIDE; | 161 virtual void SetFullscreen(int fullscreen_types) OVERRIDE; |
156 virtual bool IsFullscreenOrPending() const OVERRIDE; | 162 virtual bool IsFullscreenOrPending() const OVERRIDE; |
157 virtual bool IsDetached() const OVERRIDE; | 163 virtual bool IsDetached() const OVERRIDE; |
158 virtual void UpdateWindowIcon() OVERRIDE; | 164 virtual void UpdateWindowIcon() OVERRIDE; |
159 virtual void UpdateWindowTitle() OVERRIDE; | 165 virtual void UpdateWindowTitle() OVERRIDE; |
160 virtual void UpdateDraggableRegions( | 166 virtual void UpdateDraggableRegions( |
161 const std::vector<extensions::DraggableRegion>& regions) OVERRIDE; | 167 const std::vector<extensions::DraggableRegion>& regions) OVERRIDE; |
162 virtual SkRegion* GetDraggableRegion() OVERRIDE; | 168 virtual SkRegion* GetDraggableRegion() OVERRIDE; |
163 virtual void UpdateInputRegion(scoped_ptr<SkRegion> region) OVERRIDE; | 169 virtual void UpdateInputRegion(scoped_ptr<SkRegion> region) OVERRIDE; |
164 virtual void HandleKeyboardEvent( | 170 virtual void HandleKeyboardEvent( |
165 const content::NativeWebKeyboardEvent& event) OVERRIDE; | 171 const content::NativeWebKeyboardEvent& event) OVERRIDE; |
(...skipping 30 matching lines...) Expand all Loading... |
196 const bool frameless_; | 202 const bool frameless_; |
197 const bool transparent_background_; | 203 const bool transparent_background_; |
198 gfx::Size preferred_size_; | 204 gfx::Size preferred_size_; |
199 bool resizable_; | 205 bool resizable_; |
200 | 206 |
201 // The class that registers for keyboard shortcuts for extension commands. | 207 // The class that registers for keyboard shortcuts for extension commands. |
202 scoped_ptr<ExtensionKeybindingRegistryViews> extension_keybinding_registry_; | 208 scoped_ptr<ExtensionKeybindingRegistryViews> extension_keybinding_registry_; |
203 | 209 |
204 views::UnhandledKeyboardEventHandler unhandled_keyboard_event_handler_; | 210 views::UnhandledKeyboardEventHandler unhandled_keyboard_event_handler_; |
205 | 211 |
206 base::WeakPtrFactory<NativeAppWindowViews> weak_ptr_factory_; | 212 #if defined(USE_ASH) |
| 213 // Used to put non-frameless windows into immersive fullscreen on ChromeOS. In |
| 214 // immersive fullscreen, the window header (title bar and window controls) |
| 215 // slides onscreen as an overlay when the mouse is hovered at the top of the |
| 216 // screen. |
| 217 scoped_ptr<ash::ImmersiveFullscreenController> |
| 218 immersive_fullscreen_controller_; |
| 219 #endif |
207 | 220 |
208 ObserverList<web_modal::ModalDialogHostObserver> observer_list_; | 221 ObserverList<web_modal::ModalDialogHostObserver> observer_list_; |
209 | 222 |
| 223 base::WeakPtrFactory<NativeAppWindowViews> weak_ptr_factory_; |
| 224 |
210 DISALLOW_COPY_AND_ASSIGN(NativeAppWindowViews); | 225 DISALLOW_COPY_AND_ASSIGN(NativeAppWindowViews); |
211 }; | 226 }; |
212 | 227 |
213 #endif // CHROME_BROWSER_UI_VIEWS_APPS_NATIVE_APP_WINDOW_VIEWS_H_ | 228 #endif // CHROME_BROWSER_UI_VIEWS_APPS_NATIVE_APP_WINDOW_VIEWS_H_ |
OLD | NEW |