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

Side by Side Diff: chrome/browser/ui/cocoa/extensions/extension_action_view_controller_cocoa.mm

Issue 670463004: Make a platform-independent ToolbarActionViewController (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 2 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
OLDNEW
(Empty)
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
3 // found in the LICENSE file.
4
5 #import "chrome/browser/ui/cocoa/extensions/extension_action_view_controller_coc oa.h"
6
7 #import "chrome/browser/ui/cocoa/extensions/extension_popup_controller.h"
8 #import "chrome/browser/ui/cocoa/toolbar/toolbar_action_view_delegate_cocoa.h"
9 #include "extensions/common/extension.h"
10
11 ExtensionActionViewControllerCocoa::ExtensionActionViewControllerCocoa(
12 const extensions::Extension* extension,
13 Browser* browser,
14 ExtensionAction* extension_action)
15 : ExtensionActionViewController(extension, browser, extension_action) {
16 }
17
18 ExtensionActionViewControllerCocoa::~ExtensionActionViewControllerCocoa() {
19 }
20
21 gfx::NativeView ExtensionActionViewControllerCocoa::GetPopupNativeView() {
22 ExtensionPopupController* popup = GetPopup();
23 return popup != nil ? [popup view] : nullptr;
24 }
25
26 bool ExtensionActionViewControllerCocoa::IsMenuRunning() const {
27 // TODO(devlin): Also account for context menus.
28 return GetPopup() != nil;
29 }
30
31 void ExtensionActionViewControllerCocoa::RegisterCommand() {
32 // Commands are handled elsewhere for cocoa.
33 }
34
35 bool ExtensionActionViewControllerCocoa::IsShowingPopup() const {
36 return GetPopup() != nil;
37 }
38
39 void ExtensionActionViewControllerCocoa::CloseActivePopup() {
40 ExtensionPopupController* popup = [ExtensionPopupController popup];
41 if (popup)
42 [popup close];
43 }
44
45 void ExtensionActionViewControllerCocoa::ClosePopupImpl() {
46 ExtensionPopupController* popup = GetPopup();
47 DCHECK(popup);
48 [popup close];
49 }
50
51 bool ExtensionActionViewControllerCocoa::ShowPopupWithUrlImpl(
52 PopupShowAction show_action,
53 const GURL& popup_url,
54 bool grant_tab_permissions) {
55 NSPoint arrowPoint = GetDelegateCocoa()->GetPopupPoint();
56 [ExtensionPopupController showURL:popup_url
57 inBrowser:browser()
58 anchoredAt:arrowPoint
59 arrowLocation:info_bubble::kTopRight
60 devMode:NO];
61 return true;
62 }
63
64 ToolbarActionViewDelegateCocoa*
65 ExtensionActionViewControllerCocoa::GetDelegateCocoa() {
66 return static_cast<ToolbarActionViewDelegateCocoa*>(delegate());
67 }
68
69 ExtensionPopupController* ExtensionActionViewControllerCocoa::GetPopup() const {
70 ExtensionPopupController* popup = [ExtensionPopupController popup];
71 return popup && [popup extensionId] == extension()->id() ? popup : nil;
72 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698