using System.Runtime.InteropServices; using Decal.Interop.Controls; using Decal.Interop.Inject; namespace Decal.DecalControls { [ComVisible(true)] [Guid("FE361225-6BB7-4AE0-A10C-8A6420621680")] [ClassInterface(ClassInterfaceType.None)] [ComSourceInterfaces("Decal.Interop.Inject.IControlEvents\0\0")] [ProgId("DecalControls.Progress")] public class ProgressImpl : ControlBase, IProgress { public event IControlEvents_DestroyEventHandler Destroy; private int _value; private int _faceColor; private int _fillColor; private int _textColor; private int _maxValue = 100; private string _postText = ""; private string _alignment = "center"; private bool _decalDrawText; private string _preText = ""; private int _borderWidth; private int _borderColor; public int Value { get => _value; set { _value = value; Invalidate(); } } public int FaceColor { set { _faceColor = value; Invalidate(); } } public int FillColor { set { _fillColor = value; Invalidate(); } } public int TextColor { set { _textColor = value; Invalidate(); } } public int MaxValue { set { _maxValue = value; Invalidate(); } } public string PostText { set { _postText = value ?? ""; Invalidate(); } } public string Alignment { set { _alignment = value ?? "center"; Invalidate(); } } public bool DecalDrawText { set { _decalDrawText = value; Invalidate(); } } public string PreText { set { _preText = value ?? ""; Invalidate(); } } public int BorderWidth { set { _borderWidth = value; Invalidate(); } } public int BorderColor { set { _borderColor = value; Invalidate(); } } protected override void OnDestroy() => Destroy?.Invoke(ID); } }