#ifndef _COUNTRY_ME_ #pragma once #include "KUIControl.h" #include "KPrimitiveSprite.h" /* TODO : KBUTTON_????? 등은 "버튼" 의 공통적 특성이므로 이것들은 KUIControlButtonBase 등으로 구현해놓고 각 버튼 컨트롤들은 KUIControlButtonBase 을 상속받는것이 올바른 디자인으로 보이네요.. 고치고 싶지만 일단 바빠서 넘어갑니다. UI 담당하실 님이 고쳐주셈. -_-/ by Testors */ class KUIControlSimpleButton : public KUIControl { public: enum KBUTTON_STATE { KBUTTON_NORMAL = 0, KBUTTON_ACTIVATE, KBUTTON_DOWN, KBUTTON_DISABLE, KBUTTON_MAX = 4, }; KUIControlSimpleButton(); virtual ~KUIControlSimpleButton(); virtual DWORD OnMouseMessage(DWORD dwMessage, int x, int y); virtual DWORD OnKeyMessage(DWORD dwMessage, DWORD dwKeyCode); virtual void Render(KViewportObject * pViewport, bool isFront = false ); virtual void Create(KUIWND_CREATE_ARG& CREATE_ARG); virtual void UpdateBack(); virtual void OnChangeCaptionNotify(); // 2011.03.22 - servantes const bool GetLeftButton() { return m_bLeftButton; } void SetButtonState(DWORD dwState) { m_dwButtonState = dwState; #ifdef _KUI_INVALIDATION InvalidateWnd(); #endif } int GetButtonWidth(); // 2012. 5. 30 - marine 비활성화시 버튼의 상태를 유지 해야 할경우 사용 void DisableAndButtonState(DWORD dwState); virtual void Enable(); protected: virtual void _destroyControl(); virtual void _initControl(); bool m_bLeftButton; KSpritePrimitive m_ButtonSprite[KBUTTON_MAX]; DWORD m_dwButtonState; DWORD m_dwDisableButtonState; // 2012. 5 . 30 - marine 비활성화 상태일 때 버튼의 상태 저장 }; class KUIControlButton : public KUIControl { public: enum KBUTTON_STATE { KBUTTON_NORMAL = 0, KBUTTON_ACTIVATE, KBUTTON_DOWN, KBUTTON_MAX = 4, }; KUIControlButton(); virtual ~KUIControlButton(); virtual DWORD OnMouseMessage(DWORD dwMessage, int x, int y); virtual DWORD OnKeyMessage(DWORD dwMessage, DWORD dwKeyCode); virtual void Render(KViewportObject * pViewport, bool isFront = false ); virtual void OnChangeCaptionNotify(); virtual void UpdateBack(); // 추가. bintitle. 2010.06.24. void SetButtonState(DWORD dwState) { m_dwButtonState = dwState; #ifdef _KUI_INVALIDATION // { [sonador] InvalidateWnd(); // } #endif } int GetButtonWidth(); protected: virtual void _initControl(); void _initHorizontal(); void _initVertical(); bool m_bLeftButton; KSpritePrimitive m_ButtonSprite[KBUTTON_MAX][3]; DWORD m_dwButtonState; }; class KUIControlCaptionButton : public KUIControlButton { public: KUIControlCaptionButton(); virtual ~KUIControlCaptionButton(); virtual void Render(KViewportObject * pViewport, bool isFront = false ); const char* GetAniCaption() const { return m_sCaptionAniName.c_str(); }; virtual void UpdateCaption(DWORD maxWidth = 0); // 2010.09.03 - prodongi virtual void OnChangeCaptionNotify(); protected: virtual void _initControl(); protected: std::string m_sCaptionAniName; KSpritePrimitive m_CaptionSprite[KUIControlButton::KBUTTON_MAX]; }; class KUIControlCheck : public KUIControlSimpleButton { public: KUIControlCheck(); virtual DWORD OnMouseMessage(DWORD dwMessage, int x, int y); virtual void Process( DWORD dwTime ); virtual void Render(KViewportObject * pViewport, bool isFront = false ); bool GetCheck(); void SetCheck(bool bCheck); void SetDisableCheck(); protected: virtual void _initControl(); }; class KUIControlButtonCheck : public KUIControlButton { public: KUIControlButtonCheck(); virtual DWORD OnMouseMessage(DWORD dwMessage, int x, int y); virtual void Render(KViewportObject * pViewport, bool isFront = false ); bool GetCheck(); void SetCheck(bool bCheck); void SetDisableCheck(); protected: virtual void _initControl(); }; class KUIControlCaptionCheck : public KUIControlButton { public: KUIControlCaptionCheck(); virtual DWORD OnMouseMessage(DWORD dwMessage, int x, int y); virtual void Render(KViewportObject * pViewport, bool isFront = false ); const char* GetAniCaption() const { return m_sCaptionAniName.c_str(); }; bool GetCheck(); void SetCheck(bool bCheck); void SetDisableCheck(); virtual void UpdateCaption(DWORD maxWidth = 0); // 2010.09.03 - prodongi protected: virtual void _initControl(); protected: std::string m_sCaptionAniName; KSpritePrimitive m_CaptionSprite[KUIControlButton::KBUTTON_MAX]; }; #else #include "../Localization/MiddleEast/KUIControlButton_ME.h" #endif