chromium/ash/wm/overview/event_handler_delegate.h

// Copyright 2023 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef ASH_WM_OVERVIEW_EVENT_HANDLER_DELEGATE_H_
#define ASH_WM_OVERVIEW_EVENT_HANDLER_DELEGATE_H_

namespace ui {
class GestureEvent;
class MouseEvent;
}  // namespace ui

namespace ash {

class OverviewItemBase;

// Defines an interface for the deletage to handle events forwarded from
// `OverviewItemView`.
class EventHandlerDelegate {
 public:
  // Handles the mouse `event` from the `event_source_item`.
  virtual void HandleMouseEvent(const ui::MouseEvent& event,
                                OverviewItemBase* event_source_item) = 0;

  // Handles the gesture `event` from the `event_source_item`.
  virtual void HandleGestureEvent(ui::GestureEvent* event,
                                  OverviewItemBase* event_source_item) = 0;

 protected:
  virtual ~EventHandlerDelegate() = default;
};

}  // namespace ash

#endif  // ASH_WM_OVERVIEW_EVENT_HANDLER_DELEGATE_H_