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

Unified Diff: ash/system/tray/system_tray.h

Issue 2930123002: Tablet WM : Swiping on system tray bubble. (Closed)
Patch Set: Fixed comments. Created 3 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
« no previous file with comments | « no previous file | ash/system/tray/system_tray.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ash/system/tray/system_tray.h
diff --git a/ash/system/tray/system_tray.h b/ash/system/tray/system_tray.h
index fa16c53f74067aaee8e1eacaccff91add8d1d17d..aae541c4587252aeeda872e48e874f6319d9196b 100644
--- a/ash/system/tray/system_tray.h
+++ b/ash/system/tray/system_tray.h
@@ -47,6 +47,9 @@ enum BubbleCreationType {
class ASH_EXPORT SystemTray : public TrayBackgroundView,
public views::TrayBubbleView::Delegate {
public:
+ // The threshold of the velocity of the fling event.
+ static constexpr float kFlingVelocity = 100.0f;
+
explicit SystemTray(Shelf* shelf);
~SystemTray() override;
@@ -142,6 +145,11 @@ class ASH_EXPORT SystemTray : public TrayBackgroundView,
// Activates the system tray bubble.
void ActivateBubble();
+ // ui::EventHandler:
+ void OnGestureEvent(ui::GestureEvent* event) override;
+
+ gfx::Rect GetWorkAreaBoundsInScreen() const;
+
private:
friend class SystemTrayTestApi;
class ActivationObserver;
@@ -193,6 +201,37 @@ class ASH_EXPORT SystemTray : public TrayBackgroundView,
// Overridden from ActionableView.
bool PerformAction(const ui::Event& event) override;
+ // Gesture related functions:
+ bool ProcessGestureEvent(const ui::GestureEvent& event);
+ bool StartGestureDrag(const ui::GestureEvent& gesture);
+ void UpdateGestureDrag(const ui::GestureEvent& gesture);
+ void CompleteGestureDrag(const ui::GestureEvent& gesture);
+
+ // Update the bounds of the system tray bubble according to |location|. Note
+ // that |location| is in the local coordinate space of |this|.
+ void SetBubbleBounds(const gfx::Point& location);
+
+ // Return true if the system bubble should be shown (i.e., animated upward to
+ // be made fully visible) after a sequence of scroll events terminated by
+ // |sequence_end|. Otherwise return false, indicating that the
+ // partially-visible system bubble should be animated downward and made fully
+ // hidden.
+ bool ShouldShowSystemBubbleAfterScrollSequence(
+ const ui::GestureEvent& sequence_end);
+
+ // Shelf the system tray is in.
+ Shelf* const shelf_;
+
+ // The original bounds of the system tray bubble.
+ gfx::Rect system_tray_bubble_bounds_;
+
+ // Tracks the amount of the drag. Only valid if |is_in_drag_| is true.
+ float gesture_drag_amount_ = 0.f;
+
+ // True if the user is in the process of gesture-dragging to open the system
+ // tray bubble, false otherwise.
+ bool is_in_drag_ = false;
+
// The web notification tray view that appears adjacent to this view.
WebNotificationTray* web_notification_tray_ = nullptr;
« no previous file with comments | « no previous file | ash/system/tray/system_tray.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698