Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / ui / views / status_icons / status_icon_win.cc
index 9dd5997..a99e44c 100644 (file)
@@ -5,20 +5,23 @@
 #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) {
@@ -58,9 +61,12 @@ void StatusIconWin::HandleClickEvent(const gfx::Point& cursor_pos,
 
   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() {
@@ -144,6 +150,10 @@ void StatusIconWin::DisplayBalloon(const gfx::ImageSkia& icon,
     LOG(WARNING) << "Unable to create status tray balloon.";
 }
 
+void StatusIconWin::ForceVisible() {
+  tray_->UpdateIconVisibilityInBackground(this);
+}
+
 ////////////////////////////////////////////////////////////////////////////////
 // StatusIconWin, private:
 
@@ -167,51 +177,3 @@ void StatusIconWin::InitIconData(NOTIFYICONDATA* icon_data) {
   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";
-}
-