// Copyright 2015 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. package org.chromium.chrome.browser.compositor.layouts; /** * Exposes the current overview mode state as well as a way to listen to overview mode state * changes. */ public interface OverviewModeBehavior { /** * An observer that is notified when the overview mode state changes. */ public interface OverviewModeObserver { /** * Called when overview mode starts showing. * @param showToolbar Whether or not to show the normal toolbar when animating into overview * mode. */ void onOverviewModeStartedShowing(boolean showToolbar); /** * Called when overview mode finishes showing. */ void onOverviewModeFinishedShowing(); /** * Called when overview mode starts hiding. * @param showToolbar Whether or not to show the normal toolbar when animating out of * overview mode. * @param delayAnimation Whether or not to delay any related overview animations until after * overview mode is finished hiding. */ void onOverviewModeStartedHiding(boolean showToolbar, boolean delayAnimation); /** * Called when overview mode finishes hiding. */ void onOverviewModeFinishedHiding(); } /** * @return Whether or not the overview {@link Layout} is visible. */ boolean overviewVisible(); /** * @param listener Registers {@code listener} for overview mode status changes. */ void addOverviewModeObserver(OverviewModeObserver listener); /** * @param listener Unregisters {@code listener} for overview mode status changes. */ void removeOverviewModeObserver(OverviewModeObserver listener); }