/// </summary> /// </summary> public override void Init() { base.Init(); for (var i = 0; i < fonts.Count; i++) { content.UseArchive = fonts[i].Archive; var asset = GetAsset("Fonts", fonts[i].Asset, fonts[i].Addon); asset = content.UseArchive ? asset : Path.GetFullPath(asset); (fonts[i].Resource) = content.Load <SpriteFont>(asset); } #if (!XBOX && !XBOX_FAKE) for (var i = 0; i < cursors.Count; i++) { content.UseArchive = cursors[i].Archive; var asset = GetAsset("Cursors", cursors[i].Asset, cursors[i].Addon); asset = content.UseArchive ? asset : Path.GetFullPath(asset); cursors[i].Resource = content.Load <Cursor>(asset); } #endif for (var i = 0; i < images.Count; i++) { content.UseArchive = images[i].Archive; var asset = GetAsset("Images", images[i].Asset, images[i].Addon); asset = content.UseArchive ? asset : Path.GetFullPath(asset); images[i].Resource = content.Load <Texture2D>(asset); } for (var i = 0; i < controls.Count; i++) { for (var j = 0; j < controls[i].Layers.Count; j++) { if (controls[i].Layers[j].Image.Name != null) { controls[i].Layers[j].Image = images[controls[i].Layers[j].Image.Name]; } else { controls[i].Layers[j].Image = images[0]; } if (controls[i].Layers[j].Text.Name != null) { controls[i].Layers[j].Text.Font = fonts[controls[i].Layers[j].Text.Name]; } else { controls[i].Layers[j].Text.Font = fonts[0]; } } } }
/// <returns>Returns the root control of the layout file with all child controls initialized.</returns> /// <param name="asset">Name of the layout XML asset. (Default asset names are file names without extensions.)</param> /// <param name="manager">GUI manager responsible for the controls contained in the layout XML file.</param> /// <summary> /// Reads the specified layout XML file asset. /// </summary> public static Container Load(Manager manager, string asset) { Container win = null; var doc = new LayoutXmlDocument(); var content = new ArchiveManager(manager.Game.Services); try { content.RootDirectory = manager.LayoutDirectory; #if (!XBOX && !XBOX_FAKE) var file = content.RootDirectory + asset; if (File.Exists(file)) { doc.Load(file); } else #endif { doc = content.Load <LayoutXmlDocument>(asset); } if (doc != null && doc["Layout"]["Controls"] != null && doc["Layout"]["Controls"].HasChildNodes) { var node = doc["Layout"]["Controls"].GetElementsByTagName("Control").Item(0); var cls = node.Attributes["Class"].Value; var type = Type.GetType(cls); if (type == null) { cls = "MonoForce.Controls." + cls; type = Type.GetType(cls); } win = (Container)LoadControl(manager, node, type, null); } } finally { content.Dispose(); } return(win); }