From 80fb79daac95a89d29b6a991fbd288a2a40d0bac Mon Sep 17 00:00:00 2001 From: Cheng Zhao Date: Fri, 30 May 2014 10:31:27 +0800 Subject: [PATCH] Add dummy implementations for TrayIcon. --- atom.gyp | 8 ++++++ atom/browser/ui/tray_icon.cc | 19 +++++++++++++ atom/browser/ui/tray_icon.h | 45 ++++++++++++++++++++++++++++++ atom/browser/ui/tray_icon_cocoa.h | 29 +++++++++++++++++++ atom/browser/ui/tray_icon_cocoa.mm | 24 ++++++++++++++++ atom/browser/ui/tray_icon_gtk.cc | 24 ++++++++++++++++ atom/browser/ui/tray_icon_gtk.h | 29 +++++++++++++++++++ atom/browser/ui/tray_icon_win.cc | 24 ++++++++++++++++ atom/browser/ui/tray_icon_win.h | 29 +++++++++++++++++++ 9 files changed, 231 insertions(+) create mode 100644 atom/browser/ui/tray_icon.cc create mode 100644 atom/browser/ui/tray_icon.h create mode 100644 atom/browser/ui/tray_icon_cocoa.h create mode 100644 atom/browser/ui/tray_icon_cocoa.mm create mode 100644 atom/browser/ui/tray_icon_gtk.cc create mode 100644 atom/browser/ui/tray_icon_gtk.h create mode 100644 atom/browser/ui/tray_icon_win.cc create mode 100644 atom/browser/ui/tray_icon_win.h diff --git a/atom.gyp b/atom.gyp index 3c95bf0904a2..426d9bf05431 100644 --- a/atom.gyp +++ b/atom.gyp @@ -131,6 +131,14 @@ 'atom/browser/ui/message_box_gtk.cc', 'atom/browser/ui/message_box_mac.mm', 'atom/browser/ui/message_box_win.cc', + 'atom/browser/ui/tray_icon.cc', + 'atom/browser/ui/tray_icon.h', + 'atom/browser/ui/tray_icon_gtk.cc', + 'atom/browser/ui/tray_icon_gtk.h', + 'atom/browser/ui/tray_icon_cocoa.h', + 'atom/browser/ui/tray_icon_cocoa.mm', + 'atom/browser/ui/tray_icon_win.cc', + 'atom/browser/ui/tray_icon_win.h', 'atom/browser/ui/win/menu_2.cc', 'atom/browser/ui/win/menu_2.h', 'atom/browser/ui/win/native_menu_win.cc', diff --git a/atom/browser/ui/tray_icon.cc b/atom/browser/ui/tray_icon.cc new file mode 100644 index 000000000000..5b707756d9dc --- /dev/null +++ b/atom/browser/ui/tray_icon.cc @@ -0,0 +1,19 @@ +// Copyright (c) 2014 GitHub, Inc. All rights reserved. +// Use of this source code is governed by the MIT license that can be +// found in the LICENSE file. + +#include "atom/browser/ui/tray_icon.h" + +namespace atom { + +TrayIcon::TrayIcon() : model_(NULL) { +} + +TrayIcon::~TrayIcon() { +} + +void TrayIcon::SetContextMenu(ui::SimpleMenuModel* menu_model) { + model_ = menu_model; +} + +} // namespace atom diff --git a/atom/browser/ui/tray_icon.h b/atom/browser/ui/tray_icon.h new file mode 100644 index 000000000000..69cdba2ab5ad --- /dev/null +++ b/atom/browser/ui/tray_icon.h @@ -0,0 +1,45 @@ +// Copyright (c) 2014 GitHub, Inc. All rights reserved. +// Use of this source code is governed by the MIT license that can be +// found in the LICENSE file. + +#ifndef ATOM_BROWSER_UI_TRAY_ICON_H_ +#define ATOM_BROWSER_UI_TRAY_ICON_H_ + +#include + +#include "ui/base/models/simple_menu_model.h" + +namespace atom { + +class TrayIcon { + public: + static TrayIcon* Create(); + + // Sets the image associated with this status icon. + virtual void SetImage(const gfx::ImageSkia& image) = 0; + + // Sets the image associated with this status icon when pressed. + virtual void SetPressedImage(const gfx::ImageSkia& image) = 0; + + // Sets the hover text for this status icon. This is also used as the label + // for the menu item which is created as a replacement for the status icon + // click action on platforms that do not support custom click actions for the + // status icon (e.g. Ubuntu Unity). + virtual void SetToolTip(const std::string& tool_tip) = 0; + + // Set the context menu for this icon. + void SetContextMenu(ui::SimpleMenuModel* menu_model); + + protected: + TrayIcon(); + virtual ~TrayIcon(); + + private: + ui::SimpleMenuModel* model_; // Weak reference. + + DISALLOW_COPY_AND_ASSIGN(TrayIcon); +}; + +} // namespace atom + +#endif // ATOM_BROWSER_UI_TRAY_ICON_H_ diff --git a/atom/browser/ui/tray_icon_cocoa.h b/atom/browser/ui/tray_icon_cocoa.h new file mode 100644 index 000000000000..73da462351c9 --- /dev/null +++ b/atom/browser/ui/tray_icon_cocoa.h @@ -0,0 +1,29 @@ +// Copyright (c) 2014 GitHub, Inc. All rights reserved. +// Use of this source code is governed by the MIT license that can be +// found in the LICENSE file. + +#ifndef ATOM_BROWSER_UI_TRAY_ICON_COCOA_H_ +#define ATOM_BROWSER_UI_TRAY_ICON_COCOA_H_ + +#include + +#include "atom/browser/ui/tray_icon.h" + +namespace atom { + +class TrayIconCocoa : public TrayIcon { + public: + virtual void SetImage(const gfx::ImageSkia& image) OVERRIDE; + virtual void SetPressedImage(const gfx::ImageSkia& image) OVERRIDE; + virtual void SetToolTip(const std::string& tool_tip) OVERRIDE; + + private: + TrayIconCocoa(); + virtual ~TrayIconCocoa(); + + DISALLOW_COPY_AND_ASSIGN(TrayIconCocoa); +}; + +} // namespace atom + +#endif // ATOM_BROWSER_UI_TRAY_ICON_COCOA_H_ diff --git a/atom/browser/ui/tray_icon_cocoa.mm b/atom/browser/ui/tray_icon_cocoa.mm new file mode 100644 index 000000000000..ff3aa469bfb8 --- /dev/null +++ b/atom/browser/ui/tray_icon_cocoa.mm @@ -0,0 +1,24 @@ +// Copyright (c) 2014 GitHub, Inc. All rights reserved. +// Use of this source code is governed by the MIT license that can be +// found in the LICENSE file. + +#include "atom/browser/ui/tray_icon_cocoa.h" + +namespace atom { + +TrayIconCocoa::TrayIconCocoa() { +} + +TrayIconCocoa::~TrayIconCocoa() { +} + +void TrayIconCocoa::SetImage(const gfx::ImageSkia& image) { +} + +void TrayIconCocoa::SetPressedImage(const gfx::ImageSkia& image) { +} + +void TrayIconCocoa::SetToolTip(const std::string& tool_tip) { +} + +} // namespace atom diff --git a/atom/browser/ui/tray_icon_gtk.cc b/atom/browser/ui/tray_icon_gtk.cc new file mode 100644 index 000000000000..1a61b2f462a1 --- /dev/null +++ b/atom/browser/ui/tray_icon_gtk.cc @@ -0,0 +1,24 @@ +// Copyright (c) 2014 GitHub, Inc. All rights reserved. +// Use of this source code is governed by the MIT license that can be +// found in the LICENSE file. + +#include "atom/browser/ui/tray_icon_gtk.h" + +namespace atom { + +TrayIconGtk::TrayIconGtk() { +} + +TrayIconGtk::~TrayIconGtk() { +} + +void TrayIconGtk::SetImage(const gfx::ImageSkia& image) { +} + +void TrayIconGtk::SetPressedImage(const gfx::ImageSkia& image) { +} + +void TrayIconGtk::SetToolTip(const std::string& tool_tip) { +} + +} // namespace atom diff --git a/atom/browser/ui/tray_icon_gtk.h b/atom/browser/ui/tray_icon_gtk.h new file mode 100644 index 000000000000..b4845ad78107 --- /dev/null +++ b/atom/browser/ui/tray_icon_gtk.h @@ -0,0 +1,29 @@ +// Copyright (c) 2014 GitHub, Inc. All rights reserved. +// Use of this source code is governed by the MIT license that can be +// found in the LICENSE file. + +#ifndef ATOM_BROWSER_UI_TRAY_ICON_GTK_H_ +#define ATOM_BROWSER_UI_TRAY_ICON_GTK_H_ + +#include + +#include "atom/browser/ui/tray_icon.h" + +namespace atom { + +class TrayIconGtk : public TrayIcon { + public: + virtual void SetImage(const gfx::ImageSkia& image) OVERRIDE; + virtual void SetPressedImage(const gfx::ImageSkia& image) OVERRIDE; + virtual void SetToolTip(const std::string& tool_tip) OVERRIDE; + + private: + TrayIconGtk(); + virtual ~TrayIconGtk(); + + DISALLOW_COPY_AND_ASSIGN(TrayIconGtk); +}; + +} // namespace atom + +#endif // ATOM_BROWSER_UI_TRAY_ICON_GTK_H_ diff --git a/atom/browser/ui/tray_icon_win.cc b/atom/browser/ui/tray_icon_win.cc new file mode 100644 index 000000000000..21bf2f6ad292 --- /dev/null +++ b/atom/browser/ui/tray_icon_win.cc @@ -0,0 +1,24 @@ +// Copyright (c) 2014 GitHub, Inc. All rights reserved. +// Use of this source code is governed by the MIT license that can be +// found in the LICENSE file. + +#include "atom/browser/ui/tray_icon_win.h" + +namespace atom { + +TrayIconWin::TrayIconWin() { +} + +TrayIconWin::~TrayIconWin() { +} + +void TrayIconWin::SetImage(const gfx::ImageSkia& image) { +} + +void TrayIconWin::SetPressedImage(const gfx::ImageSkia& image) { +} + +void TrayIconWin::SetToolTip(const std::string& tool_tip) { +} + +} // namespace atom diff --git a/atom/browser/ui/tray_icon_win.h b/atom/browser/ui/tray_icon_win.h new file mode 100644 index 000000000000..4724e49b4341 --- /dev/null +++ b/atom/browser/ui/tray_icon_win.h @@ -0,0 +1,29 @@ +// Copyright (c) 2014 GitHub, Inc. All rights reserved. +// Use of this source code is governed by the MIT license that can be +// found in the LICENSE file. + +#ifndef ATOM_BROWSER_UI_TRAY_ICON_WIN_H_ +#define ATOM_BROWSER_UI_TRAY_ICON_WIN_H_ + +#include + +#include "atom/browser/ui/tray_icon.h" + +namespace atom { + +class TrayIconWin : public TrayIcon { + public: + virtual void SetImage(const gfx::ImageSkia& image) OVERRIDE; + virtual void SetPressedImage(const gfx::ImageSkia& image) OVERRIDE; + virtual void SetToolTip(const std::string& tool_tip) OVERRIDE; + + private: + TrayIconWin(); + virtual ~TrayIconWin(); + + DISALLOW_COPY_AND_ASSIGN(TrayIconWin); +}; + +} // namespace atom + +#endif // ATOM_BROWSER_UI_TRAY_ICON_WIN_H_