Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

45 rader
1.3 KiB

  1. using DamnOverSharp.Renderers.WPF;
  2. using System.Windows;
  3. using System.Windows.Controls;
  4. namespace DamnOverSharp.WPF.UiLibrary
  5. {
  6. public class VirtualControlBase : UserControl
  7. {
  8. private WpfRenderer Renderer = null;
  9. public bool VirtualMouseOver { get; internal set; } = false;
  10. public bool VirtualMouseDown { get; internal set; } = false;
  11. public bool VirtualFocused { get; internal set; } = false;
  12. internal void SetRendererOnce(WpfRenderer renderer)
  13. {
  14. if(Renderer == null)
  15. {
  16. Renderer = renderer;
  17. }
  18. }
  19. public void UpdateVisual()
  20. {
  21. Renderer?.UpdateVisual();
  22. }
  23. public virtual void OnGotVirtualFocus() => UpdateVisual();
  24. public virtual void OnLostVirtualFocus() => UpdateVisual();
  25. public virtual void OnVirtualMouseEnter() => UpdateVisual();
  26. public virtual void OnVirtualMouseLeave() => UpdateVisual();
  27. public virtual bool OnVirtualMouseDown() => false;
  28. public virtual bool OnVirtualMouseUp() => false;
  29. public virtual void OnVirtualMouseMove(Point position) { }
  30. public virtual void OnVirtualKeyDown(System.Windows.Forms.Keys keyCode) { }
  31. public virtual void OnVirtualKeyUp(System.Windows.Forms.Keys keyCode) { }
  32. }
  33. }