CheckBox.cpp 763 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. /*
  2. GWEN
  3. Copyright (c) 2010 Facepunch Studios
  4. See license in Gwen.h
  5. */
  6. #include "Gwen/Controls/CheckBox.h"
  7. using namespace Gwen;
  8. using namespace Gwen::Controls;
  9. GWEN_CONTROL_CONSTRUCTOR( CheckBox )
  10. {
  11. SetSize( 13, 13 );
  12. m_bChecked = true;
  13. Toggle();
  14. }
  15. void CheckBox::Render( Skin::Base* skin )
  16. {
  17. skin->DrawCheckBox( this, m_bChecked, IsDepressed() );
  18. }
  19. void CheckBox::OnPress()
  20. {
  21. if ( IsChecked() && !AllowUncheck() )
  22. return;
  23. Toggle();
  24. }
  25. void CheckBox::OnCheckStatusChanged()
  26. {
  27. if ( IsChecked() )
  28. {
  29. onChecked.Call( this );
  30. }
  31. else
  32. {
  33. onUnChecked.Call( this );
  34. }
  35. onCheckChanged.Call( this );
  36. }
  37. void CheckBox::SetChecked( bool bChecked )
  38. {
  39. if ( m_bChecked == bChecked ) return;
  40. m_bChecked = bChecked;
  41. OnCheckStatusChanged();
  42. }