private static void InitializeWebUIElement(Form newForm, WebForm mainWebForm) { //Call the initialized event newForm.OnInitialized(); var halfWidth = Document.ClientWidth / 2; var halfHeight = Document.ClientHeight / 2; var newFormHalfWidth = newForm.Size.Width / 2; var newFormHalfHeight = newForm.Size.Height / 2; newForm.Location = new Point(halfWidth - newFormHalfWidth, halfHeight - newFormHalfHeight); //Center the form newForm.Focus(); JQuery.FromSelector(".winform").ZIndex(1); mainWebForm.InternalJQElement.ZIndex(1000); if (newForm.FormBorderStyle == FormBorderStyle.Sizable) { newForm.UnderlyingWebForm.InternalJQElement.ResizableAnimated(); } mainWebForm.InternalJQElement.AddClass("winform"); mainWebForm.InternalJQElement.Draggable(); //Add a close button var btnClose = new AnchorElement { Href = "#", Class = "close webform-close-btn", Style = "color: #000000;", TextContent = "×" }; btnClose.Click += (s, e) => CloseForm(newForm); mainWebForm.InternalJQElement.Append(btnClose); }
public static void Test() { InputElement input = new InputElement(); input.OnChange += (ev) => { // Tests if ev.CurrentTarget.Value compiles Console.Log("ev.CurrentTarget.Value: " + ev.CurrentTarget.Value); // Tests if ev.IsMouseEvent() compiles Console.Log("IsMouseEvent: " + ev.IsMouseEvent()); }; AnchorElement anchor = new AnchorElement(); anchor.OnClick += (ev) => { // Tests if ev.CurrentTarget.Href compiles Console.Log("ev.CurrentTarget.Href: " + ev.CurrentTarget.Href); }; // Test if Document.GetElementById<>() compiles DivElement div = Document.GetElementById <DivElement>("div1"); // Tests if Element is still a superclass of all the element classes and the following code compiles Element element; element = new InputElement(); element = new TextAreaElement(); }
public void Show(Vector2d position, Action callback) { DivElement simpleInputElement = Document.GetElementById <DivElement>("simpleinput"); DivElement modalElement = Document.GetElementById <DivElement>("simplemodal"); modalElement.Style.Display = "block"; simpleInputElement.Style.Display = "block"; simpleInputElement.Style.MarginLeft = position.X.ToString() + "px"; simpleInputElement.Style.MarginTop = position.Y.ToString() + "px"; textElement = Document.GetElementById <SelectElement>("inputtext"); textElement.Value = Text; DivElement titleDiv = Document.GetElementById <DivElement>("simpletitle"); DivElement labelDiv = Document.GetElementById <DivElement>("inputlabel"); titleDiv.InnerText = Title; labelDiv.InnerText = Label; textElement.AddEventListener("change", TextChanged, false); textElement.AddEventListener("click", IgnoreMe, true); //Window.AddEventListener("click", NonMenuClick, true); AnchorElement okButton = Document.GetElementById <AnchorElement>("simpleinputok"); AnchorElement cancelButton = Document.GetElementById <AnchorElement>("simpleinputcancel"); okButton.AddEventListener("click", OkClicked, false); cancelButton.AddEventListener("click", CancelClicked, false); okCallback = callback; }
protected override void OnMouseUp(MouseEventArgs e) { base.OnMouseUp(e); if (!this._dragging) { return; } this._dragging = false; AnchorElement tempTo; if (this._theSelected is AnchorElement element && (tempTo = element).IsDissociative) { // 检查是否有能够连接上的锚点 foreach (NodeElement node in this._nodes) { // 节点自身上的锚点不能相互连接 if (node == this._tempConnection.From.Owner) { continue; } AnchorElement candidate = node.AttachWith(tempTo); if (candidate != null) { // 连接上了,则用候选锚点替换当前连接的tempTo锚点 // 释放当前tempTo锚点图像 // 将tempConnection加如到画布上上的连接集合 this._tempConnection.To = candidate; this._connections.Add(this._tempConnection); } } } // 无论如何都该释放掉临时连接 this._tempConnection = null; this.Invalidate(); }
public Button() : base() { UnderlyingElement = new AnchorElement(); //Add Materialize Button classes UnderlyingJQElement.AddClass("waves-effect waves-light btn"); Create(); UnderlyingJQElement.Click += OnClick; }
public static void HandleClick(AnchorElement anchor, DomEvent evt, AjaxOptions ajaxOptions) { evt.PreventDefault(); MvcHelpers.AsyncRequest(anchor.Href, "post", "", anchor, ajaxOptions); }
private void HandleInputSockets(INodeInputHandler inputHandler) { AnchorElement anchor = CreateAnchor(new Vector2(0, 0.5f)); foreach (IDirectionalInputSocket socket in inputHandler.InputSockets) { anchor.AddSocket(socket); } }
public static void HandleClick(AnchorElement anchor, DomEvent evt, AjaxOptions ajaxOptions) { evt.PreventDefault(); MvcHelpers.AsyncRequest(anchor.Href, "post", "", anchor, ajaxOptions); }
private void HandleOutputSockets(INodeOutputHandler outputHandler) { AnchorElement anchor = CreateAnchor(new Vector2(1, 0.5f)); foreach (IDirectionalOutputSocket socket in outputHandler.OutputSockets) { anchor.AddSocket(socket); } }
private void HoveringMoving(MouseEventArgs e) { Point currentLocation = e.Location; Element.Element currentHovered = null; #region 节点Hover检查 for (int idx = this._nodes.Count - 1; idx >= 0; idx--) { NodeElement node = this._nodes[idx]; if (node.CaughtBy(currentLocation)) { currentHovered = node; break; } else { AnchorElement anchor = node.AnchorCaughtBy(currentLocation); if (anchor != null) { currentHovered = anchor; break; } } } #endregion #region 连接Hover检查 for (int idx = this._connections.Count - 1; idx >= 0; idx--) { ConnectionElement conn = this._connections[idx]; if (conn.CaughtBy(currentLocation)) { currentHovered = conn; break; } } #endregion #region 更新Hovered元素 if (currentHovered != this._theHovered) { if (currentHovered != null) { currentHovered.Hovered = true; } if (this._theHovered != null) { this._theHovered.Hovered = false; } this._theHovered = currentHovered; } #endregion }
/// <summary> /// Gets the rectangle region for the flyout. /// </summary> /// <returns>The flyout region.</returns> public Rect Rect() { if (AnchorElement == null) { return(new Rect()); } var transform = AnchorElement.TransformToVisual(null); var point = transform.TransformPoint(new Point()); var size = new Size(AnchorElement.ActualWidth, AnchorElement.ActualHeight); return(new Rect(point, size)); }
private AnchorElement CreateAnchor(Vector2 anchor) { AnchorElement anchorInstance = Instantiate(anchorPrefab); RectTransform rectTransform = (RectTransform)anchorInstance.transform; rectTransform.SetParent(transform); rectTransform.anchorMin = anchor; rectTransform.anchorMax = anchor; rectTransform.anchoredPosition = Vector3.zero; return(anchorInstance); }
private void Close() { DivElement simpleInputElement = Document.GetElementById <DivElement>("simplemodal"); simpleInputElement.Style.Display = "none"; //Window.RemoveEventListener("click", NonMenuClick, true); textElement.RemoveEventListener("change", TextChanged, false); AnchorElement okButton = Document.GetElementById <AnchorElement>("simpleinputok"); AnchorElement cancelButton = Document.GetElementById <AnchorElement>("simpleinputcancel"); okButton.RemoveEventListener("click", OkClicked, false); cancelButton.RemoveEventListener("click", CancelClicked, false); }
public Button() { switch (WebApplication.CurrentTheme.Stylesheet) { case CSSFramework.Foundation6: InternalElement = new AnchorElement { Class = "button" }; break; case CSSFramework.PolyUi: InternalElement = new AnchorElement { Class = "btn--default" }; break; case CSSFramework.Kubism: InternalElement = new AnchorElement { Class = "btn" }; break; case CSSFramework.Bootstrap: InternalElement = new AnchorElement { Class = "btn btn-primary" }; break; case CSSFramework.MaterialBootstrap: InternalElement = new AnchorElement { Class = "btn btn-primary btn-raised" }; break; default: InternalElement = new AnchorElement { Class = "button" }; break; } Click += OnClick; PerformLayout(); }
private void CreateAnchor(AnchorElement anchor, Feature feature) { if (anchor != null) { GameObject go = new GameObject("Anchor Entity"); go.transform.SetParent(feature.gameObject.transform); AnchorEntity anchorEntity = go.AddComponent <AnchorEntity> (); if (anchor.Point != null) { double[] pos = anchor.Point.ParsePos(); anchorEntity.ID = anchor.id; anchorEntity.latitude = pos [0]; anchorEntity.longitude = pos [1]; feature.anchor = anchorEntity; feature.Geolocation = new GeoLocation(feature.anchor.longitude, feature.anchor.latitude); } } }
void ToolWindow_DragDrop(object sender, DragEventArgs e) { foreach (string format in e.Data.GetFormats()) { switch (format) { case "GuruComponents.Netrix.WebEditing.Elements.IElement": // usually elements are dropped automatically. This code shows how to handle the element immediately. // here only Anchor elements are handled object o = e.Data.GetData(typeof(IElement)); if (o is AnchorElement) { AnchorElement a = (AnchorElement)o; a.href = "http://www.netrixcomponent.net"; a.InnerText = "Netrix Component"; } break; } } }
public override Verb CreateVerb(string[] tokens) { Color(position, length, Operators); switch (tokens[1]) { case "-": Element = new AbortElement(); break; case ";": Element = new FailElement(); break; case ":": Element = new FenceElement(); break; case "^": Element = new AnchorElement(); break; case "!": Element = new NegateElement(); Instruction = new NegateInstruction(); break; case "&": Element = new UseCaseElement(); break; case "\\": Element = new RecordSeparatorElement(); break; default: return(null); } return(new NullOp()); }
internal static HtmlElement CreateFor(XElement element) { HtmlElement result = null; switch (element.Name.LocalName.ToLower()) { case "form": result = new FormElement(element); break; case "input": string type = element.GetAttribute("type") ?? ""; switch (type.ToLower()) { case "radio": result = new RadioInputElement(element); break; case "checkbox": result = new CheckboxInputElement(element); break; case "image": result = new ImageInputElement(element); break; case "submit": case "button": result = new ButtonInputElement(element); break; case "file": result = new FileUploadElement(element); break; case "email": result = new EmailInputElement(element); break; case "url": result = new UrlInputElement(element); break; case "datetime-local": case "date": case "month": case "week": case "time": result = new DateTimeInputElement(element); break; case "number": case "range": result = new NumberInputElement(element); break; case "color": result = new ColorInputElement(element); break; default: result = new InputElement(element); break; } break; case "textarea": result = new TextAreaElement(element); break; case "select": result = new SelectElement(element); break; case "option": result = new OptionElement(element); break; case "iframe": case "frame": var src = element.GetAttributeCI("src"); if (!string.IsNullOrWhiteSpace(src)) { result = new FrameElement(element); } else { result = default(HtmlElement); } break; case "a": result = new AnchorElement(element); break; case "label": result = new LabelElement(element); break; case "button": result = new ButtonInputElement(element); break; default: result = new HtmlElement(element); break; } return(result); }
protected override string GenerateCode(ITypeDefinition currentClass) { List <PropertyOrFieldWrapper> filtered = parameterList .Where(p => p.IsIncluded) .OrderBy(p => p.Index) .ToList(); var test = refactoringContext.GetNode(); var insertedConstructor = refactoringContext.GetNode().PrevSibling as ConstructorDeclaration; if (insertedConstructor == null) { // We are not inside of a constructor declaration return(null); } using (Script script = refactoringContext.StartScript()) { BlockStatement originalCtorBody = insertedConstructor.Body; foreach (PropertyOrFieldWrapper w in filtered) { if (w.AddCheckForNull) { // true = reference, null = generic or unknown if (w.Type.IsReferenceType != false) { script.AddTo(originalCtorBody, new IfElseStatement( new BinaryOperatorExpression(new IdentifierExpression(w.ParameterName), BinaryOperatorType.Equality, new PrimitiveExpression(null)), new ThrowStatement(new ObjectCreateExpression(new SimpleType("ArgumentNullException"), new List <Expression>() { new PrimitiveExpression(w.ParameterName, '"' + w.ParameterName + '"') })) ) ); } else { script.AddTo(originalCtorBody, new IfElseStatement( new UnaryOperatorExpression(UnaryOperatorType.Not, new MemberReferenceExpression(new IdentifierExpression(w.MemberName), "HasValue")), new ThrowStatement(new ObjectCreateExpression(new SimpleType("ArgumentNullException"), new List <Expression>() { new PrimitiveExpression(w.ParameterName, '"' + w.ParameterName + '"') })) ) ); } } if (w.AddRangeCheck) { script.AddTo(originalCtorBody, new IfElseStatement( new BinaryOperatorExpression( new BinaryOperatorExpression(new IdentifierExpression(w.ParameterName), BinaryOperatorType.LessThan, new IdentifierExpression("lower")), BinaryOperatorType.ConditionalOr, new BinaryOperatorExpression(new IdentifierExpression(w.ParameterName), BinaryOperatorType.GreaterThan, new IdentifierExpression("upper")) ), new ThrowStatement( new ObjectCreateExpression( new SimpleType("ArgumentOutOfRangeException"), new List <Expression>() { new PrimitiveExpression(w.ParameterName, '"' + w.ParameterName + '"'), new IdentifierExpression(w.ParameterName), new BinaryOperatorExpression(new PrimitiveExpression("Value must be between "), BinaryOperatorType.Add, new BinaryOperatorExpression(new IdentifierExpression("lower"), BinaryOperatorType.Add, new BinaryOperatorExpression(new PrimitiveExpression(" and "), BinaryOperatorType.Add, new IdentifierExpression("upper")))) } ) ) ) ); } } foreach (PropertyOrFieldWrapper w in filtered) { script.AddTo(originalCtorBody, new ExpressionStatement(new AssignmentExpression(new MemberReferenceExpression(new ThisReferenceExpression(), w.MemberName), AssignmentOperatorType.Assign, new IdentifierExpression(w.ParameterName))) ); } } AnchorElement parameterListElement = insertionContext.ActiveElements .OfType <AnchorElement>() .FirstOrDefault(item => item.Name.Equals("parameterList", StringComparison.OrdinalIgnoreCase)); if (parameterListElement != null) { StringBuilder pList = new StringBuilder(); var parameters = filtered .Select(p => new ParameterDeclaration(refactoringContext.CreateShortType(p.Type), p.ParameterName)) .ToList(); using (StringWriter textWriter = new StringWriter(pList)) { // Output parameter list as string var formattingOptions = CSharpFormattingPolicies.Instance.GetProjectOptions(refactoringContext.Compilation.GetProject()); CSharpOutputVisitor outputVisitor = new CSharpOutputVisitor(textWriter, formattingOptions.OptionsContainer.GetEffectiveOptions()); for (int i = 0; i < parameters.Count; i++) { if (i > 0) { textWriter.Write(","); } outputVisitor.VisitParameterDeclaration(parameters[i]); } } parameterListElement.Text = pList.ToString(); } return(null); }
void updateChatPicUI() { if (elementsInitialised) { if (hasTopPhoto) { if (chatPicHolder != null) { chatPicHolder.Style.Display = "none"; } return; } if (hasChatPic) { if (chatPicHolder == null) { chatPicHolder = Document.CreateElement("div"); // chatPicHolder.ClassName = "ChatClientChatPicHolder"; // chatPicHolder.Style.Position = "relative"; // chatPicHolder.Style.Width = "300px"; // if (Misc.BrowserIsIE) // chatPicHolder.Style.Height = "102px"; // else // chatPicHolder.Style.Height = "101px"; // chatPicHolder.Style.BorderBottom = "1px solid #cba21e"; MesssagesElementHolder.InsertBefore(chatPicHolder, MesssagesElementHolder.ChildNodes[0]); chatPicAnchor = (AnchorElement)Document.CreateElement("a"); chatPicImage = (ImageElement)Document.CreateElement("img"); chatPicImage.ClassName = "ChatClientChatPicImage"; // chatPicImage.Style.Position = "absolute"; // chatPicImage.Style.Top = "1px"; // chatPicImage.Style.Left = "0px"; // chatPicImage.Style.Width = "300px"; // chatPicImage.Style.Height = "100px"; //chatPicImage.Style.BorderWidth = "0px"; //chatPicImage.Style.BorderBottom = "1px solid #cba21e"; chatPicAnchor.AppendChild(chatPicImage); chatPicHolder.AppendChild(chatPicAnchor); } chatPicImage.Src = Misc.GetPicUrlFromGuid(chatPic); DomEvent.ClearHandlers(chatPicImage); DomEvent.AddHandler(chatPicImage, "mouseover", delegate { Script.Eval("stmun(" + chatPicStmuParams + ");"); }); DomEvent.AddHandler(chatPicImage, "mouseout", delegate { Script.Literal("htm();"); }); chatPicAnchor.Href = chatPicUrl; } else { if (chatPicHolder != null) chatPicHolder.Style.Display = "none"; } } }
void updateTopPhotoUI() { if (elementsInitialised) { if (hasTopPhoto) { if (topPhotoHolder == null) { topPhotoHolder = Document.CreateElement("div"); topPhotoHolder.Style.Position = "relative"; topPhotoHolder.Style.Width = "280px"; topPhotoHolder.Style.Height = "120px"; MesssagesElementHolder.InsertBefore(topPhotoHolder, MesssagesElementHolder.ChildNodes[0]); topPhotoAnchor = (AnchorElement)Document.CreateElement("a"); topPhotoAnchor.Style.Position = "absolute"; topPhotoAnchor.Style.Top = "9px"; topPhotoAnchor.Style.Left = "96px"; topPhotoImage = (ImageElement)Document.CreateElement("img"); topPhotoImage.ClassName = "BorderBlack All"; topPhotoImage.Style.Width = "100px"; topPhotoImage.Style.Height = "100px"; topPhotoAnchor.AppendChild(topPhotoImage); topPhotoHolder.AppendChild(topPhotoAnchor); DOMElement txtSpan = Document.CreateElement("span"); txtSpan.Style.TextAlign = "right"; txtSpan.InnerHTML = "<small><a href=\"/pages/frontpagephotos\">Get yours<br />here!</a></small>"; txtSpan.Style.Position = "absolute"; txtSpan.Style.Top = "7px"; txtSpan.Style.Left = "225px"; txtSpan.ClassName = "CleanLinks"; topPhotoHolder.AppendChild(txtSpan); DOMElement txtSpan1 = Document.CreateElement("span"); txtSpan1.Style.TextAlign = "left"; txtSpan1.InnerHTML = "<small>Chat about<br />this:</small>"; txtSpan1.Style.Position = "absolute"; txtSpan1.Style.Top = "7px"; txtSpan1.Style.Left = "5px"; topPhotoHolder.AppendChild(txtSpan1); } topPhotoImage.Src = Misc.GetPicUrlFromGuid(topPhoto.PhotoIcon); //topPhotoImage.Src = Misc.GetPicUrlFromGuid(topPhoto.PhotoThumb); //topPhotoImage.Style.Width = topPhoto.PhotoThumbWidth.ToString() + "px"; //topPhotoImage.Style.Height = topPhoto.PhotoThumbHeight.ToString() + "px"; DomEvent.ClearHandlers(topPhotoImage); DomEvent.AddHandler(topPhotoImage, "mouseover", delegate { Script.Eval("stm('<img src=" + Misc.GetPicUrlFromGuid(topPhoto.PhotoWeb) + " width=" + topPhoto.PhotoWebWidth.ToString() + " height=" + topPhoto.PhotoWebHeight.ToString() + " class=Block />');"); }); DomEvent.AddHandler(topPhotoImage, "mouseout", delegate { Script.Literal("htm();"); }); topPhotoAnchor.Href = topPhoto.PhotoUrl; } } }
protected override string GenerateCode(LanguageProperties language, IClass currentClass) { IDocumentLine line = editor.Document.GetLineForOffset(anchor.Offset); string indent = DocumentUtilitites.GetWhitespaceAfter(editor.Document, line.Offset); List <PropertyOrFieldWrapper> filtered = this.varList.SelectedItems.OfType <PropertyOrFieldWrapper>() .OrderBy(p => p.Index) .ToList(); BlockStatement block = new BlockStatement(); foreach (PropertyOrFieldWrapper w in filtered) { if (w.AddCheckForNull) { // true = reference, null = generic or unknown if (w.Type.IsReferenceType != false) { block.AddChild( new IfElseStatement( new BinaryOperatorExpression(new IdentifierExpression(w.ParameterName), BinaryOperatorType.Equality, new PrimitiveExpression(null)), new ThrowStatement(new ObjectCreateExpression(new TypeReference("ArgumentNullException"), new List <Expression>() { new PrimitiveExpression(w.ParameterName, '"' + w.ParameterName + '"') })) ) ); } else { block.AddChild( new IfElseStatement( new UnaryOperatorExpression(new MemberReferenceExpression(new IdentifierExpression(w.MemberName), "HasValue"), UnaryOperatorType.Not), new ThrowStatement(new ObjectCreateExpression(new TypeReference("ArgumentNullException"), new List <Expression>() { new PrimitiveExpression(w.ParameterName, '"' + w.ParameterName + '"') })) ) ); } } if (w.AddRangeCheck) { block.AddChild( new IfElseStatement( new BinaryOperatorExpression( new BinaryOperatorExpression(new IdentifierExpression(w.ParameterName), BinaryOperatorType.LessThan, new IdentifierExpression("lower")), BinaryOperatorType.LogicalOr, new BinaryOperatorExpression(new IdentifierExpression(w.ParameterName), BinaryOperatorType.GreaterThan, new IdentifierExpression("upper")) ), new ThrowStatement( new ObjectCreateExpression( new TypeReference("ArgumentOutOfRangeException"), new List <Expression>() { new PrimitiveExpression(w.ParameterName, '"' + w.ParameterName + '"'), new IdentifierExpression(w.ParameterName), new BinaryOperatorExpression(new PrimitiveExpression("Value must be between "), BinaryOperatorType.Concat, new BinaryOperatorExpression(new IdentifierExpression("lower"), BinaryOperatorType.Concat, new BinaryOperatorExpression(new PrimitiveExpression(" and "), BinaryOperatorType.Concat, new IdentifierExpression("upper")))) } ) ) ) ); } } foreach (PropertyOrFieldWrapper w in filtered) { block.AddChild(new ExpressionStatement(new AssignmentExpression(new MemberReferenceExpression(new ThisReferenceExpression(), w.MemberName), AssignmentOperatorType.Assign, new IdentifierExpression(w.ParameterName)))); } AnchorElement parameterListElement = context.ActiveElements .OfType <AnchorElement>() .FirstOrDefault(item => item.Name.Equals("parameterList", StringComparison.OrdinalIgnoreCase)); if (parameterListElement != null) { StringBuilder pList = new StringBuilder(); var parameters = filtered .Select(p => new ParameterDeclarationExpression(ConvertType(p.Type), p.ParameterName)) .ToList(); for (int i = 0; i < parameters.Count; i++) { if (i > 0) { pList.Append(", "); } pList.Append(language.CodeGenerator.GenerateCode(parameters[i], "")); } parameterListElement.Text = pList.ToString(); } StringBuilder builder = new StringBuilder(); foreach (var element in block.Children.OfType <AbstractNode>()) { builder.Append(language.CodeGenerator.GenerateCode(element, indent)); } return(builder.ToString().Trim()); }
public LinkLabel() { InternalElement = new AnchorElement(); InternalElement.Click += OnClick; PerformLayout(); }
private HtmlElement CreateFor(XElement element) { HtmlElement result; switch (element.Name.LocalName.ToLower()) { case "form": result = new FormElement(element); break; case "input": string type = element.GetAttribute("type") ?? ""; switch (type.ToLower()) { case "radio": result = new RadioInputElement(element); break; case "checkbox": result = new CheckboxInputElement(element); break; case "submit": case "image": case "button": string buttonType = element.GetAttribute("type"); result = new ButtonInputElement(element); break; case "file": result = new FileUploadElement(element); break; default: result = new InputElement(element); break; } break; case "textarea": result = new TextAreaElement(element); break; case "select": result = new SelectElement(element); break; case "option": result = new OptionElement(element); break; case "iframe": case "frame": result = new FrameElement(element); break; case "a": result = new AnchorElement(element); break; case "label": result = new LabelElement(element); break; case "button": result = new ButtonInputElement(element); break; default: result = new HtmlElement(element); break; } _allActiveElements.Add(result); return(result); }
public static bool WhenLoggedInAnchor(AnchorElement anchor) { PageImplementation.LogInTransfer(anchor.Href); return false; }
public Line(AnchorElement from, AnchorElement to, Canvas canvas) : base(from, to, canvas) { }
private void LeftMouseDown(MouseEventArgs e) { Point currentLocation = e.Location; this._clickLocation = currentLocation; Element.Element currentSelected = null; #region 节点Select检查 for (int idx = this._nodes.Count - 1; idx >= 0; idx--) { NodeElement node = this._nodes[idx]; if (node.CaughtBy(currentLocation)) { currentSelected = node; break; } else { AnchorElement anchor = node.AnchorCaughtBy(currentLocation); if (anchor != null) { currentSelected = anchor; break; } } } #endregion #region 连接Select检查 for (int idx = this._connections.Count - 1; idx >= 0; idx--) { ConnectionElement conn = this._connections[idx]; if (conn.CaughtBy(currentLocation)) { currentSelected = conn; break; } } #endregion #region 更新当前被选择的元素 if (currentSelected != this._theSelected) { if (currentSelected != null) { currentSelected.Selected = true; } if (this._theSelected != null) { this._theSelected.Selected = false; } this._theSelected = currentSelected; } #endregion this._dragging = true; // 若为锚点,则开始进行连接行为 if (!(this._theSelected is AnchorElement from)) { return; } AnchorElement tempTo = ElementFactory.AnchorElement(currentLocation.X, currentLocation.Y, null, this); ConnectionElement tempConn = ElementFactory.ConnectionElement(@from, tempTo, this); this._tempConnection = tempConn; @from.Selected = false; tempTo.Selected = true; this._theSelected = tempTo; }
public extern static AngularAnchorElement Angular(this AnchorElement el);
private static void LoadPlayArea() { var menuDiv = new DivElement { Id = "menu" }; var pressStartTitle = new AnchorElement { Href = "javascript:BridgeTetris.Tetris.play()", InnerHTML = "Press Space to Play." }; menuDiv.AppendChild(BridgeTetris.Tetris.InsideParagraph(pressStartTitle, "start")); var nextPieceCanvas = new CanvasElement { Id = "upcoming" }; menuDiv.AppendChild(BridgeTetris.Tetris.InsideParagraph(nextPieceCanvas)); var scoreParagraph = new List <Node>(); scoreParagraph.Add(new LabelElement { InnerHTML = "score " }); scoreParagraph.Add(new SpanElement { Id = "score", InnerHTML = "00000" }); menuDiv.AppendChild(BridgeTetris.Tetris.InsideParagraph(scoreParagraph)); var rowsParagraph = new List <Node>(); rowsParagraph.Add(new LabelElement { InnerHTML = "rows " }); rowsParagraph.Add(new SpanElement { Id = "rows", InnerHTML = "0" }); menuDiv.AppendChild(BridgeTetris.Tetris.InsideParagraph(rowsParagraph)); var tetrisCourtCanvas = new CanvasElement { Id = "canvas", Width = 200, Height = 400 }; var tetrisDiv = new DivElement { Id = "tetris" }; tetrisDiv.AppendChild(menuDiv); tetrisDiv.AppendChild(tetrisCourtCanvas); Document.Body.AppendChild(tetrisDiv); }
public static ConnectionElement ConnectionElement(AnchorElement from, AnchorElement to, Canvas canvas) { return(new Line(from, to, canvas)); }