Triggers are used by macros to determine what conditions are needed for a macro to run.

Triggers mush implement INotifyPropertyChanged with a valid pattern on the isTriggered property to correctly send status back to parent macro.

Triggers may also implement IIMDeviceReference and IIMConfigurable

IIMTrigger my implement any code necessary to determine and set the value of isTriggered as long as it has the minimum below pattern

[CustomName("My Trigger")]
[CustomCatagory("My Triggers", InputMapperIcon.IMIcons.None)]
class MyTrigger: IIMTrigger
    public event PropertyChangedEventHandler PropertyChanged;

    private bool _isTriggered;
    public bool isTriggered
        get { return _isTriggered; }
        set { if (value != _isTriggered) { _isTriggered = value; PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("isTriggered")); } }