// Copyright (c) 2013 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef UI_MESSAGE_CENTER_COCOA_TRAY_CONTROLLER_H_ #define UI_MESSAGE_CENTER_COCOA_TRAY_CONTROLLER_H_ #import <AppKit/AppKit.h> #include "base/basictypes.h" #include "base/mac/scoped_nsobject.h" #include "ui/message_center/message_center_export.h" @class MCTrayViewController; namespace message_center { class MessageCenterTray; } // The window controller for the message center tray. This merely hosts the // view from MCTrayViewController. MESSAGE_CENTER_EXPORT @interface MCTrayController : NSWindowController<NSWindowDelegate> { @private message_center::MessageCenterTray* tray_; // Weak, indirectly owns this. // View controller that provides this window's content. base::scoped_nsobject<MCTrayViewController> viewController_; // An event monitor that listens for clicks outside the tray window to cause // it to close. id clickEventMonitor_; } @property(readonly, nonatomic) MCTrayViewController* viewController; // Designated initializer. - (id)initWithMessageCenterTray:(message_center::MessageCenterTray*)tray; // Opens the message center tray to either the right or left of the given // points, depending on if it will fit on screen. It will try opening to the // right first, but if the window does not fit on screen, it will open to the // left. - (void)showTrayAtRightOf:(NSPoint)rightPoint atLeftOf:(NSPoint)leftPoint; // Callback from MessageCenterTrayDelegate, used to update the tray content. - (void)onMessageCenterTrayChanged; @end #endif // UI_MESSAGE_CENTER_COCOA_TRAY_CONTROLLER_H_