73 lines
2.1 KiB
Objective-C
73 lines
2.1 KiB
Objective-C
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#pragma once
|
|
|
|
#include "CoreMinimal.h"
|
|
#include "Mac/MacSystemIncludes.h"
|
|
#include "Misc/FeedbackContext.h"
|
|
|
|
@interface FMacNativeFeedbackContextWindowController : NSObject
|
|
{
|
|
@public
|
|
NSTextView* TextView;
|
|
@private
|
|
NSScrollView* LogView;
|
|
NSWindow* Window;
|
|
NSTextField* StatusLabel;
|
|
NSButton* CancelButton;
|
|
NSButton* ShowLogButton;
|
|
NSProgressIndicator* ProgressIndicator;
|
|
}
|
|
-(id)init;
|
|
-(void)dealloc;
|
|
-(void)setShowProgress:(bool)bShowProgress;
|
|
-(void)setShowCancelButton:(bool)bShowCancelButton;
|
|
-(void)setTitleText:(NSString*)Title;
|
|
-(void)setStatusText:(NSString*)Text;
|
|
-(void)setProgress:(double)Progress total:(double)Total;
|
|
-(void)showWindow;
|
|
-(void)hideWindow;
|
|
-(bool)windowOpen;
|
|
@end
|
|
|
|
/**
|
|
* Feedback context implementation for Mac.
|
|
*/
|
|
class FMacNativeFeedbackContext : public FFeedbackContext
|
|
{
|
|
public:
|
|
// Constructor.
|
|
FMacNativeFeedbackContext();
|
|
virtual ~FMacNativeFeedbackContext();
|
|
|
|
virtual void Serialize(const TCHAR* V, ELogVerbosity::Type Verbosity, const FName& Category) override;
|
|
virtual void Serialize(const TCHAR* V, ELogVerbosity::Type Verbosity, const FName& Category, double Time) override;
|
|
virtual void SerializeRecord(const UE::FLogRecord& Record) override;
|
|
|
|
virtual bool YesNof(const FText& Text) override;
|
|
|
|
virtual bool ReceivedUserCancel() override;
|
|
|
|
virtual void StartSlowTask( const FText& Task, bool bShowCancelButton=false ) override;
|
|
virtual void FinalizeSlowTask( ) override;
|
|
virtual void ProgressReported( const float TotalProgressInterp, FText DisplayMessage ) override;
|
|
|
|
FContextSupplier* GetContext() const override;
|
|
void SetContext(FContextSupplier* InContext) override;
|
|
|
|
private:
|
|
void SerializeToWindow(const TCHAR* V, ELogVerbosity::Type Verbosity, const FName& Category, double Time);
|
|
|
|
void SetDefaultTextColor();
|
|
|
|
private:
|
|
/** Critical section for Serialize() */
|
|
FCriticalSection CriticalSection;
|
|
FMacNativeFeedbackContextWindowController* WindowController;
|
|
NSDictionary* TextViewTextColor;
|
|
FContextSupplier* Context;
|
|
uint64 OutstandingTasks;
|
|
int32 SlowTaskCount;
|
|
bool bShowingConsoleForSlowTask;
|
|
};
|