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; } } }
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; }
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"); } } } } }
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; } } }
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); } } }
private void plotItemToolStripMenuItem_Click(object sender, EventArgs e) { // Set to appropriate state myDesignStates = DesignStates.PlaceReadyPlotItem; }
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 } } }
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; } } } }