public bool Parse(ConfigElement ce) { TPTabletUIManager mgr = TPTabletUIManager.GetInstance(); m_type = ce.GetAttribute("type"); if (string.IsNullOrEmpty(m_type)) { mgr.PutErrorMessage("Found an Event/NetworkEvent element which doesn't have the type attribute."); return(false); } int i; for (i = 0; i < ce.GetNumChildren(); i++) { ConfigElement child = ce.GetChild(i); if (child.GetName() == "Action") { string command = child.GetAttribute("command"); if (!string.IsNullOrEmpty(command)) { m_commands.Add(command); } } } return(true); }
/** Finds an element of the specified name from the hierarchy under this element. */ public ConfigElement FindElement(string name) { int i; for (i = 0; i < GetNumChildren(); i++) { ConfigElement child = GetChild(i); if (child.GetName() == name) { return(child); } ConfigElement descendant = child.FindElement(name); if (descendant != null) { return(descendant); } } return(null); }
public bool Parse(ConfigElement ce) { TPTabletUIManager mgr = TPTabletUIManager.GetInstance(); m_textString = ce.GetAttribute("textString"); string attrib = ce.GetAttribute("textColor"); if (!string.IsNullOrEmpty(attrib)) { string[] vec = attrib.Split(' '); if (vec.Length != 3) { mgr.PutErrorMessage("Found an invalid textColor attribute (Button/Data : " + m_parent.GetName() + ")."); return(false); } float r, g, b; float.TryParse(vec[0], out r); float.TryParse(vec[1], out g); float.TryParse(vec[2], out b); m_textColor.r = r / 255.0f; m_textColor.g = g / 255.0f; m_textColor.b = b / 255.0f; } attrib = ce.GetAttribute("textSize"); if (!string.IsNullOrEmpty(attrib)) { int.TryParse(attrib, out m_textSize); } attrib = ce.GetAttribute("textAlignment"); if (!string.IsNullOrEmpty(attrib)) { if (attrib == "left" || attrib == "middle_left") { m_textAlignment = TextAnchor.MiddleLeft; } else if (attrib == "celter" || attrib == "middle_center") { m_textAlignment = TextAnchor.MiddleCenter; } else if (attrib == "right" || attrib == "middle_right") { m_textAlignment = TextAnchor.MiddleRight; } else if (attrib == "upper_left") { m_textAlignment = TextAnchor.UpperLeft; } else if (attrib == "upper_center") { m_textAlignment = TextAnchor.UpperCenter; } else if (attrib == "upper_right") { m_textAlignment = TextAnchor.UpperRight; } else if (attrib == "lower_left") { m_textAlignment = TextAnchor.LowerLeft; } else if (attrib == "lower_center") { m_textAlignment = TextAnchor.LowerCenter; } else if (attrib == "lower_right") { m_textAlignment = TextAnchor.LowerRight; } else { mgr.PutErrorMessage("Found an invalid textAlignment attribute (Button/Data : " + m_parent.GetName() + ") : " + attrib); return(false); } } attrib = ce.GetAttribute("normalImage"); if (!string.IsNullOrEmpty(attrib)) { m_images[0] = mgr.GetImage(attrib); if (m_images[0] == null) { mgr.PutErrorMessage("No such an image : " + attrib); return(false); } } attrib = ce.GetAttribute("activeImage"); if (!string.IsNullOrEmpty(attrib)) { m_images[1] = mgr.GetImage(attrib); if (m_images[1] == null) { mgr.PutErrorMessage("No such an image : " + attrib); return(false); } } attrib = ce.GetAttribute("normalBgColor"); if (!string.IsNullOrEmpty(attrib)) { string[] vec = attrib.Split(' '); if (vec.Length != 3) { mgr.PutErrorMessage("Found an invalid normalBgColor attribute (Button/Data : " + m_parent.GetName() + ")."); return(false); } float r, g, b; float.TryParse(vec[0], out r); float.TryParse(vec[1], out g); float.TryParse(vec[2], out b); m_bgColors[0].r = r / 255.0f; m_bgColors[0].g = g / 255.0f; m_bgColors[0].b = b / 255.0f; m_bgColors[0].a = 1.0f; // Indicates that the normalBgColor attribute has been specified. } attrib = ce.GetAttribute("activeBgColor"); if (!string.IsNullOrEmpty(attrib)) { string[] vec = attrib.Split(' '); if (vec.Length != 3) { mgr.PutErrorMessage("Found an invalid activeBgColor attribute (Button/Data : " + m_parent.GetName() + ")."); return(false); } float r, g, b; float.TryParse(vec[0], out r); float.TryParse(vec[1], out g); float.TryParse(vec[2], out b); m_bgColors[1].r = r / 255.0f; m_bgColors[1].g = g / 255.0f; m_bgColors[1].b = b / 255.0f; m_bgColors[1].a = 1.0f; // Indicates that the activeBgColor attribute has been specified. } int i; for (i = 0; i < ce.GetNumChildren(); i++) { ConfigElement child = ce.GetChild(i); string name = child.GetName(); if (name == "Event") { TPTabletUIEvent buttonEvent = new TPTabletUIEvent(); if (buttonEvent.Parse(child)) { m_events[buttonEvent.GetEventType()] = buttonEvent; } else { return(false); } } } return(true); }
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); }
public bool Parse(ConfigElement ce) { TPTabletUIManager mgr = TPTabletUIManager.GetInstance(); m_name = ce.GetAttribute("name"); string attrib = ce.GetAttribute("position"); if (string.IsNullOrEmpty(attrib)) { mgr.PutErrorMessage("Found a Button 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 (Button : " + GetName() + ")."); return(false); } float.TryParse(vec[0], out m_position.x); float.TryParse(vec[1], out m_position.y); } attrib = ce.GetAttribute("size"); if (string.IsNullOrEmpty(attrib)) { mgr.PutErrorMessage("Found a Button element (" + GetName() + ") which doesn't have the size attribute."); return(false); } else { string[] vec = attrib.Split(' '); if (vec.Length != 2) { mgr.PutErrorMessage("Found an invalid size attribute (Button : " + GetName() + ")."); return(false); } float.TryParse(vec[0], out m_size.x); float.TryParse(vec[1], out m_size.y); } int i; for (i = 0; i < ce.GetNumChildren(); i++) { ConfigElement child = ce.GetChild(i); string name = child.GetName(); if (name == "Selection") { attrib = child.GetAttribute("index"); if (!string.IsNullOrEmpty(attrib)) { int.TryParse(attrib, out m_selection); m_orgSelection = m_selection; } } else if (name == "Data") { Data datum = new Data(this); if (datum.Parse(child)) { m_data.Add(datum); } else { return(false); } } } return(true); }