Beispiel #1
0
        public void InsertCommand(int index, IMacroCommand command)
        {
            lock (commands.SyncRoot) {
                if (index >= 0)
                {
                    // Insert item
                    commands.Insert(index++, command);

                    if (pause > 0 && command.CommandType == MacroCommandType.Active)
                    {
                        IMacroCommand waitCmd = new WaitMacroCommand(pause);

                        if (index >= 0)
                        {
                            commands.Insert(index, waitCmd);
                        }
                        else
                        {
                            commands.Add(waitCmd);
                        }
                    }
                }
                else
                {
                    // Add item
                    if (pendingPause && pause > 0)
                    {
                        IMacroCommand waitCmd = new WaitMacroCommand(pause);
                        commands.Add(waitCmd);
                        pendingPause = false;
                    }

                    commands.Add(command);

                    if (command.CommandType == MacroCommandType.Active)
                    {
                        pendingPause = true;
                    }
                }
            }
        }