Example #1
0
        //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);
        }
Example #3
0
 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;
 }
Example #4
0
 private void DelMacro(object param)
 {
     if (param is Macro macro && macro != null)
     {
         var index = MacroList.IndexOf(macro);
         MacroList.Remove(macro);
     }
Example #5
0
        //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);
                }
            }
        }
Example #7
0
 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();
     }
 }
Example #8
0
        /// <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);
        }
Example #10
0
        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);
        }
Example #11
0
 /// +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
 /// <summary>
 /// Gets a count of the collection
 /// </summary>
 public int Count()
 {
     return(MacroList.Count());
 }
Example #12
0
        // ####################################################################
        // ##### IEnumerable Members
        // ####################################################################
        #region IEnumerable Members

        System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
        {
            return(MacroList.GetEnumerator());
        }
Example #13
0
        // ####################################################################
        // ##### IEnumerable<GerberLine_AMCode> Members
        // ####################################################################
        #region IEnumerable<GerberLine_AMCode> Members

        IEnumerator <GerberLine_AMCode> IEnumerable <GerberLine_AMCode> .GetEnumerator()
        {
            return(MacroList.GetEnumerator());
        }
Example #14
0
 bool ICollection <GerberLine_AMCode> .Remove(GerberLine_AMCode item)
 {
     return(MacroList.Remove(item));
 }
Example #15
0
        /// <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);
        }