public bool Parse(byte[] bytes) { TPTabletUIManager mgr = TPTabletUIManager.GetInstance(); ConfigFile cf = new ConfigFile(); if (!cf.Parse(bytes)) { return(false); } ConfigElement root = cf.GetRoot(); if (root.GetName() != "TabletInterface") { mgr.PutErrorMessage("The configuration file is invalid."); return(false); } m_networkEvents = new ArrayList(); m_rootGroups = new ArrayList(); int i; for (i = 0; i < root.GetNumChildren(); i++) { ConfigElement ce = root.GetChild(i); string name = ce.GetName(); if (name == "NetworkEvent") { TPTabletUIEvent networkEvent = new TPTabletUIEvent(); if (networkEvent.Parse(ce)) { m_networkEvents.Add(networkEvent); } else { return(false); } } else if (name == "GUIDefinition") { ConfigElement guiDef = ce; string attrib = ce.GetAttribute("orientation"); if (!string.IsNullOrEmpty(attrib)) { if (attrib == "vertical") { m_orientation = ScreenOrientation.Portrait; } else if (attrib == "horizontal") { m_orientation = ScreenOrientation.LandscapeLeft; } else { mgr.PutErrorMessage("Found an invalid orientation attribute. (" + attrib + ")"); return(false); } } int j; for (j = 0; j < guiDef.GetNumChildren(); j++) { ce = guiDef.GetChild(j); if (ce.GetName() == "Group") { TPTabletUIGroup rootGroup = CreateGroup(); if (rootGroup.Parse(ce)) { m_rootGroups.Add(rootGroup); } else { return(false); } } } } } CalculateRect(); return(true); }
public bool Parse(ConfigElement ce) { TPTabletUIManager mgr = TPTabletUIManager.GetInstance(); TPTabletUIConfig cfg = mgr.GetConfig(); m_name = ce.GetAttribute("name"); string attrib = ce.GetAttribute("position"); if (string.IsNullOrEmpty(attrib)) { mgr.PutErrorMessage("Found a Group element (" + GetName() + ") which doesn't have the position attribute."); return(false); } else { string[] vec = attrib.Split(' '); if (vec.Length != 2) { mgr.PutErrorMessage("Found an invalid position attribute (Group : " + GetName() + ")."); return(false); } float.TryParse(vec[0], out m_position.x); float.TryParse(vec[1], out m_position.y); } attrib = ce.GetAttribute("mode"); if (!string.IsNullOrEmpty(attrib)) { if (attrib == "all") { m_mode = Mode.All; } else if (attrib == "selection") { m_mode = Mode.Selection; } else { mgr.PutErrorMessage("Found an invalid mode attribute (Group : " + GetName() + ") : " + attrib); return(false); } } int i; for (i = 0; i < ce.GetNumChildren(); i++) { ConfigElement child = ce.GetChild(i); string name = child.GetName(); if (name == "Enable") { attrib = child.GetAttribute("value"); if (!string.IsNullOrEmpty(attrib)) { if (attrib == "true") { m_enabled = true; } else if (attrib == "false") { m_enabled = false; } else { mgr.PutErrorMessage("Found an invalid value attribute (Group/Enable : " + GetName() + ") : " + attrib); return(false); } m_orgEnabled = m_enabled; } } else if (name == "Selection") { attrib = child.GetAttribute("index"); if (!string.IsNullOrEmpty(attrib)) { int.TryParse(attrib, out m_selection); m_orgSelection = m_selection; } } else if (name == "Group") { TPTabletUIGroup grp = cfg.CreateGroup(); if (grp.Parse(child)) { m_groups.Add(grp); } else { return(false); } } else if (name == "Button") { TPTabletUIButton btn = cfg.CreateButton(); if (btn.Parse(child)) { m_buttons.Add(btn); } else { return(false); } } } return(true); }