public DomElement GetPresentationDomNode(DomElement hostNode) { if (pnode != null) return pnode; //----------------------------------- var doc = hostNode.OwnerDocument; this.pnode = doc.CreateElement("div"); pnode.AddChild("img", item_icon => { menuIcon = item_icon; menuIcon.AttachMouseDownEvent(e => { //**** this.MaintenanceParentOpenState(); if (this.IsOpened) { this.Close(); } else { this.Open(); } e.StopPropagation(); }); menuIcon.AttachMouseUpEvent(e => { this.UnmaintenanceParentOpenState(); e.StopPropagation(); }); menuIcon.AttachEventOnMouseLostFocus(e => { if (!this.MaintenaceOpenState) { this.CloseRecursiveUp(); } }); }); pnode.AddChild("span", content => { if (menuItemText != null) { pnode.AddTextContent(this.menuItemText); } }); //-------------------------------------------------------- //create simple menu item box if (childItems != null) { floatPart = new MenuBox(400, 200); int j = childItems.Count; for (int i = 0; i < j; ++i) { floatPart.AddChildBox(childItems[i]); } } return pnode; }
void SetupNodeIconBehaviour(DomElement uiNodeIcon) { uiNodeIcon.AttachMouseDownEvent(e => { if (this.IsOpen) { //then close this.Collapse(); } else { this.Expand(); } }); }