private void pnLedNode_MouseClick(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left) { pnLedNode.Select(); if (curNode != null) { curNode.Choosed = false; CurNode = null; CurIndex = new LedNodeIndex(-1, -1); NotifyChange("CurIndex"); } foreach (LedNodeView c in selectedList) { c.Choosed = false; } selectedList.Clear(); //selectedList.Clear(); } else if (e.Button == MouseButtons.Right) { Point pt = pnLedNode.PointToScreen(e.Location); ctMenu.Show(pt); } }
private void pnLedNode_MouseMove(object sender, MouseEventArgs e) { if (dragFlag) { if (curNode != null) { curNode.Choosed = false; CurNode = null; CurIndex = new LedNodeIndex(-1, -1); NotifyChange("CurIndex"); } foreach (LedNodeView c in selectedList) { c.Choosed = false; } selectedList.Clear(); newLocation = pnLedNode.PointToClient(Cursor.Position); curRect = new Rectangle(Math.Min(oldLocation.X, newLocation.X), Math.Min(oldLocation.Y, newLocation.Y), Math.Abs(newLocation.X - oldLocation.X), Math.Abs(newLocation.Y - oldLocation.Y)); g.FillRectangle(bgBrush, pnLedNode.Bounds); g.DrawRectangle(pen, curRect); foreach (Control c in pnLedNode.Controls) { if (c is LedNodeView) { LedNodeView node = (LedNodeView)c; if (node.Type == Constants.StateType.Data) { if (curRect.IntersectsWith(c.Bounds)) { node.Choosed = true; } else { node.Choosed = false; } } } } } }
public int SetBright(LedNodeIndex index, int newBright) { int updateBright = ledData.SetBright(index.stateIndex, index.ledIndex, newBright); return updateBright; }
private void view_PropertyChanged(object sender, PropertyChangedEventArgs e) { PropertyChangedExtendedEventArgs<int> eventArgs; switch (e.PropertyName) { case "CurIndex": ViewIndex = view.CurIndex; commandHub.ReceiveCommand("SelectNode"); break; case "Bright": eventArgs = (PropertyChangedExtendedEventArgs<int>)e; int updateBright = model.SetBright(viewIndex,eventArgs.NewValue); if (updateBright >= 0) { view.Bright = updateBright; } break; case "StateCommonValue": eventArgs = (PropertyChangedExtendedEventArgs<int>)e; int updateStateInfo=model.SetStateInfo(viewIndex.stateIndex, eventArgs.NewValue); if (updateStateInfo > -1) { view.StateCommonInfo = updateStateInfo; } break; case "NodeSelectedChange": commandHub.ReceiveCommand("NodeSelectedChange"); break; } }
public int GetBright(LedNodeIndex index) { int updateBright = ledData.GetBright(index.stateIndex, index.ledIndex); return updateBright; }
void removeStateCommand_Called(object sender, EventArgs e) { if (model.StateNumber > 1) { if (model.RemoveState(ViewIndex.stateIndex)) { int newStateIndex = ViewIndex.stateIndex; int newLedIndex = ViewIndex.ledIndex; if (newStateIndex > 1) { newStateIndex--; } if (model.GetStateType(ViewIndex.stateIndex) != Constants.StateType.Data) { //This is StartFor or EndFor state, so the cur_led_index must be 0 newLedIndex = 0; } view.LedData = model.LedData; ViewIndex = new LedNodeIndex(newStateIndex, newLedIndex); commandHub.ReceiveCommand("RemoveState"); } } }
void revertEffectCommand_Called(object sender, EventArgs e) { List<LedNodeView> selectedNode = (List<LedNodeView>)sender; foreach (LedNodeView c in selectedNode) { LedNodeIndex curIndex = new LedNodeIndex(c.StateIndex, c.LedIndex); int updateBright = model.SetBright(curIndex, Constants.MAX_BRIGHT - c.Value); if (updateBright != -1) { c.Value = updateBright; } } }
void fireBallEffectCommand_Called(object sender, EventArgs e) { List<LedNodeView> selectedNode = (List<LedNodeView>)sender; //Find max and min index of selected node LedNodeIndex maxIndex = new LedNodeIndex(-1, -1); LedNodeIndex minIndex = new LedNodeIndex(selectedNode.Count, selectedNode.Count); foreach (LedNodeView c in selectedNode) { LedNodeIndex curIndex = new LedNodeIndex(c.StateIndex, c.LedIndex); if (curIndex.stateIndex > maxIndex.stateIndex) { maxIndex.stateIndex = curIndex.stateIndex; } if (curIndex.ledIndex > maxIndex.ledIndex) { maxIndex.ledIndex = curIndex.ledIndex; } if (curIndex.stateIndex < minIndex.stateIndex) { minIndex.stateIndex = curIndex.stateIndex; } if (curIndex.ledIndex < minIndex.ledIndex) { minIndex.ledIndex = curIndex.ledIndex; } } //Set bright for selected nodes int brightStep = (Constants.MAX_BRIGHT - Constants.DEFAULT_BRIGHT) / (maxIndex.ledIndex - minIndex.ledIndex); for (int stateIndex = minIndex.stateIndex; stateIndex <= maxIndex.stateIndex; stateIndex++) { int curBright = Constants.DEFAULT_BRIGHT; for (int ledIndex = minIndex.ledIndex; ledIndex <= maxIndex.ledIndex; ledIndex++) { LedNodeIndex curIndex = new LedNodeIndex(stateIndex, ledIndex); foreach (LedNodeView c in selectedNode) { if ((c.LedIndex == ledIndex) && (c.StateIndex == stateIndex)) { int updateBright = model.SetBright(curIndex, curBright); if (updateBright != -1) { c.Value = curBright; curBright += brightStep; } } } } } }
void removeLedCommand_Called(object sender, EventArgs e) { if (model.LedNumber > 1) { if (model.RemoveLed(ViewIndex.ledIndex)) { view.LedData = model.LedData; ViewIndex.ledIndex--; ViewIndex = new LedNodeIndex(ViewIndex.stateIndex, ViewIndex.ledIndex - 1); commandHub.ReceiveCommand("RemoveLed"); } } }
void fileOpenCommand_Called(object sender, EventArgs e) { openFileDialog.ShowDialog(); string filePath = openFileDialog.FileName; if (model.ReadFile("bin", filePath)) { view.LedData = model.LedData; ViewIndex = new LedNodeIndex(0, 0); commandHub.ReceiveCommand("FileOpen"); } }
void fileNewCommand_Called(object sender, EventArgs e) { if (model.NewFile()) { view.LedData = model.LedData; ViewIndex = new LedNodeIndex(0, 0); commandHub.ReceiveCommand("FileNew"); } }
void clearAllEffectCommand_Called(object sender, EventArgs e) { List<LedNodeView> selectedNode = (List<LedNodeView>)sender; foreach (LedNodeView c in selectedNode) { LedNodeIndex curIndex = new LedNodeIndex(c.StateIndex, c.LedIndex); int updateBright = model.SetBright(curIndex, 0); if (updateBright != -1) { c.Value = updateBright; } } }
void addStateAboveCommand_Called(object sender, EventArgs e) { if (model.AddStateAbove(ViewIndex.stateIndex)) { //TODO:Update view and curIndex ViewIndex = new LedNodeIndex(viewIndex.stateIndex++, viewIndex.ledIndex); view.LedData = model.LedData; commandHub.ReceiveCommand("AddStateAbove"); } }
void addStartForCommand_Called(object sender, EventArgs e) { if (model.AddStartFor(ViewIndex.stateIndex)) { int newStateIndex=ViewIndex.stateIndex+1; view.LedData = model.LedData; ViewIndex = new LedNodeIndex(newStateIndex, ViewIndex.ledIndex); commandHub.ReceiveCommand("AddStartFor"); } }