67 lines
2.1 KiB
C++
67 lines
2.1 KiB
C++
|
|
#ifndef _SUINotificationWnd_h_
|
|
#define _SUINotificationWnd_h_
|
|
|
|
//#include "SUIWnd.h"
|
|
//#include "SUIUtil.h"
|
|
//#include "Util.h"
|
|
|
|
struct sNotificationEffect;
|
|
|
|
class SUINotificationWnd : public SUIWnd
|
|
{
|
|
public:
|
|
SUINotificationWnd(SGameManager* pGameManager);
|
|
virtual ~SUINotificationWnd();
|
|
virtual bool InitData( bool reload = false );
|
|
virtual void Process(DWORD dwTime);
|
|
virtual void ProcMsgAtStatic( SGameMessage* msg );
|
|
virtual void PumpUpMessage( LPCTSTR controlID, DWORD msg, DWORD lparam, DWORD wparam );
|
|
virtual void OnNotifyUIWindowOpen( bool bOpen, bool bLimitWnd = true );
|
|
|
|
private:
|
|
void initFp();
|
|
void getWndInfo();
|
|
void initEffect();
|
|
void initTooltip();
|
|
/// 안쓰이는 컨트롤들을 우선 하이드 시킨다.
|
|
void hideUnUsedControl();
|
|
void close();
|
|
/// 맨 위의 알림을 삭제한다
|
|
void popFirstNotification();
|
|
void popNotificationBuffer();
|
|
/// 알림을 맨 위로 추가한다.
|
|
void pushNotification(char const* nofitication);
|
|
void pushNotificationBuffer(char const* notification);
|
|
void syncPos();
|
|
bool isEmptyNotification() const;
|
|
void procUpdate(float elapsedTime);
|
|
void procEffect(float elapsedTime);
|
|
/// 알림 메세지를 컨트롤에 설정한다
|
|
void setNotificationToControl();
|
|
void removeFirstNotification();
|
|
void startEffect();
|
|
void applyNotification();
|
|
/// 전체 닫기 버튼의 show/hide, 알림이 한개일 때는 hide되고 2개 이상일 때만 보인다.
|
|
void checkCloseAllButtonVisible();
|
|
void beginUpdateTime();
|
|
|
|
void procMsgData(SGameMessage* msg);
|
|
|
|
private:
|
|
cClassFuncP<SUINotificationWnd> m_controlFp;
|
|
cClassParamFuncP<SUINotificationWnd, SGameMessage*, int> m_msgFp;
|
|
std::list<std::string> m_notificationList;
|
|
std::list<std::string> m_notificationBuffer; /// buffer ->effect, list
|
|
sUpdateTime<float> m_updateTime;
|
|
DWORD m_time;
|
|
KUIWnd* m_notificationStatic;
|
|
KUIWnd* m_closeAllButton;
|
|
sNotificationEffect* m_notificationEffect;
|
|
|
|
static float SEQUENCE_UPDATE_TIME; /// 여러개가 있을 때의 업데이트 시간
|
|
static float LAST_UPDATE_TIME; /// 마지막 한개만 있을 때의 업데이트 시간
|
|
};
|
|
|
|
#endif
|