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

Side by Side Diff: chrome/browser/ui/cocoa/base_bubble_controller.h

Issue 1328873002: Limit overlap between BubbleManager and BaseBubbleController. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@bm-add-update.gitbr
Patch Set: Rename method to closeBubble Created 5 years, 3 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
« no previous file with comments | « no previous file | chrome/browser/ui/cocoa/base_bubble_controller.mm » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 #import <Cocoa/Cocoa.h> 5 #import <Cocoa/Cocoa.h>
6 6
7 #include "base/memory/scoped_ptr.h" 7 #include "base/memory/scoped_ptr.h"
8 #include "components/bubble/bubble_reference.h"
8 9
9 @class InfoBubbleView; 10 @class InfoBubbleView;
10 class TabStripModelObserverBridge; 11 class TabStripModelObserverBridge;
11 12
12 // Base class for bubble controllers. Manages a xib that contains an 13 // Base class for bubble controllers. Manages a xib that contains an
13 // InfoBubbleWindow which contains an InfoBubbleView. Contains code to close 14 // InfoBubbleWindow which contains an InfoBubbleView. Contains code to close
14 // the bubble window on clicks outside of the window, and the like. 15 // the bubble window on clicks outside of the window, and the like.
15 // To use this class: 16 // To use this class:
16 // 1. Create a new xib that contains a window. Change the window's class to 17 // 1. Create a new xib that contains a window. Change the window's class to
17 // InfoBubbleWindow. Give it a child view that autosizes to the window's full 18 // InfoBubbleWindow. Give it a child view that autosizes to the window's full
(...skipping 20 matching lines...) Expand all
38 // outside the window. This is needed because the window shares first 39 // outside the window. This is needed because the window shares first
39 // responder with its parent. 40 // responder with its parent.
40 id eventTap_; 41 id eventTap_;
41 // A notification observer that gets triggered when any window resigns key. 42 // A notification observer that gets triggered when any window resigns key.
42 id resignationObserver_; 43 id resignationObserver_;
43 // The controlled window should be the key window when it's opened. True by 44 // The controlled window should be the key window when it's opened. True by
44 // default. 45 // default.
45 BOOL shouldOpenAsKeyWindow_; 46 BOOL shouldOpenAsKeyWindow_;
46 // The bubble window should close if it (or its parent) resigns key status. 47 // The bubble window should close if it (or its parent) resigns key status.
47 BOOL shouldCloseOnResignKey_; 48 BOOL shouldCloseOnResignKey_;
49 BubbleReference bubbleReference_;
48 } 50 }
49 51
50 @property(nonatomic, assign) NSWindow* parentWindow; 52 @property(nonatomic, assign) NSWindow* parentWindow;
51 // The point in base screen coordinates at which the bubble should open and the 53 // The point in base screen coordinates at which the bubble should open and the
52 // arrow tip points. 54 // arrow tip points.
53 @property(nonatomic, assign) NSPoint anchorPoint; 55 @property(nonatomic, assign) NSPoint anchorPoint;
54 @property(nonatomic, readonly) InfoBubbleView* bubble; 56 @property(nonatomic, readonly) InfoBubbleView* bubble;
55 @property(nonatomic, assign) BOOL shouldOpenAsKeyWindow; 57 @property(nonatomic, assign) BOOL shouldOpenAsKeyWindow;
56 // Controls if the bubble auto-closes if the user clicks outside the bubble. 58 // Controls if the bubble auto-closes if the user clicks outside the bubble.
57 @property(nonatomic, assign) BOOL shouldCloseOnResignKey; 59 @property(nonatomic, assign) BOOL shouldCloseOnResignKey;
60 // A reference for bubbles that are managed by the BubbleManager.
61 @property(nonatomic, assign) BubbleReference bubbleReference;
58 62
59 // Creates a bubble. |nibPath| is just the basename, e.g. @"FirstRunBubble". 63 // Creates a bubble. |nibPath| is just the basename, e.g. @"FirstRunBubble".
60 // |anchoredAt| is in screen space. You need to call -showWindow: to make the 64 // |anchoredAt| is in screen space. You need to call -showWindow: to make the
61 // bubble visible. It will autorelease itself when the user dismisses the 65 // bubble visible. It will autorelease itself when the user dismisses the
62 // bubble. 66 // bubble.
63 // This is the designated initializer. 67 // This is the designated initializer.
64 - (id)initWithWindowNibPath:(NSString*)nibPath 68 - (id)initWithWindowNibPath:(NSString*)nibPath
65 parentWindow:(NSWindow*)parentWindow 69 parentWindow:(NSWindow*)parentWindow
66 anchoredAt:(NSPoint)anchoredAt; 70 anchoredAt:(NSPoint)anchoredAt;
67 71
(...skipping 26 matching lines...) Expand all
94 98
95 @end 99 @end
96 100
97 // Methods for use by subclasses. 101 // Methods for use by subclasses.
98 @interface BaseBubbleController (Protected) 102 @interface BaseBubbleController (Protected)
99 // Registers event taps *after* the window is shown so that the bubble is 103 // Registers event taps *after* the window is shown so that the bubble is
100 // dismissed when it resigns key. This only needs to be called if 104 // dismissed when it resigns key. This only needs to be called if
101 // |-showWindow:| is overriden and does not call super. Noop on OSes <10.7. 105 // |-showWindow:| is overriden and does not call super. Noop on OSes <10.7.
102 - (void)registerKeyStateEventTap; 106 - (void)registerKeyStateEventTap;
103 @end 107 @end
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/ui/cocoa/base_bubble_controller.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698