mirror of
https://github.com/chylex/TweetDuck.git
synced 2024-10-17 09:42:45 +02:00
38 lines
1.1 KiB
C#
38 lines
1.1 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using TweetDck.Plugins.Events;
|
|
|
|
namespace TweetDck.Plugins{
|
|
[Serializable]
|
|
class PluginConfig{
|
|
[field:NonSerialized]
|
|
public event EventHandler<PluginChangedStateEventArgs> PluginChangedState;
|
|
|
|
public IEnumerable<string> DisabledPlugins{
|
|
get{
|
|
return Disabled;
|
|
}
|
|
}
|
|
|
|
public bool AnyDisabled{
|
|
get{
|
|
return Disabled.Count > 0;
|
|
}
|
|
}
|
|
|
|
private readonly HashSet<string> Disabled = new HashSet<string>();
|
|
|
|
public void SetEnabled(Plugin plugin, bool enabled){
|
|
if ((enabled && Disabled.Remove(plugin.Identifier)) || (!enabled && Disabled.Add(plugin.Identifier))){
|
|
if (PluginChangedState != null){
|
|
PluginChangedState(this,new PluginChangedStateEventArgs(plugin,enabled));
|
|
}
|
|
}
|
|
}
|
|
|
|
public bool IsEnabled(Plugin plugin){
|
|
return !Disabled.Contains(plugin.Identifier) && plugin.CanRun;
|
|
}
|
|
}
|
|
}
|