34 lines
987 B
C#
34 lines
987 B
C#
using Cryville.Crtr.Browsing.UI;
|
|
using System;
|
|
|
|
namespace Cryville.Crtr.Browsing.Actions {
|
|
internal class UseSkinAction : ResourceAction<ISkinDetail> {
|
|
readonly RulesetConfigBrowser _destination;
|
|
public UseSkinAction() : this(null) { }
|
|
public UseSkinAction(RulesetConfigBrowser destination) {
|
|
_destination = destination;
|
|
}
|
|
|
|
public override string Name { get { return "Use"; } }
|
|
|
|
public override int Priority { get { return -100; } }
|
|
|
|
public override bool CanInvoke(Uri uri, ISkinDetail resource) {
|
|
if (_destination == null) {
|
|
return !OpenConfigAction.HasTab(resource.RulesetId);
|
|
}
|
|
return _destination.RulesetName == resource.RulesetId;
|
|
}
|
|
|
|
public override void Invoke(Uri uri, ISkinDetail resource) {
|
|
if (_destination == null) {
|
|
OpenConfigAction.Invoke(resource.RulesetId, config => config.generic.Skin = resource.Name);
|
|
}
|
|
else {
|
|
_destination.SetSkin(resource.Name);
|
|
OpenConfigAction.Invoke(resource.RulesetId, null);
|
|
}
|
|
}
|
|
}
|
|
}
|