Exemple #1
0
        /// -------------------------------------------------------------------------------------------------
        /// <summary> Event handler. Called by Codewindow for mouse down events. </summary>
        ///
        /// <remarks> 18/09/2018. </remarks>
        ///
        /// <param name="sender"> Source of the event. </param>
        /// <param name="e">	  Mouse event information. </param>
        /// -------------------------------------------------------------------------------------------------
        private void Codewindow_MouseDown(object sender,
                                          System.Windows.Forms.MouseEventArgs e)
        {
            Scintilla s = (Scintilla)sender;

            if (e.Button == MouseButtons.Right)
            {
                ContextMenu cm = new ContextMenu();

                int position = s.CharPositionFromPoint(e.X, e.Y);


                int linenum = s.LineFromPosition(position);
                var line    = s.Lines[linenum];

                TraceFile tf = TraceFile.FindTraceFile((string)s.Tag);
                if (tf != null)
                {
                    LineData ld   = tf.GetLine(linenum);
                    string   word = s.GetWordFromPosition(position);

                    //step mode and on valid line add a set pc option
                    if (tf.IsLineLegal(linenum) && Program.InStepMode)
                    {
                        cm.MenuItems.Add(new CustomMenuItem("Set PC to $" + ld.address.ToString("X4"), new EventHandler(ContextSetPC), (object)ld.address));
                    }

                    if (!string.IsNullOrEmpty(word))
                    {
                        Labels.Label l = Labels.FindLabel(word);
                        if (l != null)
                        {
                            if (!l.function)
                            {
                                cm.MenuItems.Add(new CustomMenuItem("Add Variable " + l.label + " to Watch", new EventHandler(ContextAddToWatch), (object)l));
                            }
                        }
                    }


                    cm.MenuItems.Add("item2");
                    //ContextMenu cm = new ContextMenu();
                    //{
                    //	MenuItem mi = new MenuItem("coming soon2 "+word);//  ,   (s, ea) => this.UndoRedo.Undo());
                    //	cm.MenuItems.Add(mi);
                    //}
                    tf.codefile.codewindow.ContextMenu = cm;
                }
            }

            Console.WriteLine("hello");
        }
Exemple #2
0
        /// -------------------------------------------------------------------------------------------------
        /// <summary> Event handler. Called by Codewindow for mouse down events. </summary>
        ///
        /// <remarks> 18/09/2018. </remarks>
        ///
        /// <param name="sender"> Source of the event. </param>
        /// <param name="e">	  Mouse event information. </param>
        /// -------------------------------------------------------------------------------------------------
        private void Codewindow_MouseDown(object sender,
                                          System.Windows.Forms.MouseEventArgs e)
        {
            Scintilla s = (Scintilla)sender;

            if (e.Button == MouseButtons.Right)
            {
                ContextMenu cm = new ContextMenu();

                int position = s.CharPositionFromPoint(e.X, e.Y);


                int linenum = s.LineFromPosition(position);
                var line    = s.Lines[linenum];

                TraceFile tf = TraceFile.FindTraceFile((string)s.Tag);
                if (tf != null)
                {
                    LineData ld   = tf.GetLine(linenum);
                    string   word = s.GetWordFromPosition(position);

                    //step mode and on valid line add a set pc option
                    if (tf.IsLineLegal(linenum) && Program.InStepMode)
                    {
                        //cm.MenuItems.Add(new CustomMenuItem( "Set PC to $"+ld.address.ToString("X4"),new EventHandler(ContextSetPC),(object)ld.address ) );

                        const uint mask = (1 << BREAKPOINT_MARKER);
                        if ((line.MarkerGet() & mask) > 0)
                        {
                            cm.MenuItems.Add(new CustomMenuItem("Clear breakpoint", new EventHandler(ContextClearBreakpoint), (object)ld.nextAddress.GetLongAddress()));
                        }
                        else
                        {
                            cm.MenuItems.Add(new CustomMenuItem("Set breakpoint", new EventHandler(ContextSetBreakpoint), (object)ld.nextAddress.GetLongAddress()));
                        }
                    }

                    if (!string.IsNullOrEmpty(word))
                    {
                        Labels.Label l = Labels.FindLabel(word);
                        if (l != null)
                        {
                            //if (!l.function)
                            //{
                            cm.MenuItems.Add(new CustomMenuItem("ADD TO WATCH: " + l.label + " " + l.nextAddress.ToString("b") + "", new EventHandler(ContextAddToWatch), (object)l));
                            cm.MenuItems.Add(new CustomMenuItem("JUMP TO: " + l.label + " " + l.nextAddress.ToString("b"), new EventHandler(ContextGotoAddress), (object)l));
                            //}
                        }
                    }


                    //cm.MenuItems.Add("item3");
                    //ContextMenu cm = new ContextMenu();
                    //{
                    //	MenuItem mi = new MenuItem("coming soon2 "+word);//  ,   (s, ea) => this.UndoRedo.Undo());
                    //	cm.MenuItems.Add(mi);
                    //}
                    tf.codefile.codewindow.ContextMenu = cm;
                }
            }
        }
 public int GetCharUnderCursor(Point pos)
 {
     return(_textForm.CharPositionFromPoint(pos.X, pos.Y));
 }
Exemple #4
0
 private void TextArea_MouseClick(object sender, MouseEventArgs e)
 {
     TextArea.GotoPosition(TextArea.CharPositionFromPoint(e.X, e.Y) + 1);
 }