Example #1
0
        /// <summary>
        /// Raises the <see cref="E:System.Windows.Forms.Form.Load" /> event.
        /// </summary>
        /// <param name="e">An <see cref="T:System.EventArgs" /> that contains the event data.</param>
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);

            Cursor.Current = Cursors.WaitCursor;

            try
            {
                _categories = CategoryCollection.Read();

                tabCategories.TabPages.Clear();

                // Add categories and examples.
                foreach (Category category in _categories)
                {
                    Panel panel = AddCategory(category);

                    if (panel == null)
                    {
                        continue;
                    }

                    foreach (Example example in category.Examples)
                    {
                        AddPanel(panel, example);
                    }
                }
            }
            catch (Exception ex)
            {
                if (_categories != null)
                {
                    _categories.Dispose();
                }

                GorgonDialogs.ErrorBox(this, ex);
                Application.Exit();
            }
            finally
            {
                Cursor.Current = Cursors.Default;
            }
        }
Example #2
0
        /// <summary>
        /// Function to read the categories and examples from the embedded example list.
        /// </summary>
        /// <returns>A new category collection.</returns>
        public static CategoryCollection Read()
        {
            var result   = new CategoryCollection();
            var document = XDocument.Parse(Resources.Examples);

            XElement root = document.Element("Examples");

            if (root == null)
            {
                return(result);
            }

            IEnumerable <XElement> categories = root.Elements("Category");

            foreach (XElement categoryNode in categories)
            {
                result.Add(Category.Read(categoryNode));
            }

            return(result);
        }