1dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen// Copyright (c) 2011 The Chromium Authors. All rights reserved. 2c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Use of this source code is governed by a BSD-style license that can be 3c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// found in the LICENSE file. 4c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen#ifndef CHROME_BROWSER_UI_COCOA_STATUS_ICONS_STATUS_ICON_MAC_H_ 621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen#define CHROME_BROWSER_UI_COCOA_STATUS_ICONS_STATUS_ICON_MAC_H_ 73345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick#pragma once 8c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 9c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#import <Cocoa/Cocoa.h> 10c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 11ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "base/memory/scoped_nsobject.h" 12c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "base/string16.h" 13c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "chrome/browser/status_icons/status_icon.h" 14c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 15c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochclass SkBitmap; 16c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch@class NSStatusItem; 17c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch@class StatusItemController; 18c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 19c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochclass StatusIconMac : public StatusIcon { 20c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch public: 21c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch StatusIconMac(); 22c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch virtual ~StatusIconMac(); 23c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 24c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // Overridden from StatusIcon 25c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch virtual void SetImage(const SkBitmap& image); 26c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch virtual void SetPressedImage(const SkBitmap& image); 27c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch virtual void SetToolTip(const string16& tool_tip); 28dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen virtual void DisplayBalloon(const string16& title, const string16& contents); 29c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 303345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick protected: 313345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick // Overridden from StatusIcon. 3272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen virtual void UpdatePlatformContextMenu(ui::MenuModel* menu); 333345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick 34c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch private: 35c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // Getter for item_ that allows lazy initialization. 36c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch NSStatusItem* item(); 37c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch scoped_nsobject<NSStatusItem> item_; 38c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 39c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch scoped_nsobject<StatusItemController> controller_; 40c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 41c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch DISALLOW_COPY_AND_ASSIGN(StatusIconMac); 42c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch}; 43c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 44c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 4521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen#endif // CHROME_BROWSER_UI_COCOA_STATUS_ICONS_STATUS_ICON_MAC_H_ 46