예제 #1
0
파일: Macro.cs 프로젝트: nordie92/Makru
 public void ReadJSON(dynamic json)
 {
     m_active = (json.active == "true" ? true : false);
     SettingsMacro.ReadJSON(json.settings);
     foreach (dynamic d in json.activators)
     {
         if (d.type == "activatorShortcut")
         {
             List <Keys> keys = new List <Keys>();
             foreach (Keys k in d.keys.ToObject <Keys[]>())
             {
                 keys.Add(k);
             }
             Shortcut          shortcut = new Shortcut(keys);
             ActivatorShortcut a        = new ActivatorShortcut(shortcut, d.loop.ToObject <bool>(), this);
             Nodes[0].Nodes.Add(a);
         }
         else if (d.type == "activatorTime")
         {
             ActivatorTime a = new ActivatorTime(
                 DateTime.ParseExact((string)d.time, "HH:mm:ss", CultureInfo.InvariantCulture),
                 TimeSpan.ParseExact((string)d.interval, "dd':'hh':'mm':'ss", CultureInfo.InvariantCulture),
                 this);
             Nodes[0].Nodes.Add(a);
         }
     }
     ReadJSONCommand(json, Nodes[1], 0);
 }
예제 #2
0
 private void tsmiRemove_Click(object sender, EventArgs e)
 {
     if (m_selectedNode.Name == "commands" || m_selectedNode.Name == "activators" || m_selectedNode.Name == "conditions")
     {
         DialogResult result = MessageBox.Show("Mit \"Löschen\" werden in diesem Kontext alle Unterpunkte des geklicken Punktes gelöscht. Wollen Sie wirklich forfahren?", "Alle Unterpunkte löschen", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
         if (result == DialogResult.Yes)
         {
             ActivatorShortcut.RemoveEvents(m_selectedNode);
             ActivatorTime.CancelTimers(m_selectedNode);
             m_selectedNode.Nodes.Clear();
         }
     }
     else if (m_selectedNode.Name == "folder")
     {
         DialogResult result = MessageBox.Show("Wollen Sie \"" + m_selectedNode.Text + "\" und smit auch alle Unterpunkte wirklich löschen?", "Löschen", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
         if (result == DialogResult.Yes)
         {
             ActivatorShortcut.RemoveEvents(m_selectedNode);
             ActivatorTime.CancelTimers(m_selectedNode);
             tvMakros.Nodes.Remove(m_selectedNode);
             m_selectedNode = null;
         }
     }
     else if (m_selectedNode.Name == "makro")
     {
         DialogResult result = MessageBox.Show("Wollen Sie \"" + m_selectedNode.Text + "\" und smit auch alle Unterpunkte wirklich löschen?", "Löschen", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
         if (result == DialogResult.Yes)
         {
             ActivatorShortcut.RemoveEvents(m_selectedNode);
             ActivatorTime.CancelTimers(m_selectedNode);
             tvMakros.Nodes.Remove(m_selectedNode);
             m_selectedNode = null;
         }
     }
     else
     {
         ActivatorShortcut.RemoveEvents(m_selectedNode);
         ActivatorTime.CancelTimers(m_selectedNode);
         tvMakros.Nodes.Remove(m_selectedNode);
         m_selectedNode = null;
     }
 }
예제 #3
0
        private void tsmiNewActivatorShortcut_Click_1(object sender, EventArgs e)
        {
            FormActivatorShortcut frm = new FormActivatorShortcut(new Shortcut(new List <Keys>()), false);

            if (frm.ShowDialog() == DialogResult.OK)
            {
                Macro m = null;
                if (m_selectedNode.Name == "activator")
                {
                    m = (Macro)m_selectedNode.Parent.Parent;
                    ActivatorShortcut a = new ActivatorShortcut(new Shortcut(frm.Shortcut.Keys), frm.LoopExecution, m);
                    m_selectedNode.Parent.Nodes.Add(a);
                }
                else if (m_selectedNode.Name == "activators")
                {
                    m = (Macro)m_selectedNode.Parent;
                    ActivatorShortcut a = new ActivatorShortcut(new Shortcut(frm.Shortcut.Keys), frm.LoopExecution, m);
                    m_selectedNode.Nodes.Insert(0, a);
                }
            }
        }
예제 #4
0
        private void tvMakros_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e)
        {
            tvMakros.SelectedNode = e.Node;

            if (e.Button == MouseButtons.Left)
            {
                if (e.Node.GetType() == typeof(CommandWait))
                {
                    CommandWait c = (CommandWait)tvMakros.SelectedNode;

                    FormCommandWait frm = new FormCommandWait(c.Duration);
                    if (frm.ShowDialog() == DialogResult.OK)
                    {
                        c.Duration = frm.WaitDuration;
                    }
                }
                else if (e.Node.GetType() == typeof(ActivatorShortcut))
                {
                    ActivatorShortcut     a   = (ActivatorShortcut)e.Node;
                    FormActivatorShortcut frm = new FormActivatorShortcut(a.Shortcut, a.LoopexEcution);
                    if (frm.ShowDialog() == DialogResult.OK)
                    {
                        a.Shortcut.Keys = frm.Shortcut.Keys;
                        a.Shortcut      = a.Shortcut;
                        a.LoopexEcution = frm.LoopExecution;
                    }
                }
                else if (e.Node.GetType() == typeof(ActivatorTime))
                {
                    ActivatorTime     a   = (ActivatorTime)e.Node;
                    FormActivatorTime frm = new FormActivatorTime(a.TriggerTime, a.TriggerInterval);
                    if (frm.ShowDialog() == DialogResult.OK)
                    {
                        a.TriggerTime     = frm.TriggerTime;
                        a.TriggerInterval = frm.TriggerInterval;
                    }
                }
                else if (e.Node.GetType() == typeof(CommandInput))
                {
                    Macro            m   = Macro.GetMacroByChild(m_selectedNode);
                    FormCommandInput frm = new FormCommandInput((CommandInput)e.Node, m);
                    if (frm.ShowDialog() == DialogResult.OK)
                    {
                        e.Node.Parent.Nodes.Insert(e.Node.Index, frm.CommandInput);
                        e.Node.Remove();
                    }
                }
                else if (e.Node.GetType() == typeof(ConditionNode))
                {
                    Macro         m  = Macro.GetMacroByChild(tvMakros.SelectedNode);
                    ConditionNode cn = (ConditionNode)e.Node;

                    FormCondition frm = null;
                    if (cn.Condition != null)
                    {
                        frm = new FormCondition(cn.Condition, m);
                    }
                    else
                    {
                        frm = new FormCondition(m);
                    }

                    if (frm.ShowDialog() == DialogResult.OK)
                    {
                        cn.Condition = frm.Condition;
                    }
                }
                else if (e.Node.GetType() == typeof(CommandSetVariable))
                {
                    CommandSetVariable c = (CommandSetVariable)m_selectedNode;
                    Macro m = Macro.GetMacroByChild(c);
                    FormCommandSetVariable frm = new FormCommandSetVariable((c.Variable != null ? c.Variable.Name : ""), c.Output, m);
                    if (frm.ShowDialog() == DialogResult.OK)
                    {
                        c.Variable = frm.Variable;
                        c.Output   = frm.Output;
                    }
                }
                else if (e.Node.GetType() == typeof(CommandReplayMakro))
                {
                    CommandReplayMakro     c   = (CommandReplayMakro)m_selectedNode;
                    FormCommandReplayMacro frm = new FormCommandReplayMacro(c.MacroName);
                    if (frm.ShowDialog() == DialogResult.OK)
                    {
                        c.MacroName = frm.MacroName;
                    }
                }
                else if (e.Node.GetType() == typeof(CommandWriteFile))
                {
                    Macro                m   = Macro.GetMacroByChild(m_selectedNode);
                    CommandWriteFile     c   = (CommandWriteFile)m_selectedNode;
                    FormCommandWriteFile frm = new FormCommandWriteFile(c.FileName, c.FileText, c.AppendFile, m);
                    if (frm.ShowDialog() == DialogResult.OK)
                    {
                        c.FileName   = frm.FileName;
                        c.FileText   = frm.Text;
                        c.AppendFile = frm.AppendFile;
                    }
                }
            }
        }
예제 #5
0
파일: Macros.cs 프로젝트: nordie92/Makru
        private void Makros_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Delete)
            {
                ActivatorTime.CancelTimers(SelectedNode);
                ActivatorShortcut.RemoveEvents(SelectedNode);

                if (SelectedNode.GetType() == typeof(ActivatorShortcut))
                {
                    SelectedNode.Remove();
                }
                else if (SelectedNode.GetType() == typeof(ActivatorTime))
                {
                    SelectedNode.Remove();
                }
                else if (SelectedNode.Name == "command" || SelectedNode.Name == "activator" || SelectedNode.Name == "condition")
                {
                    SelectedNode.Remove();
                }
                else if (SelectedNode.Name == "makro" || SelectedNode.Name == "folder")
                {
                    DialogResult result = MessageBox.Show("Wollen Sie \"" + SelectedNode.Text + "\" und somit auch alle Unterpunkte wirklich löschen?", "Löschen", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
                    if (result == DialogResult.Yes)
                    {
                        Nodes.Remove(SelectedNode);
                    }
                }
            }
            else if (e.KeyCode == Keys.Add)
            {
                if (SelectedNode.GetType() == typeof(CommandWait))
                {
                    CommandWait cw = (CommandWait)SelectedNode;
                    if (cw.Duration + 50 <= 3600000)
                    {
                        cw.Duration += 50;
                    }
                    else
                    {
                        cw.Duration = 3600000;
                    }
                }
            }
            else if (e.KeyCode == Keys.Subtract)
            {
                if (SelectedNode.GetType() == typeof(CommandWait))
                {
                    CommandWait cw = (CommandWait)SelectedNode;
                    if (cw.Duration - 50 >= 20)
                    {
                        cw.Duration -= 50;
                    }
                    else
                    {
                        cw.Duration = 20;
                    }
                }
            }
            else if (e.KeyCode == Keys.NumPad0)
            {
                if (SelectedNode.GetType() == typeof(CommandWait))
                {
                    CommandWait cw = (CommandWait)SelectedNode;
                    cw.Duration = 40;
                }
            }
            else if (e.KeyCode == Keys.NumPad1)
            {
                if (SelectedNode.GetType() == typeof(CommandWait))
                {
                    CommandWait cw = (CommandWait)SelectedNode;
                    cw.Duration = 100;
                }
            }
            else if (e.KeyCode == Keys.NumPad2)
            {
                if (SelectedNode.GetType() == typeof(CommandWait))
                {
                    CommandWait cw = (CommandWait)SelectedNode;
                    cw.Duration = 200;
                }
            }
            else if (e.KeyCode == Keys.Up && m_controlPressed)
            {
                if (SelectedNode.Name == "command" || SelectedNode.Name == "condition" ||
                    SelectedNode.Name == "activator" || SelectedNode.Name == "makro" || SelectedNode.Name == "folder")
                {
                    int tnIndex = SelectedNode.Index;
                    if (tnIndex - 1 >= 0)
                    {
                        TreeNode parentNode = SelectedNode.Parent;
                        TreeNode tn         = SelectedNode;
                        parentNode.Nodes.Remove(tn);
                        parentNode.Nodes.Insert(tnIndex - 1, tn);
                        SelectedNode = tn;
                    }
                }
            }
            else if (e.KeyCode == Keys.Down && m_controlPressed)
            {
                if (SelectedNode.Name == "command" || SelectedNode.Name == "condition" ||
                    SelectedNode.Name == "activator" || SelectedNode.Name == "makro" || SelectedNode.Name == "folder")
                {
                    int      tnIndex    = SelectedNode.Index;
                    TreeNode parentNode = SelectedNode.Parent;
                    if (tnIndex + 1 <= parentNode.Nodes.Count)
                    {
                        TreeNode tn = SelectedNode;
                        parentNode.Nodes.Remove(tn);
                        parentNode.Nodes.Insert(tnIndex + 1, tn);
                        SelectedNode = tn;
                    }
                }
            }
            if (e.KeyCode == Keys.ControlKey)
            {
                m_controlPressed = true;
            }
        }