private void macroToolStripMenuItem_Click(object sender, EventArgs e) { MacroEditor macroEditor = new MacroEditor("", IRServer, _BlastFunc, _LearnIrFunc, _ProcessCommand); macroEditor.ShowDialog(this); RefreshMacroList(macroEditor.MacroName); if (macroEditor.DialogResult == DialogResult.OK) { CommandGeneratedEventArgs args = new CommandGeneratedEventArgs(); args.test = false; args.command = Common.CmdPrefixMacro + macroEditor.MacroName; OnCommandGenerated(args); } }
// -------------------------------------------------------------------------------------------------- #region Command Forms calls /// <summary> /// Show the configuration window for the specified command without its arguments. /// </summary> /// <param name="cmdName">Command name to be configured. (Default: take the one selected in the command-list)</param> /// <returns>command with its arguments, or null if cancel or error</returns> public string CommandFetch(string cmdName=null, bool modify=false) { string newCommand = null; if (cmdName == null) cmdName = SelectedCommand; if (cmdName == null) return newCommand; try { if (cmdName.Equals(Common.UITextIf, StringComparison.OrdinalIgnoreCase)) { IfCommand ifCommand = new IfCommand(); if (ifCommand.ShowDialog(this) == DialogResult.OK) newCommand = Common.CmdPrefixIf + ifCommand.CommandString; } else if (cmdName.Equals(Common.UITextLabel, StringComparison.OrdinalIgnoreCase)) { LabelNameDialog labelDialog = new LabelNameDialog(); if (labelDialog.ShowDialog(this) == DialogResult.OK) newCommand = Common.CmdPrefixLabel + labelDialog.LabelName; } else if (cmdName.Equals(Common.UITextGotoLabel, StringComparison.OrdinalIgnoreCase)) { LabelNameDialog labelDialog = new LabelNameDialog(); if (labelDialog.ShowDialog(this) == DialogResult.OK) newCommand = Common.CmdPrefixGotoLabel + labelDialog.LabelName; } else if (cmdName.Equals(Common.UITextSetVar, StringComparison.OrdinalIgnoreCase)) { SetVariableCommand setVariableCommand = new SetVariableCommand(); if (setVariableCommand.ShowDialog(this) == DialogResult.OK) newCommand = Common.CmdPrefixSetVar + setVariableCommand.CommandString; } else if (cmdName.Equals(Common.UITextClearVars, StringComparison.OrdinalIgnoreCase)) { newCommand = Common.CmdPrefixClearVars; } else if (cmdName.Equals(Common.UITextLoadVars, StringComparison.OrdinalIgnoreCase)) { VariablesFileDialog varsFileDialog = new VariablesFileDialog(); if (varsFileDialog.ShowDialog(this) == DialogResult.OK) newCommand = Common.CmdPrefixLoadVars + varsFileDialog.FileName; } else if (cmdName.Equals(Common.UITextSaveVars, StringComparison.OrdinalIgnoreCase)) { VariablesFileDialog varsFileDialog = new VariablesFileDialog(); if (varsFileDialog.ShowDialog(this) == DialogResult.OK) newCommand = Common.CmdPrefixSaveVars + varsFileDialog.FileName; } else if (cmdName.Equals(Common.UITextRun, StringComparison.OrdinalIgnoreCase)) { ExternalProgram externalProgram = new ExternalProgram(); if (externalProgram.ShowDialog(this) == DialogResult.OK) newCommand = Common.CmdPrefixRun + externalProgram.CommandString; } else if (cmdName.Equals(Common.UITextPause, StringComparison.OrdinalIgnoreCase)) { PauseTime pauseTime = new PauseTime(); if (pauseTime.ShowDialog(this) == DialogResult.OK) newCommand = Common.CmdPrefixPause + pauseTime.Time; } else if (cmdName.Equals(Common.UITextSerial, StringComparison.OrdinalIgnoreCase)) { SerialCommand serialCommand = new SerialCommand(); if (serialCommand.ShowDialog(this) == DialogResult.OK) newCommand = Common.CmdPrefixSerial + serialCommand.CommandString; } else if (cmdName.Equals(Common.UITextWindowMsg, StringComparison.OrdinalIgnoreCase)) { MessageCommand messageCommand = new MessageCommand(); if (messageCommand.ShowDialog(this) == DialogResult.OK) newCommand = Common.CmdPrefixWindowMsg + messageCommand.CommandString; } else if (cmdName.Equals(Common.UITextTcpMsg, StringComparison.OrdinalIgnoreCase)) { TcpMessageCommand tcpMessageCommand = new TcpMessageCommand(); if (tcpMessageCommand.ShowDialog(this) == DialogResult.OK) newCommand = Common.CmdPrefixTcpMsg + tcpMessageCommand.CommandString; } else if (cmdName.Equals(Common.UITextHttpMsg, StringComparison.OrdinalIgnoreCase)) { HttpMessageCommand httpMessageCommand = new HttpMessageCommand(); if (httpMessageCommand.ShowDialog(this) == DialogResult.OK) newCommand = Common.CmdPrefixHttpMsg + httpMessageCommand.CommandString; } else if (cmdName.Equals(Common.UITextKeys, StringComparison.OrdinalIgnoreCase)) { KeysCommand keysCommand = new KeysCommand(); if (keysCommand.ShowDialog(this) == DialogResult.OK) newCommand = Common.CmdPrefixKeys + keysCommand.CommandString; } else if (cmdName.Equals(Common.UITextMouse, StringComparison.OrdinalIgnoreCase)) { MouseCommand mouseCommand = new MouseCommand(); if (mouseCommand.ShowDialog(this) == DialogResult.OK) newCommand = Common.CmdPrefixMouse + mouseCommand.CommandString; } else if (cmdName.Equals(Common.UITextEject, StringComparison.OrdinalIgnoreCase)) { EjectCommand ejectCommand = new EjectCommand(); if (ejectCommand.ShowDialog(this) == DialogResult.OK) newCommand = Common.CmdPrefixEject + ejectCommand.CommandString; } else if (cmdName.Equals(Common.UITextPopup, StringComparison.OrdinalIgnoreCase)) { PopupMessage popupMessage = new PopupMessage(); if (popupMessage.ShowDialog(this) == DialogResult.OK) newCommand = Common.CmdPrefixPopup + popupMessage.CommandString; } else if (cmdName.Equals(Common.UITextVirtualKB, StringComparison.OrdinalIgnoreCase)) { newCommand = Common.CmdPrefixVirtualKB; } else if (cmdName.Equals(Common.UITextSmsKB, StringComparison.OrdinalIgnoreCase)) { newCommand = Common.CmdPrefixSmsKB; } else if (cmdName.Equals(Common.UITextBeep, StringComparison.OrdinalIgnoreCase)) { BeepCommand beepCommand = new BeepCommand(); if (beepCommand.ShowDialog(this) == DialogResult.OK) newCommand = Common.CmdPrefixBeep + beepCommand.CommandString; } else if (cmdName.Equals(Common.UITextSound, StringComparison.OrdinalIgnoreCase)) { OpenFileDialog openFileDialog = new OpenFileDialog(); openFileDialog.Filter = "Wave Files|*.wav"; openFileDialog.Multiselect = false; if (openFileDialog.ShowDialog(this) == DialogResult.OK) newCommand = Common.CmdPrefixSound + openFileDialog.FileName; } else if (cmdName.Equals(Common.UITextDisplayMode, StringComparison.OrdinalIgnoreCase)) { DisplayModeCommand displayModeCommand = new DisplayModeCommand(); if (displayModeCommand.ShowDialog(this) == DialogResult.OK) newCommand = Common.CmdPrefixDisplayMode + displayModeCommand.CommandString; } else if (cmdName.Equals(Common.UITextStandby, StringComparison.OrdinalIgnoreCase)) { newCommand = Common.CmdPrefixStandby; } else if (cmdName.Equals(Common.UITextHibernate, StringComparison.OrdinalIgnoreCase)) { newCommand = Common.CmdPrefixHibernate; } else if (cmdName.Equals(Common.UITextReboot, StringComparison.OrdinalIgnoreCase)) { newCommand = Common.CmdPrefixReboot; } else if (cmdName.Equals(Common.UITextShutdown, StringComparison.OrdinalIgnoreCase)) { newCommand = Common.CmdPrefixShutdown; } else if (cmdName.Equals(Common.CmdPrefixTranslator, StringComparison.OrdinalIgnoreCase)) { newCommand = Common.CmdPrefixTranslator; } else if (cmdName.StartsWith(Common.CmdPrefixBlast, StringComparison.OrdinalIgnoreCase)) { string[] ports = null; if (IRServer != null) ports = IRServer.Ports; string name = cmdName.Substring(Common.CmdPrefixBlast.Length); IREditor learnIR = new IREditor(_LearnIrFunc, _BlastFunc, ports, name); if (learnIR.ShowDialog(this) == DialogResult.OK) { newCommand = Common.CmdPrefixBlast + learnIR.CommandString; name = learnIR.BlastName; } RefreshBlastList(name); } else if (cmdName.StartsWith(Common.CmdPrefixMacro, StringComparison.OrdinalIgnoreCase)) { if (modify) { string command = cmdName.Substring(Common.CmdPrefixBlast.Length); string fileName = Path.Combine(FolderMacros, command + Common.FileExtensionMacro); if (File.Exists(fileName)) { MacroEditor macroEditor = new MacroEditor(command, IRServer, _BlastFunc, _LearnIrFunc, _ProcessCommand); macroEditor.ShowDialog(this); RefreshMacroList(macroEditor.MacroName); if (macroEditor.DialogResult == DialogResult.OK) { cmdName = Common.CmdPrefixMacro + macroEditor.MacroName; } else { cmdName = null; } } else { MessageBox.Show(this, "File not found: " + fileName, "Macro file missing", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } } newCommand = cmdName; } else { throw new CommandStructureException(String.Format("Unknown macro command ({0})", cmdName)); } } catch (Exception ex) { IrssLog.Error(ex); MessageBox.Show(this, ex.Message, "Failed to add macro command", MessageBoxButtons.OK, MessageBoxIcon.Error); } return newCommand; }
// -------------------------------------------------------------------------------------------------- #region Command Forms calls /// <summary> /// Show the configuration window for the specified command without its arguments. /// </summary> /// <param name="cmdName">Command name to be configured. (Default: take the one selected in the command-list)</param> /// <returns>command with its arguments, or null if cancel or error</returns> public string CommandFetch(string cmdName = null, bool modify = false) { string newCommand = null; if (cmdName == null) { cmdName = SelectedCommand; } if (cmdName == null) { return(newCommand); } try { if (cmdName.Equals(Common.UITextIf, StringComparison.OrdinalIgnoreCase)) { IfCommand ifCommand = new IfCommand(); if (ifCommand.ShowDialog(this) == DialogResult.OK) { newCommand = Common.CmdPrefixIf + ifCommand.CommandString; } } else if (cmdName.Equals(Common.UITextLabel, StringComparison.OrdinalIgnoreCase)) { LabelNameDialog labelDialog = new LabelNameDialog(); if (labelDialog.ShowDialog(this) == DialogResult.OK) { newCommand = Common.CmdPrefixLabel + labelDialog.LabelName; } } else if (cmdName.Equals(Common.UITextGotoLabel, StringComparison.OrdinalIgnoreCase)) { LabelNameDialog labelDialog = new LabelNameDialog(); if (labelDialog.ShowDialog(this) == DialogResult.OK) { newCommand = Common.CmdPrefixGotoLabel + labelDialog.LabelName; } } else if (cmdName.Equals(Common.UITextSetVar, StringComparison.OrdinalIgnoreCase)) { SetVariableCommand setVariableCommand = new SetVariableCommand(); if (setVariableCommand.ShowDialog(this) == DialogResult.OK) { newCommand = Common.CmdPrefixSetVar + setVariableCommand.CommandString; } } else if (cmdName.Equals(Common.UITextClearVars, StringComparison.OrdinalIgnoreCase)) { newCommand = Common.CmdPrefixClearVars; } else if (cmdName.Equals(Common.UITextLoadVars, StringComparison.OrdinalIgnoreCase)) { VariablesFileDialog varsFileDialog = new VariablesFileDialog(); if (varsFileDialog.ShowDialog(this) == DialogResult.OK) { newCommand = Common.CmdPrefixLoadVars + varsFileDialog.FileName; } } else if (cmdName.Equals(Common.UITextSaveVars, StringComparison.OrdinalIgnoreCase)) { VariablesFileDialog varsFileDialog = new VariablesFileDialog(); if (varsFileDialog.ShowDialog(this) == DialogResult.OK) { newCommand = Common.CmdPrefixSaveVars + varsFileDialog.FileName; } } else if (cmdName.Equals(Common.UITextRun, StringComparison.OrdinalIgnoreCase)) { ExternalProgram externalProgram = new ExternalProgram(); if (externalProgram.ShowDialog(this) == DialogResult.OK) { newCommand = Common.CmdPrefixRun + externalProgram.CommandString; } } else if (cmdName.Equals(Common.UITextPause, StringComparison.OrdinalIgnoreCase)) { PauseTime pauseTime = new PauseTime(); if (pauseTime.ShowDialog(this) == DialogResult.OK) { newCommand = Common.CmdPrefixPause + pauseTime.Time; } } else if (cmdName.Equals(Common.UITextSerial, StringComparison.OrdinalIgnoreCase)) { SerialCommand serialCommand = new SerialCommand(); if (serialCommand.ShowDialog(this) == DialogResult.OK) { newCommand = Common.CmdPrefixSerial + serialCommand.CommandString; } } else if (cmdName.Equals(Common.UITextWindowMsg, StringComparison.OrdinalIgnoreCase)) { MessageCommand messageCommand = new MessageCommand(); if (messageCommand.ShowDialog(this) == DialogResult.OK) { newCommand = Common.CmdPrefixWindowMsg + messageCommand.CommandString; } } else if (cmdName.Equals(Common.UITextTcpMsg, StringComparison.OrdinalIgnoreCase)) { TcpMessageCommand tcpMessageCommand = new TcpMessageCommand(); if (tcpMessageCommand.ShowDialog(this) == DialogResult.OK) { newCommand = Common.CmdPrefixTcpMsg + tcpMessageCommand.CommandString; } } else if (cmdName.Equals(Common.UITextHttpMsg, StringComparison.OrdinalIgnoreCase)) { HttpMessageCommand httpMessageCommand = new HttpMessageCommand(); if (httpMessageCommand.ShowDialog(this) == DialogResult.OK) { newCommand = Common.CmdPrefixHttpMsg + httpMessageCommand.CommandString; } } else if (cmdName.Equals(Common.UITextKeys, StringComparison.OrdinalIgnoreCase)) { KeysCommand keysCommand = new KeysCommand(); if (keysCommand.ShowDialog(this) == DialogResult.OK) { newCommand = Common.CmdPrefixKeys + keysCommand.CommandString; } } else if (cmdName.Equals(Common.UITextMouse, StringComparison.OrdinalIgnoreCase)) { MouseCommand mouseCommand = new MouseCommand(); if (mouseCommand.ShowDialog(this) == DialogResult.OK) { newCommand = Common.CmdPrefixMouse + mouseCommand.CommandString; } } else if (cmdName.Equals(Common.UITextEject, StringComparison.OrdinalIgnoreCase)) { EjectCommand ejectCommand = new EjectCommand(); if (ejectCommand.ShowDialog(this) == DialogResult.OK) { newCommand = Common.CmdPrefixEject + ejectCommand.CommandString; } } else if (cmdName.Equals(Common.UITextPopup, StringComparison.OrdinalIgnoreCase)) { PopupMessage popupMessage = new PopupMessage(); if (popupMessage.ShowDialog(this) == DialogResult.OK) { newCommand = Common.CmdPrefixPopup + popupMessage.CommandString; } } else if (cmdName.Equals(Common.UITextVirtualKB, StringComparison.OrdinalIgnoreCase)) { newCommand = Common.CmdPrefixVirtualKB; } else if (cmdName.Equals(Common.UITextSmsKB, StringComparison.OrdinalIgnoreCase)) { newCommand = Common.CmdPrefixSmsKB; } else if (cmdName.Equals(Common.UITextBeep, StringComparison.OrdinalIgnoreCase)) { BeepCommand beepCommand = new BeepCommand(); if (beepCommand.ShowDialog(this) == DialogResult.OK) { newCommand = Common.CmdPrefixBeep + beepCommand.CommandString; } } else if (cmdName.Equals(Common.UITextSound, StringComparison.OrdinalIgnoreCase)) { OpenFileDialog openFileDialog = new OpenFileDialog(); openFileDialog.Filter = "Wave Files|*.wav"; openFileDialog.Multiselect = false; if (openFileDialog.ShowDialog(this) == DialogResult.OK) { newCommand = Common.CmdPrefixSound + openFileDialog.FileName; } } else if (cmdName.Equals(Common.UITextDisplayMode, StringComparison.OrdinalIgnoreCase)) { DisplayModeCommand displayModeCommand = new DisplayModeCommand(); if (displayModeCommand.ShowDialog(this) == DialogResult.OK) { newCommand = Common.CmdPrefixDisplayMode + displayModeCommand.CommandString; } } else if (cmdName.Equals(Common.UITextStandby, StringComparison.OrdinalIgnoreCase)) { newCommand = Common.CmdPrefixStandby; } else if (cmdName.Equals(Common.UITextHibernate, StringComparison.OrdinalIgnoreCase)) { newCommand = Common.CmdPrefixHibernate; } else if (cmdName.Equals(Common.UITextReboot, StringComparison.OrdinalIgnoreCase)) { newCommand = Common.CmdPrefixReboot; } else if (cmdName.Equals(Common.UITextShutdown, StringComparison.OrdinalIgnoreCase)) { newCommand = Common.CmdPrefixShutdown; } else if (cmdName.Equals(Common.CmdPrefixTranslator, StringComparison.OrdinalIgnoreCase)) { newCommand = Common.CmdPrefixTranslator; } else if (cmdName.StartsWith(Common.CmdPrefixBlast, StringComparison.OrdinalIgnoreCase)) { string[] ports = null; if (IRServer != null) { ports = IRServer.Ports; } string name = cmdName.Substring(Common.CmdPrefixBlast.Length); IREditor learnIR = new IREditor(_LearnIrFunc, _BlastFunc, ports, name); if (learnIR.ShowDialog(this) == DialogResult.OK) { newCommand = Common.CmdPrefixBlast + learnIR.CommandString; name = learnIR.BlastName; } RefreshBlastList(name); } else if (cmdName.StartsWith(Common.CmdPrefixMacro, StringComparison.OrdinalIgnoreCase)) { if (modify) { string command = cmdName.Substring(Common.CmdPrefixBlast.Length); string fileName = Path.Combine(FolderMacros, command + Common.FileExtensionMacro); if (File.Exists(fileName)) { MacroEditor macroEditor = new MacroEditor(command, IRServer, _BlastFunc, _LearnIrFunc, _ProcessCommand); macroEditor.ShowDialog(this); RefreshMacroList(macroEditor.MacroName); if (macroEditor.DialogResult == DialogResult.OK) { cmdName = Common.CmdPrefixMacro + macroEditor.MacroName; } else { cmdName = null; } } else { MessageBox.Show(this, "File not found: " + fileName, "Macro file missing", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } } newCommand = cmdName; } else { throw new CommandStructureException(String.Format("Unknown macro command ({0})", cmdName)); } } catch (Exception ex) { IrssLog.Error(ex); MessageBox.Show(this, ex.Message, "Failed to add macro command", MessageBoxButtons.OK, MessageBoxIcon.Error); } return(newCommand); }