Files
2022-10-26 12:25:11 +08:00

172 lines
4.0 KiB
C++

#pragma once
//------------------------------------------------------------------------------
//
// 작업자: 이지연
// uiHelpAnnounceWindow class
//------------------------------------------------------------------------------
#include "HelpInfoParser.h"
#include "FTextRender.h"
#include "uiBase.h"
#include "timer.h"
class uiHelpMan;
class uiHelpAnnounceWindow: public uiBase
{
enum eDIALOG_POS
{
DLGPOS_TXT_TITLE,
DLGPOS_TXT_DESC1,
DLGPOS_TXT_DESC2,
DLGPOS_IMAGE,
DIALOG_MAX,
};
enum
{
POS_TXT_SIZE = DLGPOS_TXT_DESC2 - DLGPOS_TXT_TITLE + 1,
POS_DESC_SIZE = DLGPOS_TXT_DESC2 - DLGPOS_TXT_DESC1 + 1,
};
public:
uiHelpAnnounceWindow(InterfaceManager *pUIMan);
virtual ~uiHelpAnnounceWindow();
//-------------------------------- ------------------------------------------
// init/release
//
public:
virtual void Init(CDrawBase* pDrawBase);
virtual void Release();
virtual VOID Process(DWORD dwTick);
protected:
void InitControls();
//--------------------------------------------------------------------------
// helper/comms.
//
public:
uiHelpMan* GetManager();
//--------------------------------------------------------------------------
// functions
//
public:
void renderHelpInfo();
void SetHelpInfo(BASE_HelpInfo& helpInfo);
void SetGMHelpInfo(BASE_HelpInfo& helpInfo, int iParam);
#ifdef _SCJ_REMOVE_ANNOUNCE_WINDOW
#else
//! 언어를 바꿀때 사용.
void RestoreHelpInfo();
#endif //_SCJ_REMOVE_ANNOUNCE_WINDOW
private:
BOOL _isEnable();
void _renderHelpImage();
void _dlgSettingforTrans();
public:
//--------------------------------------------------------------------------
// dialog functions
//
public:
protected:
virtual void OnShowWindow( BOOL val );
virtual void OnUpdateSolarDialog();
virtual void OnRenderSolarDialog();
virtual void UpdatePosition();
protected:
CControlWZ * getControl( POSTYPE AtPos );
POSTYPE getCtrlIDToPos( WzID wzId );
static WzID m_wzId[DIALOG_MAX];
//--------------------------------------------------------------------------
// procedure
//
public:
virtual void NetworkProc( MSG_BASE * pMsg ); // Pure
virtual void MessageProc( SI_MESSAGE * pMessage ); // Pure
//--------------------------------------------------------------------------
// member vars
//
private:
uiHelpMan* m_pHelpMan;
bool m_bControlsInitialized;
CCtrlStaticWZ* m_pTxtControls[POS_TXT_SIZE];
CCtrlPictureWZ* m_pPicture;
FTextRender m_TextRender[POS_DESC_SIZE];
BASE_HelpInfo m_HelpInfo;
util::Timer m_ShowTimer;
util::Timer m_Counter; //카운터 메시지를 위한 타이머
HANDLE m_hHelpImage;
bool m_bTrans;
float m_fTrans;
DWORD m_dwTransAcc;
DWORD m_dwTransEnd;
int m_iSec;
int m_iOldSec;
int m_iShowTime;
std::vector<CControlWZ *> m_vPicControls;
};
//------------------------------------------------------------------------------
/**
*/
inline
POSTYPE
uiHelpAnnounceWindow::getCtrlIDToPos( WzID wzId )
{
for( POSTYPE i = 0 ; i < DIALOG_MAX ; ++i )
{
if( m_wzId[i] == wzId )
{
return i;
}
}
return DIALOG_MAX;
}
//------------------------------------------------------------------------------
/**
*/
inline
CControlWZ *
uiHelpAnnounceWindow::getControl( POSTYPE AtPos )
{
assert( AtPos < DIALOG_MAX );
return GetControlWZ( m_wzId[AtPos] );
}
//------------------------------------------------------------------------------
/**
*/
inline
uiHelpMan*
uiHelpAnnounceWindow::GetManager()
{
return this->m_pHelpMan;
}
//------------------------------------------------------------------------------