blob: c0797ddb8cf1542b69ab0a032590243e0ca0cc65 [file] [log] [blame]
// Copyright 2017 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.
#ifndef IOS_CHROME_BROWSER_UI_FULLSCREEN_FULLSCREEN_MODEL_OBSERVER_H_
#define IOS_CHROME_BROWSER_UI_FULLSCREEN_FULLSCREEN_MODEL_OBSERVER_H_
#include <CoreGraphics/CoreGraphics.h>
#include "base/macros.h"
class FullscreenModel;
// Interface for listening to FullscreenModel changes.
class FullscreenModelObserver {
public:
FullscreenModelObserver() = default;
virtual ~FullscreenModelObserver() = default;
// Invoked when |model|'s toolbar heights have been updated.
virtual void FullscreenModelToolbarHeightsUpdated(FullscreenModel* model) {}
// Invoked when |model|'s calculated progress() value is updated.
virtual void FullscreenModelProgressUpdated(FullscreenModel* model) {}
// Invoked when |model| is enabled or disabled.
virtual void FullscreenModelEnabledStateChanged(FullscreenModel* model) {}
// Invoked when a scroll event being tracked by |model| has started.
virtual void FullscreenModelScrollEventStarted(FullscreenModel* model) {}
// Invoked when a scroll event being tracked by |model| has ended.
virtual void FullscreenModelScrollEventEnded(FullscreenModel* model) {}
// Invoked when the model is reset.
virtual void FullscreenModelWasReset(FullscreenModel* model) {}
private:
DISALLOW_COPY_AND_ASSIGN(FullscreenModelObserver);
};
#endif // IOS_CHROME_BROWSER_UI_FULLSCREEN_FULLSCREEN_MODEL_OBSERVER_H_