////////////////////////////////////////////////////////////////////////////                     
    ////////////////////////////////////////////////////////////////////////////

    #endregion

    #region //// Properties ////////

    ////////////////////////////////////////////////////////////////////////////
    ////////////////////////////////////////////////////////////////////////////

    #endregion

    #region //// Construstors //////

    ////////////////////////////////////////////////////////////////////////////       
    ////////////////////////////////////////////////////////////////////////////

    #endregion
    
    #region //// Methods ///////////    
    
    ////////////////////////////////////////////////////////////////////////////    
    public static Container Load(Manager manager, string asset)
    {
      Container win = null;
      LayoutXmlDocument doc = new LayoutXmlDocument();
      ArchiveManager content = new ArchiveManager(manager.Game.Services);            
      
      try
      {      
        content.RootDirectory = manager.LayoutDirectory;
        
        #if (!XBOX && !XBOX_FAKE)
        
        string 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)
        {       
          XmlNode node = doc["Layout"]["Controls"].GetElementsByTagName("Control").Item(0);         
          string cls = node.Attributes["Class"].Value;
          Type type = Type.GetType(cls);
          
          if (type == null)
          {
            cls = "TomShane.Neoforce.Controls." + cls;
            type = Type.GetType(cls);
          }
                    
          win = (Container)LoadControl(manager, node, type, null);                    
        }  
        
      }
      finally
      {
        content.Dispose();
      }                  
      
      return win;
    }
Exemple #2
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);
        }