📄 ffeedbackcontextwindows.h
字号:
/*=============================================================================
FFeedbackContextWindows.h: Unreal Windows user interface interaction.
Copyright 1997-1999 Epic Games, Inc. All Rights Reserved.
Revision history:
* Created by Tim Sweeney
=============================================================================*/
/*-----------------------------------------------------------------------------
FFeedbackContextWindows.
-----------------------------------------------------------------------------*/
//
// Feedback context.
//
class FFeedbackContextWindows : public FFeedbackContext
{
public:
// Variables.
INT SlowTaskCount;
DWORD hWndProgressBar, hWndProgressText;
// Constructor.
FFeedbackContextWindows()
: SlowTaskCount( 0 )
, hWndProgressBar( 0 )
, hWndProgressText( 0 )
{}
void Serialize( const TCHAR* V, EName Event )
{
guard(FFeedbackContextWindows::Serialize);
debugf( NAME_Warning, TEXT("%s"), V );
unguard;
}
UBOOL YesNof( const TCHAR* Fmt, ... )
{
TCHAR TempStr[4096];
GET_VARARGS( TempStr, ARRAY_COUNT(TempStr), Fmt );
guard(FFeedbackContextWindows::YesNof);
if( GIsClient || GIsEditor )
return( ::MessageBox( NULL, TempStr, LocalizeError("Question",TEXT("Core")), MB_YESNO|MB_TASKMODAL ) == IDYES);
else
return 0;
unguard;
}
void BeginSlowTask( const TCHAR* Task, UBOOL StatusWindow, UBOOL Cancelable )
{
guard(FFeedbackContextWindows::BeginSlowTask);
if( hWndProgressBar && hWndProgressText )
{
SendMessageX( (HWND)hWndProgressBar, PBM_SETRANGE, (WPARAM)0, MAKELPARAM(0, 100) );
SendMessageLX( (HWND)hWndProgressText, WM_SETTEXT, (WPARAM)0, Task );
UpdateWindow( (HWND)hWndProgressText );
}
GIsSlowTask = ++SlowTaskCount>0;
unguard;
}
void EndSlowTask()
{
guard(FFeedbackContextWindows::EndSlowTask);
check(SlowTaskCount>0);
GIsSlowTask = --SlowTaskCount>0;
unguard;
}
UBOOL VARARGS StatusUpdatef( INT Numerator, INT Denominator, const TCHAR* Fmt, ... )
{
guard(FFeedbackContextWindows::StatusUpdatef);
TCHAR TempStr[4096];
GET_VARARGS( TempStr, ARRAY_COUNT(TempStr), Fmt );
if( GIsSlowTask && hWndProgressBar && hWndProgressText )
{
SendMessageLX( (HWND)hWndProgressText, WM_SETTEXT, (WPARAM)0, TempStr );
SendMessageX( (HWND)hWndProgressBar, PBM_SETPOS, (WPARAM)(Denominator ? 100*Numerator/Denominator : 0), (LPARAM)0 );
}
return 1;
unguard;
}
void SetContext( FContextSupplier* InSupplier )
{}
};
/*-----------------------------------------------------------------------------
The End.
-----------------------------------------------------------------------------*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -