This commit is contained in:
CortexCore
2023-11-15 23:55:06 +08:00
parent 5446067f91
commit 70247f0242
82 changed files with 3271 additions and 579 deletions

View File

@@ -3,7 +3,24 @@ using System.Collections.Generic;
namespace BITKit
{
public class ValidHandle
public interface IValidHandle
{
bool Allow { get; }
void AddElement(object obj);
void RemoveElement(object obj);
void AddDisableElements(object obj);
void RemoveDisableElements(object obj);
void SetElements(object obj, bool add = true);
void SetDisableElements(object obj, bool add = true);
void Invoke();
void Invoke(bool value);
void AddListener(Action<bool> action);
void RemoveListener(Action<bool> action);
void Clear();
}
[CustomType(typeof(IValidHandle))]
public sealed class ValidHandle: IValidHandle
{
public ValidHandle() {}
public ValidHandle(Action<bool> boolDelegate)
@@ -24,7 +41,7 @@ namespace BITKit
private bool tempEnable;
private Action<bool> EventOnEnableChanged;
public virtual void AddElement(object obj)
public void AddElement(object obj)
{
if (objs.Contains(obj))
{
@@ -36,7 +53,8 @@ namespace BITKit
}
CheckEnable();
}
protected void CheckEnable()
private void CheckEnable()
{
tempEnable = objs.Count > 0 && disableObjs.Count == 0;
if (tempEnable != enableHandle)
@@ -46,7 +64,7 @@ namespace BITKit
EventOnEnableChanged.Invoke(enableHandle);
}
}
public virtual void RemoveElement(object obj)
public void RemoveElement(object obj)
{
if (objs.Contains(obj))
{
@@ -58,8 +76,8 @@ namespace BITKit
}
CheckEnable();
}
public virtual int lenght => objs.Count;
public virtual string[] GetElements()
public int lenght => objs.Count;
public string[] GetElements()
{
List<string> elementNames = new List<string>();
for (int i = 0; i < objs.Count; i++)
@@ -68,8 +86,8 @@ namespace BITKit
}
return elementNames.ToArray();
}
public virtual bool Contains(object obj) => objs.Contains(obj);
public virtual void AddDisableElements(object obj)
public bool Contains(object obj) => objs.Contains(obj);
public void AddDisableElements(object obj)
{
if (disableObjs.Contains(obj))
{
@@ -103,7 +121,7 @@ namespace BITKit
RemoveElement(obj);
}
}
public virtual void SetDisableElements(object obj, bool add = true)
public void SetDisableElements(object obj, bool add = true)
{
if (add)
{