| 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 #ifndef CHROME_BROWSER_UI_COCOA_EXTENSIONS_SHELL_WINDOW_COCOA_H_ | 5 #ifndef CHROME_BROWSER_UI_COCOA_EXTENSIONS_SHELL_WINDOW_COCOA_H_ |
| 6 #define CHROME_BROWSER_UI_COCOA_EXTENSIONS_SHELL_WINDOW_COCOA_H_ | 6 #define CHROME_BROWSER_UI_COCOA_EXTENSIONS_SHELL_WINDOW_COCOA_H_ |
| 7 | 7 |
| 8 #import <Cocoa/Cocoa.h> | 8 #import <Cocoa/Cocoa.h> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| 11 #include "base/memory/scoped_nsobject.h" | 11 #include "base/memory/scoped_nsobject.h" |
| 12 #include "chrome/browser/ui/cocoa/constrained_window_mac.h" | 12 #include "chrome/browser/ui/cocoa/constrained_window_mac.h" |
| 13 #include "chrome/browser/ui/extensions/native_shell_window.h" |
| 13 #include "chrome/browser/ui/extensions/shell_window.h" | 14 #include "chrome/browser/ui/extensions/shell_window.h" |
| 14 #include "chrome/common/extensions/draggable_region.h" | 15 #include "chrome/common/extensions/draggable_region.h" |
| 16 #import "third_party/GTM/AppKit/GTMWindowSheetController.h" |
| 15 #include "ui/gfx/rect.h" | 17 #include "ui/gfx/rect.h" |
| 16 #import "third_party/GTM/AppKit/GTMWindowSheetController.h" | |
| 17 | 18 |
| 18 class Profile; | 19 class Profile; |
| 19 class ShellWindowCocoa; | 20 class ShellWindowCocoa; |
| 20 | 21 |
| 21 // A window controller for a minimal window to host a web app view. Passes | 22 // A window controller for a minimal window to host a web app view. Passes |
| 22 // Objective-C notifications to the C++ bridge. | 23 // Objective-C notifications to the C++ bridge. |
| 23 @interface ShellWindowController : NSWindowController | 24 @interface ShellWindowController : NSWindowController |
| 24 <NSWindowDelegate, | 25 <NSWindowDelegate, |
| 25 GTMWindowSheetControllerDelegate, | 26 GTMWindowSheetControllerDelegate, |
| 26 ConstrainedWindowSupport> { | 27 ConstrainedWindowSupport> { |
| 27 @private | 28 @private |
| 28 ShellWindowCocoa* shellWindow_; // Weak; owns self. | 29 ShellWindowCocoa* shellWindow_; // Weak; owns self. |
| 29 // Manages per-window sheets. | 30 // Manages per-window sheets. |
| 30 scoped_nsobject<GTMWindowSheetController> sheetController_; | 31 scoped_nsobject<GTMWindowSheetController> sheetController_; |
| 31 } | 32 } |
| 32 | 33 |
| 33 @property(assign, nonatomic) ShellWindowCocoa* shellWindow; | 34 @property(assign, nonatomic) ShellWindowCocoa* shellWindow; |
| 34 | 35 |
| 35 @end | 36 @end |
| 36 | 37 |
| 37 // Cocoa bridge to ShellWindow. | 38 // Cocoa bridge to ShellWindow. |
| 38 class ShellWindowCocoa : public ShellWindow { | 39 class ShellWindowCocoa : public NativeShellWindow { |
| 39 public: | 40 public: |
| 40 ShellWindowCocoa(Profile* profile, | 41 ShellWindowCocoa(ShellWindow* shell_window, |
| 41 const extensions::Extension* extension, | 42 const ShellWindow::CreateParams& params); |
| 42 const GURL& url, | |
| 43 const CreateParams& params); | |
| 44 | 43 |
| 45 // BaseWindow implementation. | 44 // BaseWindow implementation. |
| 46 virtual bool IsActive() const OVERRIDE; | 45 virtual bool IsActive() const OVERRIDE; |
| 47 virtual bool IsMaximized() const OVERRIDE; | 46 virtual bool IsMaximized() const OVERRIDE; |
| 48 virtual bool IsMinimized() const OVERRIDE; | 47 virtual bool IsMinimized() const OVERRIDE; |
| 49 virtual bool IsFullscreen() const OVERRIDE; | 48 virtual bool IsFullscreen() const OVERRIDE; |
| 50 virtual gfx::NativeWindow GetNativeWindow() OVERRIDE; | 49 virtual gfx::NativeWindow GetNativeWindow() OVERRIDE; |
| 51 virtual gfx::Rect GetRestoredBounds() const OVERRIDE; | 50 virtual gfx::Rect GetRestoredBounds() const OVERRIDE; |
| 52 virtual gfx::Rect GetBounds() const OVERRIDE; | 51 virtual gfx::Rect GetBounds() const OVERRIDE; |
| 53 virtual void Show() OVERRIDE; | 52 virtual void Show() OVERRIDE; |
| (...skipping 11 matching lines...) Expand all Loading... |
| 65 // Called when the window is about to be closed. | 64 // Called when the window is about to be closed. |
| 66 void WindowWillClose(); | 65 void WindowWillClose(); |
| 67 | 66 |
| 68 // Called when the window is focused. | 67 // Called when the window is focused. |
| 69 void WindowDidBecomeKey(); | 68 void WindowDidBecomeKey(); |
| 70 | 69 |
| 71 // Called when the window is defocused. | 70 // Called when the window is defocused. |
| 72 void WindowDidResignKey(); | 71 void WindowDidResignKey(); |
| 73 | 72 |
| 74 protected: | 73 protected: |
| 75 // ShellWindow implementation. | 74 // NativeShellWindow implementation. |
| 76 virtual void SetFullscreen(bool fullscreen) OVERRIDE; | 75 virtual void SetFullscreen(bool fullscreen) OVERRIDE; |
| 77 virtual bool IsFullscreenOrPending() const OVERRIDE; | 76 virtual bool IsFullscreenOrPending() const OVERRIDE; |
| 77 virtual void UpdateWindowTitle() OVERRIDE; |
| 78 virtual void UpdateDraggableRegions( |
| 79 const std::vector<extensions::DraggableRegion>& regions) OVERRIDE; |
| 78 | 80 |
| 79 private: | 81 private: |
| 80 virtual ~ShellWindowCocoa(); | 82 virtual ~ShellWindowCocoa(); |
| 81 | 83 |
| 82 // ShellWindow implementation. | 84 NSWindow* window() const; |
| 83 virtual void UpdateDraggableRegions( | |
| 84 const std::vector<extensions::DraggableRegion>& regions) OVERRIDE; | |
| 85 | 85 |
| 86 NSWindow* window() const; | 86 content::WebContents* web_contents() const { |
| 87 return shell_window_->web_contents(); |
| 88 } |
| 89 const extensions::Extension* extension() const { |
| 90 return shell_window_->extension(); |
| 91 } |
| 87 | 92 |
| 88 void InstallView(); | 93 void InstallView(); |
| 89 void UninstallView(); | 94 void UninstallView(); |
| 90 void InstallDraggableRegionViews(); | 95 void InstallDraggableRegionViews(); |
| 91 | 96 |
| 97 ShellWindow* shell_window_; |
| 98 |
| 92 bool has_frame_; | 99 bool has_frame_; |
| 93 | 100 |
| 94 bool is_fullscreen_; | 101 bool is_fullscreen_; |
| 95 NSRect restored_bounds_; | 102 NSRect restored_bounds_; |
| 96 | 103 |
| 97 scoped_nsobject<ShellWindowController> window_controller_; | 104 scoped_nsobject<ShellWindowController> window_controller_; |
| 98 NSInteger attention_request_id_; // identifier from requestUserAttention | 105 NSInteger attention_request_id_; // identifier from requestUserAttention |
| 99 | 106 |
| 100 std::vector<extensions::DraggableRegion> draggable_regions_; | 107 std::vector<extensions::DraggableRegion> draggable_regions_; |
| 101 | 108 |
| 102 DISALLOW_COPY_AND_ASSIGN(ShellWindowCocoa); | 109 DISALLOW_COPY_AND_ASSIGN(ShellWindowCocoa); |
| 103 }; | 110 }; |
| 104 | 111 |
| 105 #endif // CHROME_BROWSER_UI_COCOA_EXTENSIONS_SHELL_WINDOW_COCOA_H_ | 112 #endif // CHROME_BROWSER_UI_COCOA_EXTENSIONS_SHELL_WINDOW_COCOA_H_ |
| OLD | NEW |