Files
UnrealEngine/Engine/Source/Developer/MessageLog/Public/IMessageLogListing.h
2025-05-18 13:04:45 +08:00

136 lines
4.0 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "Logging/TokenizedMessage.h"
#include "Logging/IMessageLog.h"
class IMessageLogListing;
/** Type definition for shared pointers to instances of IMessageLogListing. */
typedef TSharedPtr<class IMessageLogListing> IMessageLogListingPtr;
/** Type definition for shared references to instances of IMessageLogListing. */
typedef TSharedRef<class IMessageLogListing> IMessageLogListingRef;
/**
* A message log listing, such as the Compiler Log, or the Map Check Log.
*/
class IMessageLogListing : public IMessageLog
{
public:
/** Clears messages (if paged, in the current page) */
virtual void ClearMessages() = 0;
/**
* Gets a list of the selected messages for the specific log listing
*
* @returns an array of selected messages.
*/
virtual const TArray< TSharedRef<class FTokenizedMessage> >& GetSelectedMessages() const = 0;
/**
* Sets multiple selected messages
*
* @param InSelectedMessages The messages to select.
*/
virtual void SelectMessages( const TArray< TSharedRef<class FTokenizedMessage> >& InSelectedMessages ) = 0;
/**
* Gets a list of the filtered messages for the specific log listing
*
* @returns an array of filtered messages.
*/
virtual const TArray< TSharedRef<class FTokenizedMessage> >& GetFilteredMessages() const = 0;
/**
* Set the message selection state
*
* @param Message The message to select/deselect.
* @param bSelected Whether to select or deselect the message.
*/
virtual void SelectMessage(const TSharedRef<class FTokenizedMessage>& Message, bool bSelected) = 0;
/**
* Get the message selection state
*
* @param Message The message to check.
* @returns true if the message is selected.
*/
virtual bool IsMessageSelected(const TSharedRef<class FTokenizedMessage>& Message) const = 0;
/** Clears the message selection */
virtual void ClearSelectedMessages() = 0;
/** Inverts the message selection */
virtual void InvertSelectedMessages() = 0;
/**
* Gets all the unfiltered selected messages as a single piece of text
*
* @returns the selected messages as a string
*/
virtual FString GetSelectedMessagesAsString() const = 0;
/**
* Gets all the unfiltered messages as a single piece of text
*
* @returns all the messages as a string
*/
virtual FString GetAllMessagesAsString() const = 0;
/**
* Gets the message log listing unique name
*
* @returns the name of the listing.
*/
virtual const FName& GetName() const = 0;
/**
* Sets the message log listing label
*
* @param InLogLabel The label to display for this listing.
*/
virtual void SetLabel( const FText& InLogLabel ) = 0;
/**
* Gets the message log listing label
*
* @returns the label for this listing.
*/
virtual const FText& GetLabel() const = 0;
/**
* Gets the set of message filters used when displaying messages
*
* @returns the array of message filters.
*/
virtual const TArray< TSharedRef< class FMessageFilter> >& GetMessageFilters() const = 0;
/**
* Performs an operation depending on the token (execute hyperlink etc.)
*
* @param Token The token to execute.
*/
virtual void ExecuteToken( const TSharedRef<class IMessageToken>& Token ) const = 0;
/** Broadcasts when a token is clicked/executed */
DECLARE_EVENT_OneParam( IMessageLogListing, IMessageTokenClickedEvent, const TSharedRef<class IMessageToken>& );
virtual IMessageTokenClickedEvent& OnMessageTokenClicked() = 0;
/** Broadcasts whenever we are informed of a change in the IMessageLogListing */
DECLARE_EVENT( IMessageLogListing, FChangedEvent )
virtual FChangedEvent& OnDataChanged() = 0;
/** Broadcasts whenever selection state is changed */
DECLARE_EVENT( IMessageLogListing, FOnSelectionChangedEvent )
virtual FOnSelectionChangedEvent& OnSelectionChanged() = 0;
/** Broadcasts whenever page selection state is changed */
DECLARE_EVENT( IMessageLogListing, FOnPageSelectionChangedEvent )
virtual FOnPageSelectionChangedEvent& OnPageSelectionChanged() = 0;
};