Beispiel #1
0
 private void NonPlotItem_MouseDown(object sender, MouseEventArgs e)
 {
     // Check if left click
     if (e.Button == MouseButtons.Left)
     {
         // Check if design state
         if (state == States.Design)
         {
             // Set to move state
             designState = DesignStates.Move;
             // Send event
             NonPlotItemMouseDown(this, e);
         }
     }
     else
     {
         Console.WriteLine("NonPlotItem_MouseDown - Right");
         // Check if design state
         if (state == States.Design)
         {
             // Enable "Delete"
             ContextMenu.MenuItems[Constants.CONTEXT_MENU_DELETE].Enabled = true;
         }
         else
         {
             // Disalbe "Delete"
             ContextMenu.MenuItems[Constants.CONTEXT_MENU_DELETE].Enabled = false;
         }
     }
 }
Beispiel #2
0
        public NonPlotItem(Point location, NonPlotItemType new_type)
        {
            ContextMenu mnu_context = new ContextMenu();
            MenuItem    mnu_delete  = new MenuItem();

            // Instantiate
            InitializeComponent();
            Location    = location;
            designState = DesignStates.Normal;
            // Set type
            type = new_type;
            // Handle appearance
            if (type == NonPlotItemType.BooleanItem)
            {
                // Show check box
                checkBoxBool.Visible  = true;
                checkBoxBool.Location = new Point(0, 0);
            }
            else
            {
                // Show text box
                labelVarName.Visible      = true;
                textBoxLongFloat.Visible  = true;
                labelVarName.Location     = new Point(0, 0);
                textBoxLongFloat.Location = new Point(0, labelVarName.Height);
            }
            // Create menus for context menue
            mnu_delete.Index  = 0;
            mnu_delete.Text   = "Delete";
            mnu_delete.Click += new System.EventHandler(this.mnuDelete_Click);
            // Add context menu
            mnu_context.MenuItems.Add(mnu_delete);
            this.ContextMenu = mnu_context;
        }
Beispiel #3
0
 private void dataGridViewVariables_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)
 {
     Console.WriteLine("Mouse down - gridVariableCell");
     // Check if left click
     if (e.Button == MouseButtons.Left)
     {
         // Check if design state
         if (myState == States.Design)
         {
             // Make sure it's valid range
             if (-1 < e.RowIndex)
             {
                 // Get dropoff info
                 VariableManager.Instance.GetDropoffInfo(e.RowIndex, ref myDropOffInfo);
                 // Check if variable type is known
                 if (myDropOffInfo.variableType != VariableType.Unknown)
                 {
                     // Select that item
                     dataGridViewVariables.CurrentCell = dataGridViewVariables.Rows[e.RowIndex].Cells[0];
                     // Prepare for dragging
                     myDesignStates       = DesignStates.VariableDragged;
                     myDropOffInfo.region = RegionTypes.Invalid;
                 }
                 else
                 {
                     // Warning
                     MessageBox.Show("Can't use variable of unknown type");
                 }
             }
         }
     }
 }
Beispiel #4
0
        private void splitContainerMain_Panel1_MouseUp(object sender, MouseEventArgs e)
        {
            Console.WriteLine("Mouse up - splitContainer_Panel1");

            if (myState == States.Design)
            {
                if (myDesignStates == DesignStates.MoveNonPlotItem)
                {
                    myDesignStates = DesignStates.Normal;
                }
            }
        }
Beispiel #5
0
 private void NonPlotItem_MouseUp(object sender, MouseEventArgs e)
 {
     // Check if design  state
     if (state == States.Design && designState == DesignStates.Move)
     {
         // Check if move state
         if (designState == DesignStates.Move)
         {
             // Set to normal state
             designState = DesignStates.Normal;
             // Send event
             NonPlotItemMouseUp(this, e);
         }
     }
 }
Beispiel #6
0
 private void plotItemToolStripMenuItem_Click(object sender, EventArgs e)
 {
     // Set to appropriate state
     myDesignStates = DesignStates.PlaceReadyPlotItem;
 }
Beispiel #7
0
        private void dataGridViewVariables_MouseUp(object sender, MouseEventArgs e)
        {
            Console.WriteLine("Mouse up - dataGridViewVariables");
            VariableInfo vi;

            // Check if left
            if (e.Button == MouseButtons.Left)
            {
                // Check if Variable was dragged
                if (myDesignStates == DesignStates.VariableDragged)
                {
                    //Check if valid range
                    if (myDropOffInfo.region == RegionTypes.NonPlotItemRegion)
                    {
                        // NonPlotItem region is selected
                        // Assign variable to non plot item
                        NonPlotItems.Instance[myDropOffInfo.itemIndex].Assign(myDropOffInfo.variableName, myDropOffInfo.data);
                        // Assign float or long type
                        if (NonPlotItems.Instance[myDropOffInfo.itemIndex].Type != NonPlotItemType.BooleanItem)
                        {
                            vi = VariableManager.Instance.GetVariable(myDropOffInfo.variableName);
                            if (vi.type == VariableType.Float)
                            {
                                NonPlotItems.Instance[myDropOffInfo.itemIndex].Type = NonPlotItemType.FloatItem;
                            }
                            else
                            {
                                NonPlotItems.Instance[myDropOffInfo.itemIndex].Type = NonPlotItemType.LongItem;
                            }
                        }
                        // Update display
                        NonPlotItems.Instance[myDropOffInfo.itemIndex].Invalidate();
                    }
                    else if (myDropOffInfo.region == RegionTypes.LegendRegion)
                    {
                        // Legend region selected
                        // Check if the selected item exists
                        if (PlotItems.Instance[myDropOffInfo.itemIndex].ContainLegendLabel(myDropOffInfo.variableName) == false)
                        {
                            // Doesn't exist
                            // Add variable to legend
                            PlotItems.Instance[myDropOffInfo.itemIndex].AddLegendLabel(myDropOffInfo.variableName);
                            // Update plot
                            PlotItems.Instance[myDropOffInfo.itemIndex].Invalidate();
                        }
                        else
                        {
                            MessageBox.Show("The selected variable already exists");
                        }
                    }
                    else if (myDropOffInfo.region == RegionTypes.XLabelRegion)
                    {
                        // X label region selected
                        // Assign x label to plot
                        PlotItems.Instance[myDropOffInfo.itemIndex].XLabel = myDropOffInfo.variableName;
                        // Refresh grid
                        CaptureSettingManager.Instance.UpdateDisplay();
                        // Update plot
                        PlotItems.Instance[myDropOffInfo.itemIndex].Invalidate();
                    }
                    // Return to normal state
                    myDesignStates = DesignStates.Normal;
                    // Return to normal cursor
                    Cursor = Cursors.Arrow;
                    dataGridViewVariables.Cursor = Cursors.Arrow; // Not sure why, but sometimes I need this
                }
            }
        }
Beispiel #8
0
        private void splitContainerMain_Panel1_MouseDown(object sender, MouseEventArgs e)
        {
            Point p;
            Size  size;
            Point offset;

            //Console.WriteLine("Mouse down - splitContainerMain_Panel1");
            // Check left click
            if (e.Button == MouseButtons.Left)
            {
                // Check if design state
                if (myState == States.Design)
                {
                    // Check Design states
                    switch (myDesignStates)
                    {
                    case DesignStates.Normal:
                        // Calculate offset
                        offset = new Point(0, 0);
                        // Calculate point for searching
                        p = e.Location;
                        p.Offset(offset);
                        // Check if it is inside an item
                        if (NonPlotItems.Instance.Contain(p, out myIndex) == true)
                        {
                            // Get ready for moving that item
                            myDesignStates = DesignStates.MoveNonPlotItem;
                        }
                        break;

                    case DesignStates.PlaceReadyBooleanItem:
                        // Place NonPlotItem (Boolean)
                        p = new Point(e.X, e.Y);
                        // Add new item
                        NonPlotItems.Instance.Add(new NonPlotItem(p, NonPlotItemType.BooleanItem));
                        // Subscribe event handler
                        NonPlotItems.Instance[NonPlotItems.Instance.Count - 1].NonPlotItemMouseDown    += new NonPlotItem.NonPlotItemMouseDownEventHandler(this.Form1_MouseDownFromNonPlotItem);
                        NonPlotItems.Instance[NonPlotItems.Instance.Count - 1].NonPlotItemMouseMove    += new NonPlotItem.NonPlotItemMouseMoveEventHandler(this.Form1_MouseMoveFromNonPlotItem);
                        NonPlotItems.Instance[NonPlotItems.Instance.Count - 1].NonPlotItemMouseUp      += new NonPlotItem.NonPlotItemMouseUpEventHandler(this.Form1_MouseUpFromNonPlotItem);
                        NonPlotItems.Instance[NonPlotItems.Instance.Count - 1].NonPlotItemDelete       += new NonPlotItem.NonPlotItemDeleteEventHandler(this.Form1_DeleteFromNonPlotItem);
                        NonPlotItems.Instance[NonPlotItems.Instance.Count - 1].NonPlotItemValueChanged += new NonPlotItem.NonPlotItemValueChangedEventHandler(USBDataManager.Instance.NonPlotItemChanged);
                        // Add to container
                        splitContainerMain.Panel1.Controls.Add(NonPlotItems.Instance[NonPlotItems.Instance.Count - 1]);
                        myDesignStates = DesignStates.Normal;
                        break;

                    case DesignStates.PlaceReadyLongFloatItem:
                        // Place NonPlotItem (Long or Float)
                        p = new Point(e.X, e.Y);
                        // Add new item
                        NonPlotItems.Instance.Add(new NonPlotItem(p, NonPlotItemType.LongItem));     // Doesn't matter Long or Float at this point
                        // Subscribe event handler
                        NonPlotItems.Instance[NonPlotItems.Instance.Count - 1].NonPlotItemMouseDown    += new NonPlotItem.NonPlotItemMouseDownEventHandler(this.Form1_MouseDownFromNonPlotItem);
                        NonPlotItems.Instance[NonPlotItems.Instance.Count - 1].NonPlotItemMouseMove    += new NonPlotItem.NonPlotItemMouseMoveEventHandler(this.Form1_MouseMoveFromNonPlotItem);
                        NonPlotItems.Instance[NonPlotItems.Instance.Count - 1].NonPlotItemMouseUp      += new NonPlotItem.NonPlotItemMouseUpEventHandler(this.Form1_MouseUpFromNonPlotItem);
                        NonPlotItems.Instance[NonPlotItems.Instance.Count - 1].NonPlotItemDelete       += new NonPlotItem.NonPlotItemDeleteEventHandler(this.Form1_DeleteFromNonPlotItem);
                        NonPlotItems.Instance[NonPlotItems.Instance.Count - 1].NonPlotItemValueChanged += new NonPlotItem.NonPlotItemValueChangedEventHandler(USBDataManager.Instance.NonPlotItemChanged);
                        // Add to container
                        splitContainerMain.Panel1.Controls.Add(NonPlotItems.Instance[NonPlotItems.Instance.Count - 1]);
                        myDesignStates = DesignStates.Normal;
                        break;

                    case DesignStates.PlaceReadyPlotItem:
                        // Place PlotItem
                        p    = new Point(e.X, e.Y);
                        size = new Size(800, 400);
                        PlotItems.Instance.Add(new PlotItem(p, size));
                        // Subscribe event handlers
                        PlotItems.Instance[PlotItems.Instance.Count - 1].PlotItemMouseDown += new PlotItem.PlotItemMouseDownEventHandler(this.Form1_MouseDownFromPlotItem);
                        PlotItems.Instance[PlotItems.Instance.Count - 1].PlotItemMouseMove += new PlotItem.PlotItemMouseMoveEventHandler(this.Form1_MouseMoveFromPlotItem);
                        PlotItems.Instance[PlotItems.Instance.Count - 1].PlotItemMouseUp   += new PlotItem.PlotItemMouseUpEventHandler(this.Form1_MouseUpFromPlotItem);
                        PlotItems.Instance[PlotItems.Instance.Count - 1].PlotItemDelete    += new PlotItem.PlotItemDeleteEventHandler(this.Form1_DeleteFromPlotItem);
                        // Add to container
                        splitContainerMain.Panel1.Controls.Add(PlotItems.Instance[PlotItems.Instance.Count - 1]);
                        // Back to normal design state
                        myDesignStates = DesignStates.Normal;
                        break;
                    }
                }
            }
        }