#include "chrome/browser/ui/views/media_router/cast_dialog_view.h"
#include <optional>
#include "base/containers/contains.h"
#include "base/functional/bind.h"
#include "base/location.h"
#include "base/notreached.h"
#include "base/observer_list.h"
#include "base/strings/utf_string_conversions.h"
#include "base/time/time.h"
#include "build/build_config.h"
#include "chrome/browser/media/router/discovery/access_code/access_code_cast_feature.h"
#include "chrome/browser/media/router/media_router_feature.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/media_router/cast_dialog_controller.h"
#include "chrome/browser/ui/media_router/cast_dialog_model.h"
#include "chrome/browser/ui/media_router/media_cast_mode.h"
#include "chrome/browser/ui/media_router/media_route_starter.h"
#include "chrome/browser/ui/media_router/ui_media_sink.h"
#include "chrome/browser/ui/ui_features.h"
#include "chrome/browser/ui/views/chrome_layout_provider.h"
#include "chrome/browser/ui/views/frame/browser_view.h"
#include "chrome/browser/ui/views/frame/top_container_view.h"
#include "chrome/browser/ui/views/media_router/cast_dialog_access_code_cast_button.h"
#include "chrome/browser/ui/views/media_router/cast_dialog_no_sinks_view.h"
#include "chrome/browser/ui/views/media_router/cast_dialog_sink_view.h"
#include "chrome/browser/ui/webui/access_code_cast/access_code_cast_dialog.h"
#include "chrome/grit/generated_resources.h"
#include "components/access_code_cast/common/access_code_cast_metrics.h"
#include "components/media_router/browser/media_router_metrics.h"
#include "components/media_router/common/media_sink.h"
#include "components/media_router/common/mojom/media_route_provider_id.mojom-shared.h"
#include "content/public/browser/browser_task_traits.h"
#include "content/public/browser/browser_thread.h"
#include "ui/base/l10n/l10n_util.h"
#include "ui/base/metadata/metadata_impl_macros.h"
#include "ui/base/mojom/dialog_button.mojom.h"
#include "ui/gfx/geometry/rect.h"
#include "ui/gfx/native_widget_types.h"
#include "ui/gfx/vector_icon_types.h"
#include "ui/views/bubble/bubble_border.h"
#include "ui/views/controls/button/label_button.h"
#include "ui/views/controls/scroll_view.h"
#include "ui/views/layout/box_layout.h"
#include "ui/views/layout/fill_layout.h"
#include "ui/views/view.h"
namespace media_router {
CastDialogView::CastDialogView(
views::View* anchor_view,
views::BubbleBorder::Arrow anchor_position,
CastDialogController* controller,
Profile* profile,
const base::Time& start_time,
MediaRouterDialogActivationLocation activation_location)
: … { … }
CastDialogView::~CastDialogView() { … }
std::u16string CastDialogView::GetWindowTitle() const { … }
void CastDialogView::OnModelUpdated(const CastDialogModel& model) { … }
void CastDialogView::OnControllerDestroying() { … }
bool CastDialogView::IsCommandIdChecked(int command_id) const { … }
bool CastDialogView::IsCommandIdEnabled(int command_id) const { … }
void CastDialogView::ExecuteCommand(int command_id, int event_flags) { … }
void CastDialogView::AddObserver(Observer* observer) { … }
void CastDialogView::RemoveObserver(Observer* observer) { … }
void CastDialogView::KeepShownForTesting() { … }
void CastDialogView::Init() { … }
void CastDialogView::WindowClosing() { … }
void CastDialogView::ShowAccessCodeCastDialog() { … }
void CastDialogView::MaybeShowAccessCodeCastButton() { … }
void CastDialogView::ShowNoSinksView() { … }
void CastDialogView::ShowPermissionRejectedView() { … }
void CastDialogView::ShowScrollView() { … }
void CastDialogView::ResetViews() { … }
void CastDialogView::RestoreSinkListState() { … }
void CastDialogView::PopulateScrollView(const std::vector<UIMediaSink>& sinks) { … }
void CastDialogView::InitializeSourcesButton() { … }
void CastDialogView::ShowSourcesMenu() { … }
void CastDialogView::SelectSource(SourceType source) { … }
void CastDialogView::SinkPressed(size_t index) { … }
void CastDialogView::IssuePressed(size_t index) { … }
void CastDialogView::StopPressed(size_t index) { … }
void CastDialogView::FreezePressed(size_t index) { … }
void CastDialogView::MaybeSizeToContents() { … }
std::optional<MediaCastMode> CastDialogView::GetCastModeToUse(
const UIMediaSink& sink) const { … }
void CastDialogView::DisableUnsupportedSinks() { … }
void CastDialogView::RecordSinkCountWithDelay() { … }
void CastDialogView::RecordSinkCount() { … }
bool CastDialogView::IsAccessCodeCastingEnabled() const { … }
BEGIN_METADATA(…)
}