MirCheckBox.cs 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. using Client.MirSounds;
  2. namespace Client.MirControls
  3. {
  4. public class MirCheckBox : MirButton
  5. {
  6. #region TickedIndex
  7. private int _tickedIndex;
  8. public int TickedIndex
  9. {
  10. get { return _tickedIndex; }
  11. set { _tickedIndex = value; }
  12. }
  13. #endregion
  14. #region UnTickedIndex
  15. private int _untickedIndex;
  16. public int UnTickedIndex
  17. {
  18. get { return _untickedIndex; }
  19. set { _untickedIndex = value; }
  20. }
  21. #endregion
  22. #region Checked
  23. private bool _checked;
  24. public bool Checked
  25. {
  26. get { return _checked; }
  27. set { _checked = value; Index = value ? TickedIndex : UnTickedIndex; Redraw(); }
  28. }
  29. #endregion
  30. #region Label
  31. private new MirLabel _label;
  32. #endregion
  33. #region CenterText
  34. private new bool _center;
  35. public bool CenterLabelText
  36. {
  37. get
  38. {
  39. return _center;
  40. }
  41. set
  42. {
  43. _center = value;
  44. if (_center)
  45. {
  46. _label.Size = Size;
  47. _label.DrawFormat = TextFormatFlags.HorizontalCenter | TextFormatFlags.VerticalCenter;
  48. }
  49. else
  50. _label.AutoSize = true;
  51. }
  52. }
  53. #endregion
  54. #region LabelText
  55. public string LabelText
  56. {
  57. set
  58. {
  59. if (_label == null || _label.IsDisposed)
  60. return;
  61. _label.Text = value;
  62. _label.Visible = !string.IsNullOrEmpty(value);
  63. }
  64. }
  65. #endregion
  66. public MirCheckBox()
  67. {
  68. TickedIndex = -1;
  69. UnTickedIndex = -1;
  70. Index = -1;
  71. HoverIndex = -1;
  72. PressedIndex = -1;
  73. DisabledIndex = -1;
  74. Sound = SoundList.ButtonB;
  75. Click += MirCheckBox_Click;
  76. _label = new MirLabel
  77. {
  78. AutoSize = true,
  79. NotControl = true,
  80. Location = new Point(15, -2),
  81. Parent = this
  82. };
  83. }
  84. private void MirCheckBox_Click(object sender, EventArgs e)
  85. {
  86. Checked = !Checked;
  87. if (Checked) Index = TickedIndex;
  88. else Index = UnTickedIndex;
  89. Redraw();
  90. }
  91. }
  92. }