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

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

Issue 952793002: Mac: Make ui/base/cocoa WindowAnimator Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: git add Created 5 years, 10 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
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 #import "base/mac/scoped_nsobject.h"
7 #include "base/memory/scoped_ptr.h" 8 #include "base/memory/scoped_ptr.h"
8 #import "chrome/browser/ui/cocoa/chrome_event_processing_window.h" 9 #import "chrome/browser/ui/cocoa/chrome_event_processing_window.h"
9 10
10 class AppNotificationBridge; 11 class AppNotificationBridge;
12 @class WindowAnimationController;
11 13
12 namespace info_bubble { 14 namespace info_bubble {
13 15
14 enum AnimationMask { 16 enum AnimationMask {
15 kAnimateNone = 0, 17 kAnimateNone = 0,
16 kAnimateOrderIn = 1 << 1, 18 kAnimateOrderIn = 1 << 1,
17 kAnimateOrderOut = 1 << 2, 19 kAnimateOrderOut = 1 << 2,
18 }; 20 };
19 typedef NSUInteger AllowedAnimations; 21 typedef NSUInteger AllowedAnimations;
20 22
21 } // namespace info_bubble 23 } // namespace info_bubble
22 24
23 // A rounded window with an arrow used for example when you click on the STAR 25 // A rounded window with an arrow used for example when you click on the STAR
24 // button or that pops up within our first-run UI. 26 // button or that pops up within our first-run UI.
25 @interface InfoBubbleWindow : ChromeEventProcessingWindow { 27 @interface InfoBubbleWindow : ChromeEventProcessingWindow {
26 @private 28 @private
27 // Is self in the process of closing.
28 BOOL closing_;
29
30 // Specifies if window order in and order out animations are allowed. By 29 // Specifies if window order in and order out animations are allowed. By
31 // default both types of animations are allowed. 30 // default both types of animations are allowed.
32 info_bubble::AllowedAnimations allowedAnimations_; 31 info_bubble::AllowedAnimations allowedAnimations_;
33 32
34 // If NO the window will never become key. 33 // If NO the window will never become key.
35 // Default YES. 34 // Default YES.
36 BOOL canBecomeKeyWindow_; 35 BOOL canBecomeKeyWindow_;
37 36
38 // If NO the window will not share key state with its parent. Defaults to YES. 37 // If NO the window will not share key state with its parent. Defaults to YES.
39 // Can be set both by external callers, but is also changed internally, in 38 // Can be set both by external callers, but is also changed internally, in
40 // response to resignKeyWindow and becomeKeyWindow events. 39 // response to resignKeyWindow and becomeKeyWindow events.
41 BOOL allowShareParentKeyState_; 40 BOOL allowShareParentKeyState_;
42 41
43 // Bridge to proxy Chrome notifications to the window. 42 // Bridge to proxy Chrome notifications to the window.
44 scoped_ptr<AppNotificationBridge> notificationBridge_; 43 scoped_ptr<AppNotificationBridge> notificationBridge_;
44
45 // Controller for closing the window (note: creates a reference cycle during
46 // the close animation).
47 base::scoped_nsobject<WindowAnimationController> animation_controller_;
45 } 48 }
46 49
47 @property(nonatomic) info_bubble::AllowedAnimations allowedAnimations; 50 @property(nonatomic) info_bubble::AllowedAnimations allowedAnimations;
48 @property(nonatomic) BOOL canBecomeKeyWindow; 51 @property(nonatomic) BOOL canBecomeKeyWindow;
49 @property(nonatomic) BOOL allowShareParentKeyState; 52 @property(nonatomic) BOOL allowShareParentKeyState;
50 53
54 // Start the animation to hide the window, then close it.
55 - (void)animateClose;
56
51 // Returns YES if the window is in the process of closing. 57 // Returns YES if the window is in the process of closing.
52 // Can't use "windowWillClose" notification because that will be sent 58 // Can't use "windowWillClose" notification because that will be sent
53 // after the closing animation has completed. 59 // after the closing animation has completed.
54 - (BOOL)isClosing; 60 - (BOOL)isClosing;
55 61
56 @end 62 @end
OLDNEW
« no previous file with comments | « chrome/browser/ui/cocoa/base_bubble_controller.mm ('k') | chrome/browser/ui/cocoa/info_bubble_window.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698