private static void AddControl(XElement element, ref Form form) { ControlType controlType; Enum.TryParse(element.Name.LocalName, true, out controlType); if (controlType != ControlType.None && controlType != ControlType.Menu && controlType != ControlType.MenuItem && controlType != ControlType.SubMenu) { form.Controls.Add(GetControlFromElement(element, controlType)); } if (controlType == ControlType.Menu) { ConstructMenu(element, ref form); } }
public SubMenu(Form owner) : base(string.Empty) { this.Owner = owner; timer.Elapsed += new ElapsedEventHandler(Timer_Elapsed); BackColor = Color.White; ForeColor = Color.Black; if (owner != null) { BackColor = owner.BackColor; ForeColor = owner.ForeColor; } keyboard = new KeyboardHelper(); keyboard.OnKeyPress += Keyboard_OnPress; keyboard.OnKeyRelease += Keyboard_OnRelease; }
public static void GenerateFromMarkup(this FormCollection formCollection, XDocument document) { //Form collection object XElement rootNode = document.Root; if (rootNode != null) { var allMarkedupForms = new List<XElement>(rootNode.Descendants() .Where(x => x.Name.LocalName == "Form")); foreach (XElement formElement in allMarkedupForms) { var id = GetId(formElement); var title = GetTitle(formElement); var posVector = GetPositionVector2(formElement); var sizeVector = GetSizeVector2(formElement); var borderStyle = GetBorderStyle(formElement); var form = new Form(id, title,sizeVector,posVector,borderStyle); ProcessChildNodes(formElement.Descendants(),ref form); formCollection.Add(form); } } }
private static void ConstructMenu(XElement element, ref Form form) { Menu menu = CreateMenuFromElement(element); ProcessMenuItems(element, menu, ref form); form.Menu = menu; }
private static void ProcessMenuItems(XElement element, Control parent, ref Form form) { foreach (var node in element.Elements()) { var xElement = node as XElement; var subMenuParent = (parent as SubMenu); var menuParent = (parent as Menu); if (xElement != null) { ControlType controlType; Enum.TryParse(xElement.Name.LocalName, true, out controlType); if (controlType == ControlType.MenuItem) { if (subMenuParent != null) { //TODO work out if the below custom add call is needed/wanted, seems out of place subMenuParent.Add(CreateMenuItemFromElement(xElement),null); } if (menuParent != null) { menuParent.Items.Add(CreateMenuItemFromElement(xElement)); } } if (controlType == ControlType.SubMenu) { if (subMenuParent != null) { var subMenu = CreateSubMenuFromElement(xElement, ref form); subMenuParent.Add(CreateMenuItemFromElement(xElement),subMenu); ProcessMenuItems(xElement, subMenu, ref form); } if (menuParent != null) { var subMenu = CreateSubMenuFromElement(xElement, ref form); menuParent.Add(CreateMenuItemFromElement(xElement), subMenu); ProcessMenuItems(xElement, subMenu, ref form); } } } else { return; } } }
private static void ProcessChildNodes(IEnumerable<XElement> elements, ref Form form) { foreach (var element in elements) { AddControl(element, ref form); if (element.HasElements) { ProcessChildNodes(element.Descendants(), ref form); } } }
private static SubMenu CreateSubMenuFromElement(XElement element, ref Form form) { string id = GetId(element); string name = element.Value; return new SubMenu(form); }
public ControlCollection(Form form) { this.Owner = form; }