chromium/ash/wm/splitview/split_view_observer.h

// Copyright 2019 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_SPLITVIEW_SPLIT_VIEW_OBSERVER_H_
#define ASH_WM_SPLITVIEW_SPLIT_VIEW_OBSERVER_H_

#include "ash/ash_export.h"
#include "ash/wm/splitview/split_view_controller.h"

namespace ash {

class ASH_EXPORT SplitViewObserver {
 public:
  // Called when split view state changed from |previous_state| to |state|.
  virtual void OnSplitViewStateChanged(
      SplitViewController::State previous_state,
      SplitViewController::State state) {}

  // Called when split view divider's position has changed.
  virtual void OnSplitViewDividerPositionChanged() {}

  // Called when a snapped window in split view finished resizing.
  virtual void OnSplitViewWindowResized() {}

  // Called when the user double taps the split view divider to swap the
  // windows in split view.
  virtual void OnSplitViewWindowSwapped() {}

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

}  // namespace ash

#endif  // ASH_WM_SPLITVIEW_SPLIT_VIEW_OBSERVER_H_