DragonNest/Common/EtInterface/EtUIButton.h
2024-12-19 09:48:26 +08:00

82 lines
2.7 KiB
C++

#pragma once
#include "EtUIControl.h"
#include "EtUISound.h"
class CEtUIButton : public CEtUIControl
{
public:
CEtUIButton( CEtUIDialog *pParent );
virtual ~CEtUIButton(void);
protected:
int m_nToggleButtonIndex;
//CEtUISound::emUI_SOUND m_emSoundIndex;
int m_nSoundIndex;
SUICoord m_MoveButtonCoord;
SUICoord m_BaseCoordLeft;
SUICoord m_BaseCoordMid;
SUICoord m_BaseCoordRight;
SUICoord m_MoveBaseCoordLeft;
SUICoord m_MoveBaseCoordMid;
SUICoord m_MoveBaseCoordRight;
SUICoord m_uvCoordLeft;
SUICoord m_uvCoordMid;
SUICoord m_uvCoordRight;
SUICoord m_MouseCoord;
int m_nButtonID; // Note : 버튼을 인덱스나 값으로 구분하기 위해 이 값을 툴에서 셋팅하여 사용할 수 있다.
//blondy 온라인게임에서 메세지를 자주 못보내게 할려고 버튼 디세이블 시간을 많이 둔다 이기능을 위해 추가
bool IsDisable; //디세블 됐는가
bool IsEnableBackUp; //전상태를 저장
float m_ElapsedDisableTime; // 디세이블 되고 지나간 시간
float m_DisableTime; //이값을 툴에서 세팅 할수있어야 한다
//blondy end
bool m_bRightButton;
bool m_bEnableKeyboard;
bool m_bBlink;
float m_fBlinkTime;
int m_nBlinkAlpha;
// PRE_MOD_CASHSHOP_GIFTBOTTON_TWINKLE_SPEEDUP
int m_nBlendTime;
public:
void SetButtonID( int nButtonID ) { m_nButtonID = nButtonID; }
int GetButtonID() { return m_nButtonID; }
SUICoord GetMouseCoord() {return m_MouseCoord;}
void SetBlink( bool bBlink );
bool IsBlink() { return m_bBlink; }
// PRE_MOD_CASHSHOP_GIFTBOTTON_TWINKLE_SPEEDUP
inline void SetBlendTime( int BlendTime = 1000 ) { m_nBlendTime = BlendTime; }
public:
virtual void MouseEnter( bool bEnter );
// SetTextWithEllipsis함수를 사용하기 위해 재정의
virtual void SetText( const std::wstring &strText , bool bFit = false, float fScaleX = 1.0f, float fScaleY = 1.0f) override;
// EtUIStatic에 있는거 그대로 가져옵니다. 해외 번역시 길이 넘어가면 자동으로 ... 해주기 위해서.
bool SetTextWithEllipsis( const wchar_t *wszText, const wchar_t *wszSymbol );
virtual void ClearText() { m_szText.clear(); m_strRenderText.clear(); if( m_Property.ButtonProperty.bAutoTooltip ) ClearTooltipText(); }
public:
virtual void Initialize( SUIControlProperty *pProperty );
virtual bool CanHaveFocus() { return true; }
virtual bool HandleKeyboard( UINT uMsg, WPARAM wParam, LPARAM lParam );
void PlayButtonSound();
virtual bool HandleMouse( UINT uMsg, float fX, float fY, WPARAM wParam, LPARAM lParam );
virtual void OnHotkey();
virtual void Render( float fElapsedTime );
virtual void UpdateRects();
virtual void Process( float fElapsedTime );
virtual void Enable( bool bEnable ) ;
void UpdateBlink( float fElapsedTime );
void SetDisableTime( float fDisableTime){m_DisableTime = fDisableTime;};
void EnableKeyboard( bool bEnable ) { m_bEnableKeyboard = bEnable; }
};