InputText: Added OnDismissAction

This commit is contained in:
spx 2013-03-25 22:28:39 +09:00
parent 4b1d3f776f
commit 959bede3b5
2 changed files with 14 additions and 0 deletions

View File

@ -114,6 +114,7 @@ namespace InputText
internal List<Dictionary<string, string>> OverrideOptions;
internal List<string> Commands;
internal string Command;
internal string DismissAction;
internal BangType Type;
internal ExecuteBangParam(string args)
@ -122,6 +123,7 @@ namespace InputText
this.OverrideOptions = new List<Dictionary<string, string>>();
this.Commands = new List<string>();
this.Command = args.Trim();
this.DismissAction = null;
this.Type = BangType.Unknown;
}
};

View File

@ -43,6 +43,8 @@ namespace InputText
ReadOption("Password", param.Options);
ReadOption("TopMost", param.Options);
param.DismissAction = rm.ReadString("OnDismissAction", "", false);
#region Handle a single parameter
// If our parameter list only contains a single word, then open a textbox immediately
@ -184,7 +186,12 @@ namespace InputText
// If the user cancelled out of the inputbox (ESC key, etc.), then abort
if (sInput == null)
{
// Execute OnDismissAction if defined
if (!String.IsNullOrEmpty(param.DismissAction))
API.Execute(rm.GetSkin(), param.DismissAction);
break;
}
// Ask Rainmeter to set the variable using a bang (http://rainmeter.net/RainCMS/?q=Bangs)
API.Execute(rm.GetSkin(), "!SetVariable " + param.Command + " \"" + sInput + "\"");
@ -201,7 +208,12 @@ namespace InputText
// Execute the line, but if there's a problem (error or they cancel the
// input textbox), then abort
if (!ExecuteLine(param.Commands[i], param.Options, param.OverrideOptions[i]))
{
// Execute OnDismissAction if defined
if (!String.IsNullOrEmpty(param.DismissAction))
API.Execute(rm.GetSkin(), param.DismissAction);
break;
}
// Continue to the next line, if there is any
}