| Index: ash/wm/gestures/tray_gesture_handler.cc
|
| diff --git a/ash/wm/gestures/tray_gesture_handler.cc b/ash/wm/gestures/tray_gesture_handler.cc
|
| deleted file mode 100644
|
| index ac7292906ffd30bf46a0e17e02f2637c37497d21..0000000000000000000000000000000000000000
|
| --- a/ash/wm/gestures/tray_gesture_handler.cc
|
| +++ /dev/null
|
| @@ -1,107 +0,0 @@
|
| -// Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include "ash/wm/gestures/tray_gesture_handler.h"
|
| -
|
| -#include "ash/shell.h"
|
| -#include "ash/system/tray/system_tray.h"
|
| -#include "ash/system/tray/system_tray_bubble.h"
|
| -#include "ui/aura/window.h"
|
| -#include "ui/compositor/layer.h"
|
| -#include "ui/events/event.h"
|
| -#include "ui/gfx/transform.h"
|
| -#include "ui/views/widget/widget.h"
|
| -
|
| -const int kMinBubbleHeight = 13;
|
| -
|
| -namespace ash {
|
| -
|
| -TrayGestureHandler::TrayGestureHandler()
|
| - : widget_(NULL),
|
| - gesture_drag_amount_(0) {
|
| - // TODO(oshima): Support multiple display case.
|
| - SystemTray* tray = Shell::GetInstance()->GetPrimarySystemTray();
|
| - tray->ShowDefaultView(BUBBLE_CREATE_NEW);
|
| - SystemTrayBubble* bubble = tray->GetSystemBubble();
|
| - if (!bubble)
|
| - return;
|
| - bubble->bubble_view()->set_gesture_dragging(true);
|
| - widget_ = bubble->bubble_view()->GetWidget();
|
| - widget_->AddObserver(this);
|
| -
|
| - gfx::Rect bounds = widget_->GetWindowBoundsInScreen();
|
| - int height_change = bounds.height() - kMinBubbleHeight;
|
| - bounds.set_height(kMinBubbleHeight);
|
| - bounds.set_y(bounds.y() + height_change);
|
| - widget_->SetBounds(bounds);
|
| -}
|
| -
|
| -TrayGestureHandler::~TrayGestureHandler() {
|
| - if (widget_)
|
| - widget_->RemoveObserver(this);
|
| -}
|
| -
|
| -bool TrayGestureHandler::UpdateGestureDrag(const ui::GestureEvent& event) {
|
| - CHECK_EQ(ui::ET_GESTURE_SCROLL_UPDATE, event.type());
|
| - if (!widget_)
|
| - return false;
|
| -
|
| - gesture_drag_amount_ += event.details().scroll_y();
|
| - if (gesture_drag_amount_ > 0 && gesture_drag_amount_ < kMinBubbleHeight) {
|
| - widget_->Close();
|
| - return false;
|
| - }
|
| -
|
| - gfx::Rect bounds = widget_->GetWindowBoundsInScreen();
|
| - int new_height = std::min(
|
| - kMinBubbleHeight + std::max(0, static_cast<int>(-gesture_drag_amount_)),
|
| - widget_->GetContentsView()->GetPreferredSize().height());
|
| - int height_change = bounds.height() - new_height;
|
| - bounds.set_height(new_height);
|
| - bounds.set_y(bounds.y() + height_change);
|
| - widget_->SetBounds(bounds);
|
| - return true;
|
| -}
|
| -
|
| -void TrayGestureHandler::CompleteGestureDrag(const ui::GestureEvent& event) {
|
| - if (!widget_)
|
| - return;
|
| -
|
| - widget_->RemoveObserver(this);
|
| -
|
| - // Close the widget if it hasn't been dragged enough.
|
| - bool should_close = false;
|
| - int height = widget_->GetWindowBoundsInScreen().height();
|
| - int preferred_height =
|
| - widget_->GetContentsView()->GetPreferredSize().height();
|
| - if (event.type() == ui::ET_GESTURE_SCROLL_END) {
|
| - const float kMinThresholdGestureDrag = 0.4f;
|
| - if (height < preferred_height * kMinThresholdGestureDrag)
|
| - should_close = true;
|
| - } else if (event.type() == ui::ET_SCROLL_FLING_START) {
|
| - const float kMinThresholdGestureDragExposeFling = 0.25f;
|
| - const float kMinThresholdGestureFling = 1000.f;
|
| - if (height < preferred_height * kMinThresholdGestureDragExposeFling &&
|
| - event.details().velocity_y() > -kMinThresholdGestureFling)
|
| - should_close = true;
|
| - } else {
|
| - NOTREACHED();
|
| - }
|
| -
|
| - if (should_close) {
|
| - widget_->Close();
|
| - } else {
|
| - SystemTrayBubble* bubble =
|
| - Shell::GetInstance()->GetPrimarySystemTray()->GetSystemBubble();
|
| - if (bubble)
|
| - bubble->bubble_view()->set_gesture_dragging(false);
|
| - }
|
| -}
|
| -
|
| -void TrayGestureHandler::OnWidgetDestroying(views::Widget* widget) {
|
| - CHECK_EQ(widget_, widget);
|
| - widget_ = NULL;
|
| -}
|
| -
|
| -} // namespace ash
|
|
|