1 // Copyright (c) 2013 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 #ifndef UI_MESSAGE_CENTER_COCOA_TRAY_CONTROLLER_H_ 6 #define UI_MESSAGE_CENTER_COCOA_TRAY_CONTROLLER_H_ 7 8 #import <AppKit/AppKit.h> 9 10 #include "base/basictypes.h" 11 #include "base/mac/scoped_nsobject.h" 12 #include "ui/message_center/message_center_export.h" 13 14 @class MCTrayViewController; 15 16 namespace message_center { 17 class MessageCenterTray; 18 } 19 20 // The window controller for the message center tray. This merely hosts the 21 // view from MCTrayViewController. 22 MESSAGE_CENTER_EXPORT 23 @interface MCTrayController : NSWindowController<NSWindowDelegate> { 24 @private 25 message_center::MessageCenterTray* tray_; // Weak, indirectly owns this. 26 27 // View controller that provides this window's content. 28 base::scoped_nsobject<MCTrayViewController> viewController_; 29 30 // An event monitor that listens for clicks outside the tray window to cause 31 // it to close. 32 id clickEventMonitor_; 33 } 34 35 @property(readonly, nonatomic) MCTrayViewController* viewController; 36 37 // Designated initializer. 38 - (id)initWithMessageCenterTray:(message_center::MessageCenterTray*)tray; 39 40 // Opens the message center tray to either the right or left of the given 41 // points, depending on if it will fit on screen. It will try opening to the 42 // right first, but if the window does not fit on screen, it will open to the 43 // left. 44 - (void)showTrayAtRightOf:(NSPoint)rightPoint atLeftOf:(NSPoint)leftPoint; 45 46 // Callback from MessageCenterTrayDelegate, used to update the tray content. 47 - (void)onMessageCenterTrayChanged; 48 49 @end 50 51 #endif // UI_MESSAGE_CENTER_COCOA_TRAY_CONTROLLER_H_ 52