Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(942)

Unified Diff: chrome/browser/chromeos/status/power_menu_button.cc

Issue 7273073: Animated Rotation (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Created 9 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/chromeos/status/power_menu_button.cc
diff --git a/chrome/browser/chromeos/status/power_menu_button.cc b/chrome/browser/chromeos/status/power_menu_button.cc
index 04ec6b3f8c67ceceb6e15a647be54bdc7b0085ae..4d22db9cd62de949b6c64809c8fe3b5263f387bf 100644
--- a/chrome/browser/chromeos/status/power_menu_button.cc
+++ b/chrome/browser/chromeos/status/power_menu_button.cc
@@ -4,15 +4,19 @@
#include "chrome/browser/chromeos/status/power_menu_button.h"
+#include "base/debug/trace_event.h"
#include "base/string_number_conversions.h"
#include "base/time.h"
#include "base/utf_string_conversions.h"
#include "chrome/browser/chromeos/cros/cros_library.h"
#include "grit/generated_resources.h"
#include "grit/theme_resources.h"
+#include "ui/base/animation/slide_animation.h"
#include "ui/base/l10n/l10n_util.h"
#include "ui/base/resource/resource_bundle.h"
#include "ui/gfx/canvas.h"
+#include "ui/gfx/transform.h"
+#include "ui/gfx/compositor/compositor.h"
#include "views/controls/menu/menu_item_view.h"
#include "views/controls/menu/submenu_view.h"
#include "views/widget/widget.h"
@@ -26,7 +30,7 @@ enum {
POWER_NO_BATTERY,
};
-} // namespace
+} // namespace
sadrul 2011/06/29 20:35:10 two spaces between } and //
namespace chromeos {
@@ -126,26 +130,51 @@ void PowerMenuButton::OnLocaleChanged() {
// PowerMenuButton, views::ViewMenuDelegate implementation:
void PowerMenuButton::RunMenu(views::View* source, const gfx::Point& pt) {
- UpdateMenu();
+//UpdateMenu();
+//
+//// TODO(rhashimoto): Remove this workaround when WebUI provides a
+//// top-level widget on the ChromeOS login screen that is a window.
+//// The current BackgroundView class for the ChromeOS login screen
+//// creates a owning Widget that has a native GtkWindow but is not a
+//// Window. This makes it impossible to get the NativeWindow via
+//// the views API. This workaround casts the top-level NativeWidget
+//// to a NativeWindow that we can pass to MenuItemView::RunMenuAt().
+//gfx::NativeWindow window = GTK_WINDOW(source->GetWidget()->GetNativeView());
+//
+//gfx::Point screen_loc;
+//views::View::ConvertPointToScreen(source, &screen_loc);
+//gfx::Rect bounds(screen_loc, source->size());
+//menu_->RunMenuAt(
+// window,
+// this,
+// bounds,
+// views::MenuItemView::TOPRIGHT,
+// true);
+
+ static int i = 0;
+
+ sensors::ScreenOrientationChange change;
+ switch (i) {
+ case 0: change.upward = sensors::ScreenOrientationChange::LEFT; break;
+ case 1: change.upward = sensors::ScreenOrientationChange::BOTTOM; break;
+ case 2: change.upward = sensors::ScreenOrientationChange::RIGHT; break;
+ case 3: change.upward = sensors::ScreenOrientationChange::TOP; break;
+ case 4: change.upward = sensors::ScreenOrientationChange::BOTTOM; break;
+ case 5: change.upward = sensors::ScreenOrientationChange::TOP; break;
+ case 6: change.upward = sensors::ScreenOrientationChange::LEFT; break;
+ case 7: change.upward = sensors::ScreenOrientationChange::RIGHT; break;
+ case 8: change.upward = sensors::ScreenOrientationChange::LEFT; break;
+ case 9: change.upward = sensors::ScreenOrientationChange::TOP; break;
+ case 10: change.upward = sensors::ScreenOrientationChange::RIGHT; break;
+ case 11: change.upward = sensors::ScreenOrientationChange::BOTTOM; break;
+ case 12: change.upward = sensors::ScreenOrientationChange::LEFT; break;
+ case 13: change.upward = sensors::ScreenOrientationChange::TOP; break;
+ }
+ i = (i + 1) % 14;
+ std::string data(reinterpret_cast<const char*>(&change), sizeof(change));
- // TODO(rhashimoto): Remove this workaround when WebUI provides a
- // top-level widget on the ChromeOS login screen that is a window.
- // The current BackgroundView class for the ChromeOS login screen
- // creates a owning Widget that has a native GtkWindow but is not a
- // Window. This makes it impossible to get the NativeWindow via
- // the views API. This workaround casts the top-level NativeWidget
- // to a NativeWindow that we can pass to MenuItemView::RunMenuAt().
- gfx::NativeWindow window = GTK_WINDOW(source->GetWidget()->GetNativeView());
-
- gfx::Point screen_loc;
- views::View::ConvertPointToScreen(source, &screen_loc);
- gfx::Rect bounds(screen_loc, source->size());
- menu_->RunMenuAt(
- window,
- this,
- bounds,
- views::MenuItemView::TOPRIGHT,
- true);
+ sensors::Provider::GetInstance()->FireSensorChanged(
+ sensors::kScreenOrientationChannel, data);
sadrul 2011/06/29 20:35:10 Since we are upstreaming this change, I think it'd
}
////////////////////////////////////////////////////////////////////////////////

Powered by Google App Engine
This is Rietveld 408576698