private void SwitchDemo(int demo)
        {
            //// Ignore if the demo request is too high
            //if (demo < 0 || demo + 1 > demos.Count)
            //{
            //    return;
            //}
            if (demo != this.demo)
            {
                this.demo = demo;
                // Stop the demo, if any
                StopDemo();

                switch (demo)
                {
                    case 0:
                        currentDemo = new BounceMode();
                        currentDemo.Start();
                        break;
                    case 1:
                        currentDemo = new FontMode();
                        currentDemo.Start();
                        break;
                    case 2:
                        currentDemo = new DragMode();
                        currentDemo.Start();
                        break;
                    case 3:
                        currentDemo = new ViewportMode();
                        currentDemo.Start();
                        break;
                    case 4:
                        currentDemo = new MultipleMode();
                        currentDemo.Start();
                        break;
                    default:
                        currentDemo = new BounceMode();
                        currentDemo.Start();
                        break;
                }

                //// Start it
                //currentDemo = demos[demo];
                //currentDemo.Start();
            }
        }
 /// <summary>
 /// 
 /// </summary>
 /// <param name="disposing"></param>
 protected virtual void Dispose(bool disposing)
 {
     if (!this.disposed)
     {
         if (disposing)
         {
             this.screen.Dispose();
             if (currentDemo != null)
             {
                 currentDemo.Dispose();
                 currentDemo = null;
             }
         }
         this.disposed = true;
     }
 }
        //private void LoadDemo(DemoMode mode)
        //{
        //    // Add to the array list
        //    demos.Add(mode);
        //}

        //private void LoadDemos()
        //{
            // Load the actual demos
            //LoadDemo(new BounceMode());
            //LoadDemo(new FontMode());
            //LoadDemo(new DragMode());
            //LoadDemo(new ViewportMode());
            //LoadDemo(new MultipleMode());
        //}

        private void StopDemo()
        {
            // Stop the demo, if any
            if (currentDemo != null)
            {
                currentDemo.Stop();
                //currentDemo.Dispose();
                currentDemo = null;
            }
            //System.GC.Collect();
        }