#ifndef CONTENT_PUBLIC_BROWSER_OVERLAY_WINDOW_H_
#define CONTENT_PUBLIC_BROWSER_OVERLAY_WINDOW_H_
#include <memory>
#include "ui/gfx/native_widget_types.h"
namespace gfx {
class Rect;
class Size;
}
namespace viz {
class SurfaceId;
}
namespace content {
class VideoPictureInPictureWindowController;
class VideoOverlayWindow {
public:
enum PlaybackState {
kPlaying = 0,
kPaused,
kEndOfVideo,
};
VideoOverlayWindow() = default;
VideoOverlayWindow(const VideoOverlayWindow&) = delete;
VideoOverlayWindow& operator=(const VideoOverlayWindow&) = delete;
static std::unique_ptr<VideoOverlayWindow> Create(
VideoPictureInPictureWindowController* controller);
virtual ~VideoOverlayWindow() = default;
virtual bool IsActive() const = 0;
virtual void Close() = 0;
virtual void ShowInactive() = 0;
virtual void Hide() = 0;
virtual bool IsVisible() const = 0;
virtual gfx::Rect GetBounds() = 0;
virtual void UpdateNaturalSize(const gfx::Size& natural_size) = 0;
virtual void SetPlaybackState(PlaybackState playback_state) = 0;
virtual void SetPlayPauseButtonVisibility(bool is_visible) = 0;
virtual void SetSkipAdButtonVisibility(bool is_visible) = 0;
virtual void SetNextTrackButtonVisibility(bool is_visible) = 0;
virtual void SetPreviousTrackButtonVisibility(bool is_visible) = 0;
virtual void SetMicrophoneMuted(bool muted) = 0;
virtual void SetCameraState(bool turned_on) = 0;
virtual void SetToggleMicrophoneButtonVisibility(bool is_visible) = 0;
virtual void SetToggleCameraButtonVisibility(bool is_visible) = 0;
virtual void SetHangUpButtonVisibility(bool is_visible) = 0;
virtual void SetNextSlideButtonVisibility(bool is_visible) = 0;
virtual void SetPreviousSlideButtonVisibility(bool is_visible) = 0;
virtual void SetSurfaceId(const viz::SurfaceId& surface_id) = 0;
};
}
#endif