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

Side by Side Diff: chrome/browser/ui/cocoa/extensions/native_app_window_cocoa.h

Issue 11889004: Fix a bug where the HTML content in a v2 app window wouldn't be initially focused. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: disable test on gtk Created 7 years, 11 months 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 | Annotate | Revision Log
OLDNEW
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_NATIVE_APP_WINDOW_COCOA_H_ 5 #ifndef CHROME_BROWSER_UI_COCOA_EXTENSIONS_NATIVE_APP_WINDOW_COCOA_H_
6 #define CHROME_BROWSER_UI_COCOA_EXTENSIONS_NATIVE_APP_WINDOW_COCOA_H_ 6 #define CHROME_BROWSER_UI_COCOA_EXTENSIONS_NATIVE_APP_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 "base/memory/scoped_ptr.h" 12 #include "base/memory/scoped_ptr.h"
13 #import "chrome/browser/ui/cocoa/browser_command_executor.h" 13 #import "chrome/browser/ui/cocoa/browser_command_executor.h"
14 #include "chrome/browser/ui/extensions/native_app_window.h" 14 #include "chrome/browser/ui/extensions/native_app_window.h"
15 #include "chrome/browser/ui/extensions/shell_window.h" 15 #include "chrome/browser/ui/extensions/shell_window.h"
16 #include "chrome/common/extensions/draggable_region.h" 16 #include "chrome/common/extensions/draggable_region.h"
17 #include "content/public/browser/notification_observer.h"
18 #include "content/public/browser/notification_registrar.h"
17 #include "ui/gfx/rect.h" 19 #include "ui/gfx/rect.h"
18 20
19 class ExtensionKeybindingRegistryCocoa; 21 class ExtensionKeybindingRegistryCocoa;
20 class Profile; 22 class Profile;
21 class NativeAppWindowCocoa; 23 class NativeAppWindowCocoa;
22 @class ShellNSWindow; 24 @class ShellNSWindow;
23 class SkRegion; 25 class SkRegion;
24 26
25 // A window controller for a minimal window to host a web app view. Passes 27 // A window controller for a minimal window to host a web app view. Passes
26 // Objective-C notifications to the C++ bridge. 28 // Objective-C notifications to the C++ bridge.
27 @interface NativeAppWindowController : NSWindowController 29 @interface NativeAppWindowController : NSWindowController
28 <NSWindowDelegate, 30 <NSWindowDelegate,
29 BrowserCommandExecutor> { 31 BrowserCommandExecutor> {
30 @private 32 @private
31 NativeAppWindowCocoa* appWindow_; // Weak; owns self. 33 NativeAppWindowCocoa* appWindow_; // Weak; owns self.
32 } 34 }
33 35
34 @property(assign, nonatomic) NativeAppWindowCocoa* appWindow; 36 @property(assign, nonatomic) NativeAppWindowCocoa* appWindow;
35 37
36 // Consults the Command Registry to see if this |event| needs to be handled as 38 // Consults the Command Registry to see if this |event| needs to be handled as
37 // an extension command and returns YES if so (NO otherwise). 39 // an extension command and returns YES if so (NO otherwise).
38 - (BOOL)handledByExtensionCommand:(NSEvent*)event; 40 - (BOOL)handledByExtensionCommand:(NSEvent*)event;
39 41
40 @end 42 @end
41 43
42 // Cocoa bridge to AppWindow. 44 // Cocoa bridge to AppWindow.
43 class NativeAppWindowCocoa : public NativeAppWindow { 45 class NativeAppWindowCocoa : public NativeAppWindow,
46 public content::NotificationObserver {
44 public: 47 public:
45 NativeAppWindowCocoa(ShellWindow* shell_window, 48 NativeAppWindowCocoa(ShellWindow* shell_window,
46 const ShellWindow::CreateParams& params); 49 const ShellWindow::CreateParams& params);
47 50
48 // BaseWindow implementation. 51 // BaseWindow implementation.
49 virtual bool IsActive() const OVERRIDE; 52 virtual bool IsActive() const OVERRIDE;
50 virtual bool IsMaximized() const OVERRIDE; 53 virtual bool IsMaximized() const OVERRIDE;
51 virtual bool IsMinimized() const OVERRIDE; 54 virtual bool IsMinimized() const OVERRIDE;
52 virtual bool IsFullscreen() const OVERRIDE; 55 virtual bool IsFullscreen() const OVERRIDE;
53 virtual gfx::NativeWindow GetNativeWindow() OVERRIDE; 56 virtual gfx::NativeWindow GetNativeWindow() OVERRIDE;
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
126 129
127 void InstallView(); 130 void InstallView();
128 void UninstallView(); 131 void UninstallView();
129 void InstallDraggableRegionViews(); 132 void InstallDraggableRegionViews();
130 void UpdateDraggableRegionsForSystemDrag( 133 void UpdateDraggableRegionsForSystemDrag(
131 const std::vector<extensions::DraggableRegion>& regions, 134 const std::vector<extensions::DraggableRegion>& regions,
132 const extensions::DraggableRegion* draggable_area); 135 const extensions::DraggableRegion* draggable_area);
133 void UpdateDraggableRegionsForCustomDrag( 136 void UpdateDraggableRegionsForCustomDrag(
134 const std::vector<extensions::DraggableRegion>& regions); 137 const std::vector<extensions::DraggableRegion>& regions);
135 138
139 // Overridden from content::NotificationObserver:
140 virtual void Observe(int type,
141 const content::NotificationSource& source,
142 const content::NotificationDetails& details) OVERRIDE;
143
136 ShellWindow* shell_window_; // weak - ShellWindow owns NativeAppWindow. 144 ShellWindow* shell_window_; // weak - ShellWindow owns NativeAppWindow.
137 145
138 bool has_frame_; 146 bool has_frame_;
139 147
140 bool is_fullscreen_; 148 bool is_fullscreen_;
141 NSRect restored_bounds_; 149 NSRect restored_bounds_;
142 150
143 gfx::Size min_size_; 151 gfx::Size min_size_;
144 gfx::Size max_size_; 152 gfx::Size max_size_;
145 153
(...skipping 13 matching lines...) Expand all
159 scoped_ptr<SkRegion> draggable_region_; // used in custom drag. 167 scoped_ptr<SkRegion> draggable_region_; // used in custom drag.
160 168
161 // Mouse location since the last mouse event, in screen coordinates. This is 169 // Mouse location since the last mouse event, in screen coordinates. This is
162 // used in custom drag to compute the window movement. 170 // used in custom drag to compute the window movement.
163 NSPoint last_mouse_location_; 171 NSPoint last_mouse_location_;
164 172
165 // The Extension Command Registry used to determine which keyboard events to 173 // The Extension Command Registry used to determine which keyboard events to
166 // handle. 174 // handle.
167 scoped_ptr<ExtensionKeybindingRegistryCocoa> extension_keybinding_registry_; 175 scoped_ptr<ExtensionKeybindingRegistryCocoa> extension_keybinding_registry_;
168 176
177 content::NotificationRegistrar registrar_;
178
169 DISALLOW_COPY_AND_ASSIGN(NativeAppWindowCocoa); 179 DISALLOW_COPY_AND_ASSIGN(NativeAppWindowCocoa);
170 }; 180 };
171 181
172 #endif // CHROME_BROWSER_UI_COCOA_EXTENSIONS_NATIVE_APP_WINDOW_COCOA_H_ 182 #endif // CHROME_BROWSER_UI_COCOA_EXTENSIONS_NATIVE_APP_WINDOW_COCOA_H_
OLDNEW
« no previous file with comments | « chrome/browser/extensions/platform_app_browsertest.cc ('k') | chrome/browser/ui/cocoa/extensions/native_app_window_cocoa.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698