#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; };