CheckBox.cpp
上传用户:hkb425
上传日期:2007-06-16
资源大小:34191k
文件大小:2k
源码类别:

游戏引擎

开发平台:

Visual C++

  1. // CheckBox.cpp: implementation of the CCheckBox class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #include "stdafx.h"
  5. #include "CheckBox.h"
  6. //////////////////////////////////////////////////////////////////////
  7. // Construction/Destruction
  8. //////////////////////////////////////////////////////////////////////
  9. CCheckBox::CCheckBox()
  10. {
  11. m_bEnable=true;
  12. }
  13. CCheckBox::~CCheckBox()
  14. {
  15. }
  16. void CCheckBox::SetCheckBox(RECT rect,bool bState)
  17. {
  18. CGraphButton::SetButtonRect(rect);
  19. m_bChecked=bState;
  20. }
  21. void CCheckBox::SetState(bool bState)
  22. {
  23. m_bChecked=bState;
  24. }
  25. void CCheckBox::RenderCheckBox()
  26. {
  27. UpdateCheckBox();
  28. CGraphButton::RenderButton();
  29.     if(!m_bEnable)return;
  30. int width=m_rect.right-m_rect.left;
  31. int height=m_rect.bottom-m_rect.top;
  32. glColor3f(0,1,0);
  33. if(m_bChecked)
  34. {
  35. glBegin(GL_LINE_STRIP);
  36.         glVertex3f(m_rect.left+width*0.15f-400 , 300-m_rect.top-height*0.5f , -520);
  37.         glVertex3f(m_rect.left+width*0.45f-400 , 300-m_rect.top-height*0.85f , -520);
  38.         glVertex3f(m_rect.left+width*0.85f-400 , 300-m_rect.top-height*0.15f ,-520);
  39.     glEnd();
  40. }
  41. else
  42. {
  43. glBegin(GL_LINES);
  44.         glVertex3f(m_rect.left+width*0.15f-400 , 300-m_rect.top-height*0.15f , -520);
  45.         glVertex3f(m_rect.left+width*0.85f-400 , 300-m_rect.top-height*0.85f , -520);
  46.         glVertex3f(m_rect.left+width*0.15f-400 , 300-m_rect.top-height*0.85f , -520);
  47.         glVertex3f(m_rect.left+width*0.85f-400 , 300-m_rect.top-height*0.15f , -520);
  48.     glEnd();
  49. }
  50. }
  51. void CCheckBox::UpdateCheckBox()
  52. {
  53. if(m_bSelected)
  54. {
  55.         m_bSelected=false;
  56. m_bChecked=!m_bChecked;
  57. m_bValueChanged=true;
  58. }
  59. else m_bValueChanged=false;
  60. }
  61. void CCheckBox::SetEnable(bool bEnable)
  62. {
  63.     m_bEnable=bEnable;
  64. if(m_bEnable)
  65.     m_iState=BUTTON_NORMAL;
  66. else
  67.     m_iState=BUTTON_DEAD;
  68. }