public override bool IsValid(int Line, string[] Lines, NormalLabel Label) { if (Label == null) { return(false); } if (Lines == null || Lines.Length <= 0) { return(false); } if (Line < 0 || Line >= Lines.Length) { return(false); } if (!SyntaxIsCorrect(Lines[Line])) { return(false); } for (int i = 0; i < Line; i++) { if (Label.SyntaxIsCorrect(Lines[i])) { return(true); } } return(false); }
public override bool IsValid(int Line, string[] Lines, NormalLabel Label) { if (Lines == null || Lines.Length <= 0) { return(false); } if (Line < 0 || Line >= Lines.Length) { return(false); } return(SyntaxIsCorrect(Lines[Line])); }
/// <summary> /// Expression member that's using our descriptor was clicked. /// </summary> /// <param name="container"></param> public void OnClick(ExpressionMemberContainer container, NormalLabel l, Point curPos, ExpressionMemberValueEditorActivationMode mode) { if ( mode == ExpressionMemberValueEditorActivationMode.Plus01 || mode == ExpressionMemberValueEditorActivationMode.Plus || mode == ExpressionMemberValueEditorActivationMode.Plus10 || mode == ExpressionMemberValueEditorActivationMode.Plus100 || mode == ExpressionMemberValueEditorActivationMode.Plus1000 || mode == ExpressionMemberValueEditorActivationMode.Minus01 || mode == ExpressionMemberValueEditorActivationMode.Minus || mode == ExpressionMemberValueEditorActivationMode.Minus10 || mode == ExpressionMemberValueEditorActivationMode.Minus100 || mode == ExpressionMemberValueEditorActivationMode.Minus1000) { if ((container.Member as ExpressionMemberCheck == null) && (Type == ExpressionMemberValueType.VarDouble || Type == ExpressionMemberValueType.VarInteger || Type == ExpressionMemberValueType.VarBool)) { bool changed = false; double delta = 0.0; delta = mode == ExpressionMemberValueEditorActivationMode.Plus01 ? 0.1 : delta; delta = mode == ExpressionMemberValueEditorActivationMode.Plus ? 1 : delta; delta = mode == ExpressionMemberValueEditorActivationMode.Plus10 ? 10 : delta; delta = mode == ExpressionMemberValueEditorActivationMode.Plus100 ? 100 : delta; delta = mode == ExpressionMemberValueEditorActivationMode.Plus1000 ? 1000 : delta; delta = mode == ExpressionMemberValueEditorActivationMode.Minus01 ? -0.1 : delta; delta = mode == ExpressionMemberValueEditorActivationMode.Minus ? -1 : delta; delta = mode == ExpressionMemberValueEditorActivationMode.Minus10 ? -10 : delta; delta = mode == ExpressionMemberValueEditorActivationMode.Minus100 ? -100 : delta; delta = mode == ExpressionMemberValueEditorActivationMode.Minus1000 ? -1000 : delta; switch (Type) { case ExpressionMemberValueType.VarBool: int tmpBool; if (Helper.IntTryParse(container.GetValue(), out tmpBool)) { if (tmpBool == 0) tmpBool = 1; else tmpBool = 0; container.SetValue(tmpBool.ToString()); changed = true; } break; case ExpressionMemberValueType.VarDouble: double tmpDouble; if (Helper.DoubleTryParse(container.GetValue(), out tmpDouble)) { tmpDouble+=delta; if (Min != null && tmpDouble < (double)Min) tmpDouble = Max != null ? (double)Max : (double)Min; if (Max != null && tmpDouble > (double)Max) tmpDouble = Min != null ? (double)Min : (double)Max; container.SetValue(Helper.DoubleToString(tmpDouble)); changed = true; } break; case ExpressionMemberValueType.VarInteger: int tmpInt; if (Helper.IntTryParse(container.GetValue(), out tmpInt)) { tmpInt += (int)Math.Round(delta); if (Min != null && tmpInt < (int)Min) tmpInt = Max != null ? (int)Max : (int)Min; if (Max != null && tmpInt > (int)Max) tmpInt = Min != null ? (int)Min : (int)Max; container.SetValue(tmpInt.ToString()); changed = true; } break; } if (changed) { Mission.Current.UpdateStatementTree(); Mission.Current.RegisterChange("Expression member value changed"); } return; } else { return; } } ContextMenuStrip curCMS; if ((curCMS = Editor.PrepareContextMenuStrip(container, mode)) != null) { if (mode == ExpressionMemberValueEditorActivationMode.NextMenuItem) { if ((bool)curCMS.Tag) { ShowEditingDialog(container); return; } bool next = false; foreach (ToolStripItem item in curCMS.Items) if (OnClick_RecursivelyActivate(item, ref next, true)) { curCMS.Close(); return; } if (curCMS.Items[0] is ToolStripMenuItem && ((ToolStripMenuItem)curCMS.Items[0]).DropDownItems.Count > 0) ((ToolStripMenuItem)curCMS.Items[0]).DropDownItems[0].PerformClick(); else curCMS.Items[0].PerformClick(); curCMS.Close(); return; } if (mode == ExpressionMemberValueEditorActivationMode.PreviousMenuItem) { if ((bool)curCMS.Tag) { ShowEditingDialog(container); return; } bool next = false; for(int i=curCMS.Items.Count-1;i>=0;i--) if (OnClick_RecursivelyActivate(curCMS.Items[i], ref next, false)) { curCMS.Close(); return; } if (curCMS.Items[curCMS.Items.Count - 1] is ToolStripMenuItem && ((ToolStripMenuItem)curCMS.Items[curCMS.Items.Count - 1]).DropDownItems.Count > 0) ((ToolStripMenuItem)curCMS.Items[curCMS.Items.Count - 1]). DropDownItems[((ToolStripMenuItem)curCMS.Items[curCMS.Items.Count - 1]). DropDownItems.Count - 1]. PerformClick(); else curCMS.Items[curCMS.Items.Count - 1].PerformClick(); curCMS.Close(); return; } curCMS.Show(curPos); } else ShowEditingDialog(container); }
/// <summary> /// Routine to be done when label control assigned to this member is clicked /// </summary> public void OnClick(ExpressionMemberContainer container, NormalLabel l, Point curPos, ExpressionMemberValueEditorActivationMode mode) { ValueDescription.OnClick(container, l, curPos, mode); }
/// <summary> /// Expression member that's using our descriptor was clicked. /// </summary> /// <param name="container"></param> public void OnClick(ExpressionMemberContainer container, NormalLabel l, Point curPos, ExpressionMemberValueEditorActivationMode mode) { if (mode == ExpressionMemberValueEditorActivationMode.Plus01 || mode == ExpressionMemberValueEditorActivationMode.Plus || mode == ExpressionMemberValueEditorActivationMode.Plus10 || mode == ExpressionMemberValueEditorActivationMode.Plus100 || mode == ExpressionMemberValueEditorActivationMode.Plus1000 || mode == ExpressionMemberValueEditorActivationMode.Minus01 || mode == ExpressionMemberValueEditorActivationMode.Minus || mode == ExpressionMemberValueEditorActivationMode.Minus10 || mode == ExpressionMemberValueEditorActivationMode.Minus100 || mode == ExpressionMemberValueEditorActivationMode.Minus1000) { if ((container.Member as ExpressionMemberCheck == null) && (Type == ExpressionMemberValueType.VarDouble || Type == ExpressionMemberValueType.VarInteger || Type == ExpressionMemberValueType.VarBool)) { bool changed = false; double delta = 0.0; delta = mode == ExpressionMemberValueEditorActivationMode.Plus01 ? 0.1 : delta; delta = mode == ExpressionMemberValueEditorActivationMode.Plus ? 1 : delta; delta = mode == ExpressionMemberValueEditorActivationMode.Plus10 ? 10 : delta; delta = mode == ExpressionMemberValueEditorActivationMode.Plus100 ? 100 : delta; delta = mode == ExpressionMemberValueEditorActivationMode.Plus1000 ? 1000 : delta; delta = mode == ExpressionMemberValueEditorActivationMode.Minus01 ? -0.1 : delta; delta = mode == ExpressionMemberValueEditorActivationMode.Minus ? -1 : delta; delta = mode == ExpressionMemberValueEditorActivationMode.Minus10 ? -10 : delta; delta = mode == ExpressionMemberValueEditorActivationMode.Minus100 ? -100 : delta; delta = mode == ExpressionMemberValueEditorActivationMode.Minus1000 ? -1000 : delta; switch (Type) { case ExpressionMemberValueType.VarBool: int tmpBool; if (Helper.IntTryParse(container.GetValue(), out tmpBool)) { if (tmpBool == 0) { tmpBool = 1; } else { tmpBool = 0; } container.SetValue(tmpBool.ToString()); changed = true; } break; case ExpressionMemberValueType.VarDouble: double tmpDouble; if (Helper.DoubleTryParse(container.GetValue(), out tmpDouble)) { tmpDouble += delta; if (Min != null && tmpDouble < (double)Min) { tmpDouble = Max != null ? (double)Max : (double)Min; } if (Max != null && tmpDouble > (double)Max) { tmpDouble = Min != null ? (double)Min : (double)Max; } container.SetValue(Helper.DoubleToString(tmpDouble)); changed = true; } break; case ExpressionMemberValueType.VarInteger: int tmpInt; if (Helper.IntTryParse(container.GetValue(), out tmpInt)) { tmpInt += (int)Math.Round(delta); if (Min != null && tmpInt < (int)Min) { tmpInt = Max != null ? (int)Max : (int)Min; } if (Max != null && tmpInt > (int)Max) { tmpInt = Min != null ? (int)Min : (int)Max; } container.SetValue(tmpInt.ToString()); changed = true; } break; } if (changed) { Mission.Current.UpdateStatementTree(); Mission.Current.RegisterChange("Expression member value changed"); } return; } else { return; } } ContextMenuStrip curCMS; if ((curCMS = Editor.PrepareContextMenuStrip(container, mode)) != null) { if (mode == ExpressionMemberValueEditorActivationMode.NextMenuItem) { if ((bool)curCMS.Tag) { ShowEditingDialog(container); return; } bool next = false; foreach (ToolStripItem item in curCMS.Items) { if (OnClick_RecursivelyActivate(item, ref next, true)) { curCMS.Close(); return; } } if (curCMS.Items[0] is ToolStripMenuItem && ((ToolStripMenuItem)curCMS.Items[0]).DropDownItems.Count > 0) { ((ToolStripMenuItem)curCMS.Items[0]).DropDownItems[0].PerformClick(); } else { curCMS.Items[0].PerformClick(); } return; } if (mode == ExpressionMemberValueEditorActivationMode.PreviousMenuItem) { if ((bool)curCMS.Tag) { ShowEditingDialog(container); return; } bool next = false; for (int i = curCMS.Items.Count - 1; i >= 0; i--) { if (OnClick_RecursivelyActivate(curCMS.Items[i], ref next, false)) { curCMS.Close(); return; } } if (curCMS.Items[curCMS.Items.Count - 1] is ToolStripMenuItem && ((ToolStripMenuItem)curCMS.Items[curCMS.Items.Count - 1]).DropDownItems.Count > 0) { ((ToolStripMenuItem)curCMS.Items[curCMS.Items.Count - 1]). DropDownItems[((ToolStripMenuItem)curCMS.Items[curCMS.Items.Count - 1]). DropDownItems.Count - 1]. PerformClick(); } else { curCMS.Items[curCMS.Items.Count - 1].PerformClick(); } curCMS.Close(); return; } curCMS.Show(curPos); } else { ShowEditingDialog(container); } }
/// <summary> /// Call routine to be done when label control assigned to this member is clicked. /// </summary> public void OnClick(NormalLabel l, Point curPos, ExpressionMemberValueEditorActivationMode mode) { Member.OnClick(this, l, curPos, mode); }