//Methods //Commands private void AddItemToList(object param) { var item = param as string; switch (param) { case "Scenario": Scenarios.Add(new Scenario()); SelectedScenario = Scenarios.Last(); CommandEditItem.Execute(SelectedScenario); break; case "Macro": MacroList.Add(new Macro()); SelectedMacro = MacroList.Last(); CommandEditItem.Execute(SelectedMacro); break; case "ActionTemplate": ActionTemplate newTemplate = new ActionTemplate(); ActionTemplates.Insert(ActionTemplates.Count - 1, newTemplate); SelectedTemplate = newTemplate; CommandEditItem.Execute(SelectedTemplate); break; default: Logger.GetLogger().CatchException("ViewModel", "AddItemToList", $"Unknown param{{{item}}}"); throw new Exception(); } }
public CommandResult ShowMacroConfigDialog() { MacroList dlg = new MacroList(); GCUtil.ShowModalDialog(_frame, dlg); return(CommandResult.Success); }
public override CommandResult InternalExecute(ICommandTarget target, params IAdaptable[] args) { IPoderosaMainWindow window = CommandTargetUtil.AsWindow(target); MacroList dlg = new MacroList(); dlg.ShowDialog(window.AsForm()); return CommandResult.Succeeded; }
private void DelMacro(object param) { if (param is Macro macro && macro != null) { var index = MacroList.IndexOf(macro); MacroList.Remove(macro); }
//Commands private void AddMacro(object param) { Macro macro = param as Macro; if (macro == null) { throw new Exception(); } MacroList.Add(macro); }
public static void LoadMacroListFromDisk(string fullPath) { var binaryFormatter = new BinaryFormatter { AssemblyFormat = FormatterAssemblyStyle.Simple }; if (File.Exists(fullPath)) { using (var fs = File.Open(fullPath, FileMode.Open)) { Macros = (MacroList)binaryFormatter.Deserialize(fs); } } }
private void RemoveItemFromList(object param) { if (param is Scenario scenario) { var index = Scenarios.IndexOf(scenario); Scenarios.Remove(scenario); if (Scenarios.Count > 0) { if (index < Scenarios.Count) { SelectedScenario = Scenarios[index]; } else { SelectedScenario = Scenarios[index - 1]; } } } else if (param is Macro macro) { var index = MacroList.IndexOf(macro); MacroList.Remove(macro); if (MacroList.Count > 0) { if (index < MacroList.Count) { SelectedMacro = MacroList[index]; } else { SelectedMacro = MacroList[index - 1]; } } } else if (param is ActionTemplate template) { if (template.PlaceHolder == true) { return; } var index = ActionTemplates.IndexOf(template); ActionTemplates.Remove(template); template.HotKey = null; } else { Logger.GetLogger().CatchException("ViewModel", "RemoveItemFromList", "Unknown param"); throw new Exception(); } }
/// <summary> /// Opens a profile. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void ButtonOpenProfile_OnClick(object sender, RoutedEventArgs e) { try { var dialog = new OpenFileDialog(); dialog.InitialDirectory = App.Settings.AvalonSettings.SaveDirectory; dialog.Filter = "JSON files (*.json)|*.json|Text Files (*.txt)|*.txt|All files (*.*)|*.*"; if (dialog.ShowDialog() == true) { // Load the settings for the file that was selected. App.Settings.LoadSettings(dialog.FileName); // Inject the Conveyor into the Triggers. foreach (var trigger in App.Settings.ProfileSettings.TriggerList) { trigger.Conveyor = Conveyor; } // Important! This is a new profile, we have to reload ALL of the DataList controls // and reset their bindings. AliasList.Reload(); DirectionList.Reload(); MacroList.Reload(); TriggersList.Reload(); VariableList.Reload(); // Show the user that the profile was successfully loaded. Interp.EchoText(""); Interp.EchoText($"--> Loaded {dialog.FileName}.\r\n", AnsiColors.Cyan); // Auto connect if it's setup to do so (this will disconnect from the previous server if it // was connected. if (App.Settings.ProfileSettings.AutoLogin) { Disconnect(); Connect(); } } } catch (Exception ex) { Interp.EchoText(""); Interp.EchoText($"--> An error occured: {ex.Message}.\r\n", AnsiColors.Red); } }
protected override void WndProc(ref Message m) { // Listen for device driver messages switch (m.Msg) { case WM_DEVICECHANGE: { switch (m.WParam.ToInt32()) { case DBT_CUSTOMEVENT: { DEV_BROADCAST_DEVICEHANDLE vol; vol = (DEV_BROADCAST_DEVICEHANDLE)Marshal.PtrToStructure(m.LParam, typeof(DEV_BROADCAST_DEVICEHANDLE)); int key = (int)vol.dbch_data[0]; if (DX1UtilityActive & key > 0) { //IF Utility is active then Highlight DX1 Key that was pressed in G_KeyMap to make //finding and programming keys easier. Don't play the macro. DebugLog.Instance.writeLog("Detected DX1 Key Press Key Number: " + key.ToString() + "was pressed."); G_KeyMap.CurrentCell = G_KeyMap.Rows[key - 1].Cells[0]; if (mKeyProgrammer.DX1KeyDown(key)) { MacroList.ClearSelected(); if (mKeyProgrammer.Active) { //Currently Quick Programming B_QuickPrg.Text = "Key - " + mKeyProgrammer.KeyToProgram; } } } else { DoSomethingWithMacroKeys(vol.dbch_data); } break; } } break; } } base.WndProc(ref m); }
public DataTable MacroHelp(MacroList macros, string[] args) { var dt = new DataTable("MacroHelp"); dt.Columns.Add("Name", typeof(string)); dt.Columns.Add("Description", typeof(string)); dt.Columns.Add("Help", typeof(string)); foreach (var item in macros) { var dr = dt.NewRow(); dt.Rows.Add(dr); var methodAttr = MacroList.GetAttribute <MacroMethodAttribute>(item); dr["Name"] = methodAttr.Name ?? item.MethodInfo.Name; dr["Description"] = methodAttr.Description; dr["Help"] = MacroList.CreateHelp(item.MethodInfo); } return(dt); }
/// +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+= /// <summary> /// Gets a count of the collection /// </summary> public int Count() { return(MacroList.Count()); }
// #################################################################### // ##### IEnumerable Members // #################################################################### #region IEnumerable Members System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { return(MacroList.GetEnumerator()); }
// #################################################################### // ##### IEnumerable<GerberLine_AMCode> Members // #################################################################### #region IEnumerable<GerberLine_AMCode> Members IEnumerator <GerberLine_AMCode> IEnumerable <GerberLine_AMCode> .GetEnumerator() { return(MacroList.GetEnumerator()); }
bool ICollection <GerberLine_AMCode> .Remove(GerberLine_AMCode item) { return(MacroList.Remove(item)); }
/// <summary> /// Execute macro statement /// </summary> /// <param name="query"></param> /// <returns></returns> public DataSet Execute(string query) { query = RegexUtil.Sub(query, "^[ \t]*@[ \t]*", ""); var tokens = query.Split(new char[] { ' ', '\t', '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries); #region Invoke Macro if (macros == null) { macros = new MacroList(); macros.AddInstance(macroLib); } var mx = macros.Find(p => { var m = MacroList.GetAttribute <MacroMethodAttribute>(p).Name ?? p.MethodInfo.Name; return(m.Equals(tokens[0], StringComparison.InvariantCultureIgnoreCase)); }); if (mx == null) { throw new ArgumentException("macro not found: " + tokens[0]); } object result = null; try { if (mx.MethodInfo.Name.Equals("MacroHelp", StringComparison.InvariantCultureIgnoreCase)) { result = DynamicCode.InvokeMethod(mx.Instance, "MacroHelp", macros, tokens); } else { var parameters = MacroList.CreateParameter(mx.MethodInfo, tokens); result = DynamicCode.InvokeMethod(mx.Instance, mx.MethodInfo.Name, parameters); } } catch (Exception ex) { throw new ArgumentException(ex.Message + Environment.NewLine + MacroList.CreateHelp(mx.MethodInfo), ex); } #endregion #region Return DataSet var ds = new DataSet("MacroResults"); if (result is DataTable) { ds.Tables.Add(result as DataTable); } else { var dt = new DataTable(); dt.Columns.Add("Value", mx.MethodInfo.ReturnType); dt.Rows.Add(result); ds.Tables.Add(dt); } #endregion return(ds); }