1// Copyright (c) 2012 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef ASH_WM_WORKSPACE_WORKSPACE_EVENT_HANDLER_H_ 6#define ASH_WM_WORKSPACE_WORKSPACE_EVENT_HANDLER_H_ 7 8#include "ash/wm/toplevel_window_event_handler.h" 9#include "ash/wm/workspace/multi_window_resize_controller.h" 10 11namespace aura { 12class Window; 13} 14 15namespace ash { 16namespace internal { 17 18class WorkspaceEventHandlerTestHelper; 19 20class WorkspaceEventHandler : public ToplevelWindowEventHandler { 21 public: 22 explicit WorkspaceEventHandler(aura::Window* owner); 23 virtual ~WorkspaceEventHandler(); 24 25 // Overridden from ToplevelWindowEventHandler: 26 virtual void OnMouseEvent(ui::MouseEvent* event) OVERRIDE; 27 virtual void OnGestureEvent(ui::GestureEvent* event) OVERRIDE; 28 29 private: 30 friend class WorkspaceEventHandlerTestHelper; 31 32 // Determines if |event| corresponds to a double click on either the top or 33 // bottom vertical resize edge, and if so toggles the vertical height of the 34 // window between its restored state and the full available height of the 35 // workspace. 36 void HandleVerticalResizeDoubleClick(aura::Window* target, 37 ui::MouseEvent* event); 38 39 MultiWindowResizeController multi_window_resize_controller_; 40 41 // If non-NULL, set to true in the destructor. 42 bool* destroyed_; 43 44 DISALLOW_COPY_AND_ASSIGN(WorkspaceEventHandler); 45}; 46 47} // namespace internal 48} // namespace ash 49 50#endif // ASH_WM_WORKSPACE_WORKSPACE_EVENT_HANDLER_H_ 51