private void btnApplyChanges_Click(object sender, EventArgs e)
        {
            if (listBreakpoints.SelectedIndices.Count == 0)
            {
                return;
            }
            Types.Breakpoint bp = (Types.Breakpoint)listBreakpoints.SelectedItems[0].Tag;

            bool addressChanged = (bp.Address != GR.Convert.ToI32(editBPAddress.Text, 16));

            bp.Conditions = editTriggerConditions.Text;
            if (addressChanged)
            {
                bp.Address = GR.Convert.ToI32(editBPAddress.Text, 16);
            }
            bp.TriggerOnExec  = checkTriggerExec.Checked;
            bp.TriggerOnLoad  = checkTriggerLoad.Checked;
            bp.TriggerOnStore = checkTriggerStore.Checked;
            bp.RemoteIndex    = -1;

            RaiseDocEvent(new DocEvent(DocEvent.Type.BREAKPOINT_REMOVED, bp));

            if (addressChanged)
            {
                // address was changed, so line index doesn't apply anymore
                bp.LineIndex = -1;
            }
            RaiseDocEvent(new DocEvent(DocEvent.Type.BREAKPOINT_ADDED, bp));
        }
        private void btnDeleteBreakpoint_Click(object sender, EventArgs e)
        {
            if (listBreakpoints.SelectedIndices.Count == 0)
            {
                return;
            }
            Types.Breakpoint bp = (Types.Breakpoint)listBreakpoints.SelectedItems[0].Tag;

            RaiseDocEvent(new DocEvent(DocEvent.Type.BREAKPOINT_REMOVED, bp));
        }
 public void UpdateBreakpoint(Types.Breakpoint Breakpoint)
 {
     foreach (ListViewItem item in listBreakpoints.Items)
     {
         if (item.Tag == Breakpoint)
         {
             AdjustItemText(item, Breakpoint);
             return;
         }
     }
 }
 public void RemoveBreakpoint(Types.Breakpoint Breakpoint)
 {
     foreach (ListViewItem item in listBreakpoints.Items)
     {
         if (item.Tag == Breakpoint)
         {
             listBreakpoints.Items.Remove(item);
             return;
         }
     }
 }
        public void AddBreakpoint(Types.Breakpoint Breakpoint)
        {
            ListViewItem item = new ListViewItem();

            for (int i = 0; i < 5; ++i)
            {
                item.SubItems.Add("");
            }
            AdjustItemText(item, Breakpoint);
            item.Tag = Breakpoint;

            listBreakpoints.Items.Add(item);
        }
        private void listBreakpoints_SelectedIndexChanged(object sender, EventArgs e)
        {
            btnDeleteBreakpoint.Enabled = (listBreakpoints.SelectedItems.Count != 0);
            btnApplyChanges.Enabled     = false;

            if (listBreakpoints.SelectedItems.Count > 0)
            {
                Types.Breakpoint bp = (Types.Breakpoint)listBreakpoints.SelectedItems[0].Tag;

                editBPAddress.Text         = bp.Address.ToString("x");
                checkTriggerExec.Checked   = bp.TriggerOnExec;
                checkTriggerLoad.Checked   = bp.TriggerOnLoad;
                checkTriggerStore.Checked  = bp.TriggerOnStore;
                editTriggerConditions.Text = bp.Conditions;
            }
        }
        private void UpdateApplyButton()
        {
            if (listBreakpoints.SelectedItems.Count > 0)
            {
                Types.Breakpoint bp = (Types.Breakpoint)listBreakpoints.SelectedItems[0].Tag;

                if ((bp.Address != GR.Convert.ToI32(editBPAddress.Text, 16)) ||
                    (bp.Conditions != editTriggerConditions.Text) ||
                    (bp.TriggerOnExec != checkTriggerExec.Checked) ||
                    (bp.TriggerOnLoad != checkTriggerLoad.Checked) ||
                    (bp.TriggerOnStore != checkTriggerStore.Checked))
                {
                    btnApplyChanges.Enabled = true;
                }
                else
                {
                    btnApplyChanges.Enabled = false;
                }
            }
            else
            {
                btnApplyChanges.Enabled = false;
            }
        }
Beispiel #8
0
 public DocEvent(Type EventType, Types.Breakpoint Breakpoint, int LineIndex)
 {
     this.EventType  = EventType;
     this.Breakpoint = Breakpoint;
     this.LineIndex  = LineIndex;
 }
Beispiel #9
0
 public DocEvent(Type EventType, Types.Breakpoint Breakpoint)
 {
     this.EventType  = EventType;
     this.Breakpoint = Breakpoint;
 }
        private void AdjustItemText(ListViewItem Item, Types.Breakpoint Breakpoint)
        {
            if (Breakpoint.RemoteIndex == -1)
            {
                Item.Text = "-";
            }
            else
            {
                Item.Text = Breakpoint.RemoteIndex.ToString();
            }

            if (Breakpoint.DocumentFilename != "RetroDevStudio.DebugBreakpoints")
            {
                Item.SubItems[1].Text = Breakpoint.DocumentFilename;
            }
            else
            {
                Item.SubItems[1].Text = "---";
            }

            if (Breakpoint.LineIndex == -1)
            {
                Item.SubItems[2].Text = "-";
            }
            else
            {
                Item.SubItems[2].Text = (Breakpoint.LineIndex + 1).ToString();
            }

            string triggerDesc = "";

            if (Breakpoint.TriggerOnExec)
            {
                triggerDesc += "X";
            }
            if (Breakpoint.TriggerOnStore)
            {
                triggerDesc += "S";
            }
            if (Breakpoint.TriggerOnLoad)
            {
                triggerDesc += "L";
            }
            Item.SubItems[3].Text = triggerDesc;

            Item.SubItems[4].Text = Breakpoint.Conditions;

            if (Breakpoint.AddressSource != null)
            {
                if (Breakpoint.Address != -1)
                {
                    Item.SubItems[5].Text = Breakpoint.AddressSource + " ($" + Breakpoint.Address.ToString("x4") + ")";
                }
                else
                {
                    Item.SubItems[5].Text = Breakpoint.AddressSource;
                }
            }
            else if (Breakpoint.Address != -1)
            {
                Item.SubItems[5].Text = "$" + Breakpoint.Address.ToString("x4");
            }
            else
            {
                Item.SubItems[5].Text = "----";
            }
        }