void HandleControlStyle(XmlNode xnode) { string name = GetStrParam(xnode, "name", "DefaultControl"); ControlStyle ct = GetControlStyle(name); if (ct == null) { ct = new ControlStyle(); ct.Name = name; ControlStyles[name] = ct; ct.SetDefault(); } UpdateStyle(xnode, ct); if (name == "DefaultControl") { //foreach (KeyValuePair<String, ctlUserPanel> pair in Controls) foreach (KeyValuePair <String, Control> pair in Controls) { if (pair.Value is ctlUserPanel) { ctlUserPanel ctl = (ctlUserPanel)pair.Value; ctl.ApplyStyle(DefaultControlStyle); } else { // apply the style by recursing through the object ApplyStyleRecurse(pair.Value, DefaultControlStyle); } } } }
void HandleControls(GuiConfigDB conf) { if (conf.HideAllControls.IsExplicit() && conf.HideAllControls) { HideAllControls(); } // apply default style if exists GuiControlStyle stl = conf.GetControlStyle("DefaultControl"); if (stl != null) { DefaultControlStyle = stl; foreach (KeyValuePair <String, Control> pair in Controls) { if (pair.Value is ctlUserPanel) { ctlUserPanel ctl = (ctlUserPanel)pair.Value; ctl.ApplyStyle(stl); } else { // apply the style by recursing through the object ApplyStyleRecurse(pair.Value, stl); } } } foreach (KeyValuePair <string, GuiControl> pair in conf.GuiControlsDict) { HandleControl(conf, pair.Value); } }
void HandleControl(XmlNode ctlnode) { string name = GetStrParam(ctlnode, "name", null); if (name == null) { return; } if (!Controls.ContainsKey(name)) { return; } //ctlUserPanel ctl = Controls[name]; Control ct = Controls[name]; if (ctlnode.Attributes.GetNamedItem("visible") != null) { ct.Visible = GetBoolParam(ctlnode, "visible", ct.Visible); } ct.Width = GetIntParam(ctlnode, "w", ct.Width); ct.Height = GetIntParam(ctlnode, "h", ct.Height); //load some control locations as well, int px, py; px = GetIntParam(ctlnode, "px", ct.Location.X); py = GetIntParam(ctlnode, "py", ct.Location.Y); Point pt = new Point(px, py); ct.Location = pt; // load docking style string action = GetStrParam(ctlnode, "action", "none"); // telling something to happen to this control if (action.Contains("remove")) // this handles removing a control from it's parent { // remove this control from it's parent if (ct.Parent != null) { ct.Parent.Controls.Remove(ct); ct.Parent = null; } } else if (action.Contains("hide")) // this handles hiding { // hide this control ct.Hide(); } else if (action.Contains("addto")) // this handles adding a new control to a parent control { // Get the name of the parent string parentname = GetStrParam(ctlnode, "parent", ""); if (parentname == null) { return; } if (parentname.Length == 0) { return; } //find the parent Control ctlParent = Controls[parentname]; if (ctlParent == null) { DebugLogger.Instance().LogWarning("Control parent now found: " + parentname); return; } { ctlParent.Controls.Add(ct); } } String styleName = GetStrParam(ctlnode, "style", null); ControlStyle style = GetControlStyle(styleName); if (ct is ctlUserPanel) { ctlUserPanel ctl = (ctlUserPanel)ct; ctl.GuiAnchor = FixDockingVal(GetStrParam(ctlnode, "dock", ctl.GuiAnchor)); ctl.Gapx = GetIntParam(ctlnode, "x", ctl.Gapx); ctl.Gapy = GetIntParam(ctlnode, "y", ctl.Gapy); if (styleName != null) { ctl.StyleName = styleName; if (style != null) { ctl.GLVisible = style.glMode; ctl.ApplyStyle(style); } } //ctl.GLVisible = GetBoolParam(ctlnode, "gl", false); if (ctl.GLVisible) { ctl.GLBackgroundImage = GetStrParam(ctlnode, "shape", ctl.GLBackgroundImage); } else { ctl.bgndPanel.imageName = GetStrParam(ctlnode, "shape", ctl.bgndPanel.imageName); } } else { if (style != null) { ApplyStyleRecurse(ct, style); } } }
void HandleControl(GuiConfigDB conf, GuiControl gctl) { if (!Controls.ContainsKey(gctl.name)) { return; } Control ct = Controls[gctl.name]; // find the existing control if (gctl.visible.IsExplicit()) { ct.Visible = gctl.visible.GetVal(); } ct.Width = gctl.w.GetIfExplicit(ct.Width); ct.Height = gctl.h.GetIfExplicit(ct.Height); //load some control locations as well, if (gctl.px.IsExplicit() || gctl.py.IsExplicit()) { int px, py; px = gctl.px.GetIfExplicit(ct.Location.X); py = gctl.py.GetIfExplicit(ct.Location.Y); Point pt = new Point(px, py); ct.Location = pt; } // load docking style if (gctl.action.IsExplicit()) { string action = gctl.action; // telling something to happen to this control if (action.Contains("remove")) // this handles removing a control from it's parent { // remove this control from it's parent if (ct.Parent != null) { ct.Parent.Controls.Remove(ct); ct.Parent = null; } } else if (action.Contains("hide")) // this handles hiding { // hide this control, do not remove it from the parent ct.Hide(); } else if (action.Contains("show")) // this handles showing { // show this control ct.Show(); } else if (action.Contains("addto")) // this handles adding a new/existing control to a parent control { // Get the name of the parent // Get the name of the parent string parentname = gctl.parent; if (gctl.parent.IsExplicit() && (parentname != null) && (parentname.Length != 0)) { //find the parent //find the parent if (Controls.ContainsKey(parentname)) { Control ctlParent = Controls[parentname]; AddControlToParent(ct, ctlParent); } else { DebugLogger.Instance().LogWarning("Control parent not found: " + parentname); } } } } String styleName = gctl.style.GetIfValid(null); GuiControlStyle style = conf.GetControlStyle(styleName); if (ct is ctlUserPanel) { ctlUserPanel ctl = (ctlUserPanel)ct; ctl.GuiAnchor = gctl.dock.GetIfExplicit(ctl.GuiAnchor); ctl.Gapx = gctl.x.GetIfExplicit(ctl.Gapx); ctl.Gapy = gctl.y.GetIfExplicit(ctl.Gapy); if (styleName != null) { ctl.StyleName = styleName; if (style != null) { ctl.GLVisible = style.glMode; ctl.ApplyStyle(style); } } //ctl.GLVisible = GetBoolParam(ctlnode, "gl", false); if (ctl.GLVisible) { ctl.GLBackgroundImage = gctl.BorderShape.GetIfExplicit(ctl.GLBackgroundImage); } else { ctl.bgndPanel.imageName = gctl.BorderShape.GetIfExplicit(ctl.bgndPanel.imageName); } } else { if (style != null) { ApplyStyleRecurse(ct, style); } } }