#include "chrome/browser/ui/views/status_icons/status_icon_win.h"
#include "base/strings/string_number_conversions.h"
-#include "base/win/metro.h"
#include "base/win/windows_version.h"
+#include "chrome/browser/ui/views/status_icons/status_tray_win.h"
#include "third_party/skia/include/core/SkBitmap.h"
#include "ui/gfx/icon_util.h"
#include "ui/gfx/point.h"
-#include "ui/views/controls/menu/menu_item_view.h"
+#include "ui/gfx/rect.h"
#include "ui/views/controls/menu/menu_runner.h"
-#include "win8/util/win8_util.h"
////////////////////////////////////////////////////////////////////////////////
// StatusIconWin, public:
-StatusIconWin::StatusIconWin(UINT id, HWND window, UINT message)
- : icon_id_(id),
+StatusIconWin::StatusIconWin(StatusTrayWin* tray,
+ UINT id,
+ HWND window,
+ UINT message)
+ : tray_(tray),
+ icon_id_(id),
window_(window),
message_id_(message),
menu_model_(NULL) {
menu_runner_.reset(new views::MenuRunner(menu_model_));
- ignore_result(menu_runner_->RunMenuAt(NULL, NULL,
- gfx::Rect(cursor_pos, gfx::Size()), views::MenuItemView::TOPLEFT,
- ui::MENU_SOURCE_MOUSE, views::MenuRunner::HAS_MNEMONICS));
+ ignore_result(menu_runner_->RunMenuAt(NULL,
+ NULL,
+ gfx::Rect(cursor_pos, gfx::Size()),
+ views::MENU_ANCHOR_TOPLEFT,
+ ui::MENU_SOURCE_MOUSE,
+ views::MenuRunner::HAS_MNEMONICS));
}
void StatusIconWin::HandleBalloonClickEvent() {
LOG(WARNING) << "Unable to create status tray balloon.";
}
+void StatusIconWin::ForceVisible() {
+ tray_->UpdateIconVisibilityInBackground(this);
+}
+
////////////////////////////////////////////////////////////////////////////////
// StatusIconWin, private:
icon_data->hWnd = window_;
icon_data->uID = icon_id_;
}
-
-////////////////////////////////////////////////////////////////////////////////
-// StatusIconMetro
-
-StatusIconMetro::StatusIconMetro(UINT id)
- : id_(id) {
- DCHECK(win8::IsSingleWindowMetroMode());
-}
-
-StatusIconMetro::~StatusIconMetro() {
-}
-
-void StatusIconMetro::SetImage(const gfx::ImageSkia& image) {
- DVLOG(1) << __FUNCTION__;
-}
-
-void StatusIconMetro::SetPressedImage(const gfx::ImageSkia& image) {
- DVLOG(1) << __FUNCTION__;
-}
-
-void StatusIconMetro::SetToolTip(const base::string16& tool_tip) {
- DVLOG(1) << __FUNCTION__;
- tool_tip_ = tool_tip;
-}
-
-void StatusIconMetro::DisplayBalloon(const gfx::ImageSkia& icon,
- const base::string16& title,
- const base::string16& contents) {
- DVLOG(1) << __FUNCTION__;
-
- HMODULE metro_module = base::win::GetMetroModule();
- DCHECK(metro_module);
-
- if (metro_module) {
- base::win::MetroNotification notification =
- reinterpret_cast<base::win::MetroNotification>(
- ::GetProcAddress(metro_module, "DisplayNotification"));
- DCHECK(notification);
- notification("", "", title.c_str(), contents.c_str(), L"",
- base::IntToString(id_).c_str(), NULL, NULL);
- }
-}
-
-void StatusIconMetro::UpdatePlatformContextMenu(StatusIconMenuModel* menu) {
- DVLOG(1) << __FUNCTION__
- << " This functionality is not supported in Windows 8 metro";
-}
-