Files
2026-06-01 12:46:52 +02:00

155 lines
3.2 KiB
C++

#pragma once
//#include "KUIControl.h"
#include "./Renderer/KPrimitiveSprite.h"
/// Primitivie
class KClockBoxPrimitive : public KSpritePrimitive
{
enum
{
CLOCK_VTX = 10,
};
public:
KClockBoxPrimitive();
virtual ~KClockBoxPrimitive();
bool SetClockDegree( int nDegree, bool bReverse = false );
virtual void Render( KViewportObject *viewport, class K3DRenderDevice *dev, bool bUseAccum = true );
/// @brief - prodongi
void changeAlpha(float alpha);
protected:
int m_nCurDegree;
bool m_bReverse;
KSpritePrimitive::TEMPEXTVERTEX m_ClockVtxBuf[CLOCK_VTX];
/// @brief - prodongi
enum { MAX_ALPHA = 200 };
float m_alpha;
};
/// Control
class KUIControlClockBox : public KUIControl
{
public:
KUIControlClockBox();
virtual ~KUIControlClockBox();
void SetColor(const KColor& color)
{
m_prClock.SetColor( color );
}
void SetMaxTime(DWORD dwMaxTime)
{
m_dwMaxTime = dwMaxTime;
}
DWORD GetMaxTime()
{
return m_dwMaxTime;
}
void SetCurTime(DWORD dwCurTime)
{
m_dwCurTime = dwCurTime;
}
DWORD GetCurTime()
{
return m_dwCurTime;
}
void Init(); // MJ 2004/11/10
bool IsInit() const { return m_bInit; }; // MJ 2004/11/10
void Begin( bool bReverse = false );
void Stop();
virtual void Process(DWORD dwTime);
virtual void Render(KViewportObject* pViewport, bool isFront = false );
/// @brief m_prClock의 알파를 조절하기 위래서 - prodongi
virtual void OnAlphaChangeNotify(float fAlpha);
protected:
virtual void _initControl();
protected:
DWORD m_dwBeginTime;
DWORD m_dwMaxTime;
DWORD m_dwCurTime;
DWORD m_dwTimeOffset;
bool m_bBegin;
bool m_bInit;
bool m_bReverse;
KClockBoxPrimitive m_prClock;
};
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
// ColorBox Control
/// Primitivie
class KColorBoxPrimitive : public KSpritePrimitive
{
enum
{
COLOR_VTX = 4,
};
public:
KColorBoxPrimitive();
virtual ~KColorBoxPrimitive();
virtual void Render( KViewportObject *viewport, class K3DRenderDevice *dev, bool bUseAccum = true );
void SetVisibility( float vis );
void SetIndexColor ( int nIndex, const KColor &color );
protected:
void NoResUpdateSprite();
KSpritePrimitive::TEMPEXTVERTEX m_ColorVtxBuf[COLOR_VTX];
float m_fMasterVisibility[COLOR_VTX];
};
/// Control
class KUIControlColorBox : public KUIControl
{
public:
KUIControlColorBox();
virtual ~KUIControlColorBox();
virtual void OnAlphaChangeNotify(float fAlpha);
void SetEnableColorAni( bool bFlag )
{
m_bEnableColorAni = bFlag;
}
void SetIndexColor(int nIndex, const KColor& color)
{
if( nIndex >= 0 && nIndex < 4 )
m_prColor.SetIndexColor( nIndex, color );
}
void SetWeightColor(const KColor& color)
{
m_weightColor = color;
for( int i(0); 4>i; i++ )
m_prColor.SetIndexColor( i, m_weightColor );
}
virtual void Process(DWORD dwTime);
virtual void Render(KViewportObject* pViewport, bool isFront = false );
protected:
virtual void _initControl();
protected:
bool m_bEnableColorAni;
KColorBoxPrimitive m_prColor;
DWORD m_dwTime;
DWORD m_dwCheckTime;
KColor m_weightColor;
KColor m_Color[4];
short m_nFlag;
};