chromium/components/global_media_controls/public/views/media_item_ui_detailed_view.h

// Copyright 2023 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef COMPONENTS_GLOBAL_MEDIA_CONTROLS_PUBLIC_VIEWS_MEDIA_ITEM_UI_DETAILED_VIEW_H_
#define COMPONENTS_GLOBAL_MEDIA_CONTROLS_PUBLIC_VIEWS_MEDIA_ITEM_UI_DETAILED_VIEW_H_

#include "base/component_export.h"
#include "base/memory/raw_ptr.h"
#include "base/memory/weak_ptr.h"
#include "components/global_media_controls/public/views/media_item_ui_device_selector.h"
#include "components/global_media_controls/public/views/media_item_ui_footer.h"
#include "components/media_message_center/media_notification_view.h"
#include "components/media_message_center/notification_theme.h"
#include "services/media_session/public/mojom/media_session.mojom.h"

#if BUILDFLAG(IS_CHROMEOS_ASH)
#include "components/global_media_controls/public/views/chapter_item_view.h"
#endif

namespace views {
class BoxLayoutView;
class Button;
class ImageView;
class Label;
}  // namespace views

namespace media_message_center {
class MediaNotificationContainer;
class MediaNotificationItem;
}  // namespace media_message_center
namespace global_media_controls {

class MediaActionButton;
class MediaProgressView;
enum class PlaybackStateChangeForDragging;

namespace {
class MediaLabelButton;
}  // namespace

// Indicates this media notification view will be displayed on which page. These
// values are persisted to logs. Entries should not be renumbered and numeric
// values should never be reused. Keep them in sync with
// tools/metrics/histograms/enums.xml.
enum class MediaDisplayPage {};

// CrOS implementation of media notification view.
class COMPONENT_EXPORT(GLOBAL_MEDIA_CONTROLS) MediaItemUIDetailedView
    : public media_message_center::MediaNotificationView {};

}  // namespace global_media_controls

#endif  // COMPONENTS_GLOBAL_MEDIA_CONTROLS_PUBLIC_VIEWS_MEDIA_ITEM_UI_DETAILED_VIEW_H_