1 // Copyright (c) 2011 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 CHROME_BROWSER_UI_GTK_STATUS_ICONS_STATUS_ICON_GTK_H_
6 #define CHROME_BROWSER_UI_GTK_STATUS_ICONS_STATUS_ICON_GTK_H_
10 #include "base/compiler_specific.h"
11 #include "chrome/browser/status_icons/desktop_notification_balloon.h"
12 #include "chrome/browser/status_icons/status_icon.h"
13 #include "ui/base/gtk/gtk_signal.h"
17 class StatusIconGtk
: public StatusIcon
{
20 virtual ~StatusIconGtk();
22 // Overridden from StatusIcon:
23 virtual void SetImage(const gfx::ImageSkia
& image
) OVERRIDE
;
24 virtual void SetPressedImage(const gfx::ImageSkia
& image
) OVERRIDE
;
25 virtual void SetToolTip(const base::string16
& tool_tip
) OVERRIDE
;
26 virtual void DisplayBalloon(const gfx::ImageSkia
& icon
,
27 const base::string16
& title
,
28 const base::string16
& contents
) OVERRIDE
;
30 // Exposed for testing.
31 CHROMEGTK_CALLBACK_0(StatusIconGtk
, void, OnClick
);
34 // Overridden from StatusIcon.
35 virtual void UpdatePlatformContextMenu(
36 StatusIconMenuModel
* menu
) OVERRIDE
;
39 // Callback invoked when user right-clicks on the status icon.
40 CHROMEGTK_CALLBACK_2(StatusIconGtk
, void, OnPopupMenu
, guint
, guint
);
42 // The currently-displayed icon for the window.
45 // The context menu for this icon (if any).
46 scoped_ptr
<MenuGtk
> menu_
;
48 // Notification balloon.
49 DesktopNotificationBalloon notification_
;
51 DISALLOW_COPY_AND_ASSIGN(StatusIconGtk
);
54 #endif // CHROME_BROWSER_UI_GTK_STATUS_ICONS_STATUS_ICON_GTK_H_