chromium/chrome/browser/ui/views/media_router/cast_dialog_sink_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 CHROME_BROWSER_UI_VIEWS_MEDIA_ROUTER_CAST_DIALOG_SINK_VIEW_H_
#define CHROME_BROWSER_UI_VIEWS_MEDIA_ROUTER_CAST_DIALOG_SINK_VIEW_H_

#include "base/memory/raw_ptr.h"
#include "chrome/browser/ui/media_router/ui_media_sink.h"
#include "chrome/browser/ui/views/media_router/cast_dialog_sink_button.h"
#include "ui/base/metadata/metadata_header_macros.h"
#include "ui/views/controls/button/button.h"
#include "ui/views/controls/button/md_text_button.h"
#include "ui/views/controls/image_view.h"
#include "ui/views/controls/label.h"
#include "ui/views/controls/styled_label.h"
#include "ui/views/view.h"

class Profile;

namespace media_router {

// CastDialogSinkView is a view for the cast dialog that contains buttons for
// interacting with a cast sink.
//
// If the sink is not connected, the view contains CastDialogSinkButton, which
// calls `sink_pressed_callback` when pressed.
//
// If the sink is connected (actively casting), then the view contains a label
// which consists of an icon, device friendly name, and status text that mimics
// the look of the label in a CastDialogSinkButton. Additionally, the view
// contains buttons which trigger actions on the sink. The stop_button_ triggers
// `stop_pressed_callback` when pressed, and the freeze_button_ triggers
// `freeze_pressed_callback` when pressed.
class CastDialogSinkView : public views::View {};

}  // namespace media_router

#endif  // CHROME_BROWSER_UI_VIEWS_MEDIA_ROUTER_CAST_DIALOG_SINK_VIEW_H_