MoonCheckList.cs 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. using System.Drawing;
  2. using System.Windows.Forms;
  3. namespace Optimizer
  4. {
  5. public class MoonCheckList : CheckedListBox
  6. {
  7. public MoonCheckList()
  8. {
  9. DoubleBuffered = true;
  10. }
  11. protected override void OnDrawItem(DrawItemEventArgs e)
  12. {
  13. Color foreColor = Color.White;
  14. Color accentColor = Color.MediumOrchid;
  15. switch (Options.CurrentOptions.Color)
  16. {
  17. case Theme.Caramel:
  18. accentColor = Color.DarkOrange;
  19. break;
  20. case Theme.Lime:
  21. accentColor = Color.LimeGreen;
  22. break;
  23. case Theme.Magma:
  24. accentColor = Color.Tomato;
  25. break;
  26. case Theme.Minimal:
  27. accentColor = Color.Gray;
  28. break;
  29. case Theme.Ocean:
  30. accentColor = Color.DodgerBlue;
  31. break;
  32. case Theme.Zerg:
  33. accentColor = Color.MediumOrchid;
  34. break;
  35. }
  36. if (this.Items.Count > 0)
  37. {
  38. if (e.Index >= 0)
  39. {
  40. foreColor = GetItemChecked(e.Index) ? accentColor : foreColor;
  41. }
  42. else
  43. {
  44. foreColor = e.ForeColor;
  45. }
  46. }
  47. var tweakedEventArgs = new DrawItemEventArgs(
  48. e.Graphics,
  49. e.Font,
  50. e.Bounds,
  51. e.Index,
  52. e.State,
  53. foreColor,
  54. e.BackColor);
  55. base.OnDrawItem(tweakedEventArgs);
  56. }
  57. }
  58. }