📄 ffeedbackcontextansi.h
字号:
/*=============================================================================
FFeedbackContextAnsi.h: Unreal Ansi user interface interaction.
Copyright 1997-1999 Epic Games, Inc. All Rights Reserved.
Revision history:
* Created by Tim Sweeney
=============================================================================*/
/*-----------------------------------------------------------------------------
FFeedbackContextAnsi.
-----------------------------------------------------------------------------*/
#if UNICODE
#define appPrintf wprintf
#else
#define appPrintf printf
#endif
//
// Feedback context.
//
class FFeedbackContextAnsi : public FFeedbackContext
{
public:
// Variables.
INT SlowTaskCount;
INT WarningCount;
FContextSupplier* Context;
FOutputDevice* AuxOut;
// Constructor.
FFeedbackContextAnsi()
: SlowTaskCount( 0 )
, WarningCount( 0 )
, Context( NULL )
, AuxOut( NULL )
{}
void Serialize( const TCHAR* V, EName Event )
{
guard(FFeedbackContextAnsi::Serialize);
TCHAR Temp[1024]=TEXT("");
if( Event==NAME_Title )
{
return;
}
else if( Event==NAME_Heading )
{
appSprintf( Temp, TEXT("--------------------%s--------------------"), (TCHAR*)V );
V = Temp;
}
else if( Event==NAME_SubHeading )
{
appSprintf( Temp, TEXT("%s..."), (TCHAR*)V );
V = Temp;
}
else if( Event==NAME_Error || Event==NAME_Warning || Event==NAME_ExecWarning || Event==NAME_ScriptWarning )
{
if( Context )
{
appSprintf( Temp, TEXT("%s : %s, %s"), *Context->GetContext(), *FName(Event), (TCHAR*)V );
V = Temp;
}
WarningCount++;
}
else if( Event==NAME_Progress )
{
appSprintf( Temp, TEXT("%s"), (TCHAR*)V );
V = Temp;
appPrintf( TEXT("%s\r"), V);
fflush( stdout );
return;
}
appPrintf( TEXT("%s\n"), V );//!!unicode
if( GLog != this )
GLog->Serialize( V, Event );
if( AuxOut )
AuxOut->Serialize( V, Event );
fflush( stdout );
unguard;
}
UBOOL YesNof( const TCHAR* Fmt, ... )
{
TCHAR TempStr[4096];
GET_VARARGS( TempStr, ARRAY_COUNT(TempStr), Fmt );
guard(FFeedbackContextAnsi::YesNof);
if( (GIsClient || GIsEditor) && !ParseParam(appCmdLine(),TEXT("Silent")) )//!!
{
appPrintf( TEXT("%s (Y/N): "), TempStr );
INT Ch = getchar();
return (Ch=='Y' || Ch=='y');
}
else return 1;
unguard;
}
void BeginSlowTask( const TCHAR* Task, UBOOL StatusWindow, UBOOL Cancelable )
{
guard(FFeedbackContextAnsi::BeginSlowTask);
GIsSlowTask = ++SlowTaskCount>0;
unguard;
}
void EndSlowTask()
{
guard(FFeedbackContextAnsi::EndSlowTask);
check(SlowTaskCount>0);
GIsSlowTask = --SlowTaskCount>0;
unguard;
}
UBOOL VARARGS StatusUpdatef( INT Numerator, INT Denominator, const TCHAR* Fmt, ... )
{
guard(FFeedbackContextAnsi::StatusUpdatef);
TCHAR TempStr[4096];
GET_VARARGS( TempStr, ARRAY_COUNT(TempStr), Fmt );
if( GIsSlowTask )
{
//!!
}
return 1;
unguard;
}
void SetContext( FContextSupplier* InSupplier )
{
guard(FFeedbackContextAnsi::SetContext);
Context = InSupplier;
unguard;
}
};
#undef appPrintf
/*-----------------------------------------------------------------------------
The End.
-----------------------------------------------------------------------------*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -