Index: chrome/browser/ui/libgtk2ui/gtk2_status_icon.h |
diff --git a/chrome/browser/ui/libgtk2ui/gtk2_status_icon.h b/chrome/browser/ui/libgtk2ui/gtk2_status_icon.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..d25b487b62192425902d096d75106700b32ccb42 |
--- /dev/null |
+++ b/chrome/browser/ui/libgtk2ui/gtk2_status_icon.h |
@@ -0,0 +1,61 @@ |
+// Copyright 2014 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 CHROME_BROWSER_UI_LIBGTK2UI_GTK2_STATUS_ICON_H_ |
+#define CHROME_BROWSER_UI_LIBGTK2UI_GTK2_STATUS_ICON_H_ |
+ |
+#include "base/memory/scoped_ptr.h" |
+#include "base/strings/string16.h" |
+#include "chrome/browser/ui/libgtk2ui/gtk2_signal.h" |
+#include "ui/base/glib/glib_integers.h" |
+#include "ui/base/glib/glib_signal.h" |
+#include "ui/views/linux_ui/status_icon_linux.h" |
+ |
+typedef struct _GtkStatusIcon GtkStatusIcon; |
+ |
+namespace gfx { |
+class ImageSkia; |
+} |
+ |
+namespace ui { |
+class MenuModel; |
+} |
+ |
+namespace libgtk2ui { |
+class AppIndicatorIconMenu; |
+ |
+// Status icon implementation which uses the system tray X11 spec (via |
+// GtkStatusIcon). |
+class Gtk2StatusIcon : public views::StatusIconLinux { |
+ public: |
+ Gtk2StatusIcon(const gfx::ImageSkia& image, const base::string16& tool_tip); |
+ virtual ~Gtk2StatusIcon(); |
+ |
+ // Overridden from views::StatusIconLinux: |
+ virtual void SetImage(const gfx::ImageSkia& image) OVERRIDE; |
+ virtual void SetPressedImage(const gfx::ImageSkia& image) OVERRIDE; |
+ virtual void SetToolTip(const base::string16& tool_tip) OVERRIDE; |
+ virtual void UpdatePlatformContextMenu(ui::MenuModel* menu) OVERRIDE; |
+ virtual void RefreshPlatformContextMenu() OVERRIDE; |
+ |
+ private: |
+ CHROMEG_CALLBACK_0(Gtk2StatusIcon, void, OnClick, GtkStatusIcon*); |
+ |
+ CHROMEG_CALLBACK_2(Gtk2StatusIcon, |
+ void, |
+ OnContextMenuRequested, |
+ GtkStatusIcon*, |
+ guint, |
+ guint); |
+ |
+ GtkStatusIcon* gtk_status_icon_; |
+ |
+ scoped_ptr<AppIndicatorIconMenu> menu_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(Gtk2StatusIcon); |
+}; |
+ |
+} // namespace libgtk2ui |
+ |
+#endif // CHROME_BROWSER_UI_LIBGTK2UI_GTK2_STATUS_ICON_H_ |