blob: cee9874820f13380bd057ed393bbd560c8dc0b2e [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 MediaControlDivElement_h
#define MediaControlDivElement_h
#include "core/html/HTMLDivElement.h"
#include "modules/media_controls/elements/MediaControlElementBase.h"
namespace blink {
class MediaControlsImpl;
// MediaControlElementBase implementation based on a <div>. Used for panels, and
// floating UI.
class MODULES_EXPORT MediaControlDivElement : public HTMLDivElement,
public MediaControlElementBase {
USING_GARBAGE_COLLECTED_MIXIN(MediaControlDivElement);
public:
// Implements MediaControlElementBase.
void SetOverflowElementIsWanted(bool) final;
void MaybeRecordDisplayed() final;
// Get the size of the element in pixels or the default if we cannot get the
// size because the element has not been layed out yet.
WebSize GetSizeOrDefault() const override;
virtual void Trace(blink::Visitor*);
protected:
MediaControlDivElement(MediaControlsImpl&, MediaControlElementType);
private:
bool IsMediaControlElement() const final;
};
} // namespace blink
#endif // MediaControlDivElement_h