ab83b21fa6
The gfx::Image can use NSImage directly as underlying format, so we don't have to decode images ourselves on Mac, and we will also be able to make use of template images.
55 lines
1.2 KiB
C++
55 lines
1.2 KiB
C++
// Copyright (c) 2014 GitHub, Inc.
|
|
// 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"
|
|
|
|
#include "base/guid.h"
|
|
#include "base/strings/utf_string_conversions.h"
|
|
#include "chrome/browser/ui/libgtk2ui/app_indicator_icon.h"
|
|
#include "chrome/browser/ui/libgtk2ui/gtk2_status_icon.h"
|
|
|
|
namespace atom {
|
|
|
|
TrayIconGtk::TrayIconGtk() {
|
|
}
|
|
|
|
TrayIconGtk::~TrayIconGtk() {
|
|
}
|
|
|
|
void TrayIconGtk::SetImage(const gfx::Image& image) {
|
|
if (icon_) {
|
|
icon_->SetImage(image.AsImageSkia());
|
|
return;
|
|
}
|
|
|
|
base::string16 empty;
|
|
if (libgtk2ui::AppIndicatorIcon::CouldOpen())
|
|
icon_.reset(
|
|
new libgtk2ui::AppIndicatorIcon(base::GenerateGUID(), image, empty));
|
|
else
|
|
icon_.reset(new libgtk2ui::Gtk2StatusIcon(image, empty));
|
|
icon_->set_delegate(this);
|
|
}
|
|
|
|
void TrayIconGtk::SetToolTip(const std::string& tool_tip) {
|
|
icon_->SetToolTip(base::UTF8ToUTF16(tool_tip));
|
|
}
|
|
|
|
void TrayIconGtk::SetContextMenu(ui::SimpleMenuModel* menu_model) {
|
|
icon_->UpdatePlatformContextMenu(menu_model);
|
|
}
|
|
|
|
void TrayIconGtk::OnClick() {
|
|
}
|
|
|
|
bool TrayIconGtk::HasClickAction() {
|
|
return false;
|
|
}
|
|
|
|
// static
|
|
TrayIcon* TrayIcon::Create() {
|
|
return new TrayIconGtk;
|
|
}
|
|
|
|
} // namespace atom
|