chromium/ios/chrome/browser/contextual_panel/ui/panel_content_view_controller.h

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

#ifndef IOS_CHROME_BROWSER_CONTEXTUAL_PANEL_UI_PANEL_CONTENT_VIEW_CONTROLLER_H_
#define IOS_CHROME_BROWSER_CONTEXTUAL_PANEL_UI_PANEL_CONTENT_VIEW_CONTROLLER_H_

#import <UIKit/UIKit.h>

#import "ios/chrome/browser/contextual_panel/ui/panel_content_consumer.h"

@protocol ContextualSheetCommands;
@protocol ContextualSheetDisplayController;
@class PanelBlockData;
@protocol TraitCollectionChangeDelegate;

@protocol PanelContentViewControllerMetricsDelegate

// Returns the name of the current entrypoint info block.
- (NSString*)entrypointInfoBlockName;

// Returns whether the entrypoint was a loud entrypoint. This includes both
// the large entrypoint chip and the IPH.
- (BOOL)wasLoudEntrypoint;

@end

// A view controller to display the contents of the Contextual Panel.
@interface PanelContentViewController : UIViewController <PanelContentConsumer>

// The handler for ContextualSheetCommands.
@property(nonatomic, weak) id<ContextualSheetCommands>
    contextualSheetCommandHandler;

@property(nonatomic, weak) id<ContextualSheetDisplayController>
    sheetDisplayController;

@property(nonatomic, weak) id<PanelContentViewControllerMetricsDelegate>
    metricsDelegate;

// Delegate to inform about trait collection changes in this view controller.
@property(nonatomic, weak) id<TraitCollectionChangeDelegate>
    traitCollectionDelegate;

// Updates the current block data.
- (void)setPanelBlocks:(NSArray<PanelBlockData*>*)panelBlocks;

@end

#endif  // IOS_CHROME_BROWSER_CONTEXTUAL_PANEL_UI_PANEL_CONTENT_VIEW_CONTROLLER_H_