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.
5 #ifndef UI_MESSAGE_CENTER_COCOA_STATUS_ITEM_VIEW_H_
6 #define UI_MESSAGE_CENTER_COCOA_STATUS_ITEM_VIEW_H_
8 #import <AppKit/AppKit.h>
10 #include "base/mac/scoped_block.h"
11 #include "base/mac/scoped_nsobject.h"
12 #include "ui/message_center/message_center_export.h"
14 namespace message_center
{
16 // Callback block for when the status item is clicked.
17 typedef void(^StatusItemClickedCallback
)();
19 } // namespace message_center
21 // This view is meant to be used with a NSStatusItem. It will fire a callback
22 // when it is clicked. It draws a small icon and the unread count, if greater
23 // than zero, to the icon's right. It can also paint the highlight background
24 // pattern outside of a mouse event sequence, for when an attached window is
27 @interface MCStatusItemView
: NSView
{
30 base::scoped_nsobject
<NSStatusItem
> statusItem_
;
32 // Callback issued when the status item is clicked.
33 base::mac::ScopedBlock
<message_center::StatusItemClickedCallback
> callback_
;
35 // The unread count number to be drawn next to the icon.
38 // Whether or not we are to display the quiet mode version of the status icon.
41 // Whether or not to force the highlight pattern to be drawn.
44 // Whether or not the view is currently handling mouse events and should
45 // draw the highlight pattern.
46 BOOL inMouseEventSequence_
;
49 @
property(copy
, nonatomic
) message_center::StatusItemClickedCallback callback
;
50 @
property(nonatomic
) BOOL highlight
;
52 // Designated initializer. Creates a new NSStatusItem in the system menubar.
55 // Sets the unread count and quiet mode status of the icon.
56 - (void)setUnreadCount
:(size_t)unreadCount withQuietMode
:(BOOL
)quietMode
;
58 // Removes the status item from the menubar. Must be called to break the
59 // retain cycle between self and the NSStatusItem view.
64 @interface
MCStatusItemView (TestingAPI
)
66 - (size_t)unreadCount
;
70 #endif // UI_MESSAGE_CENTER_COCOA_STATUS_ITEM_VIEW_H_