public LoadingScreen(
            Point loadingScreenLocation,
            Size loadingScreenSize,
            string barType,
            bool isFullScreenButtonVisible)
        {
            Logger.Info("LoadingScreen({0})", (object)loadingScreenSize);
            this.SetImageDir();
            this.LoadImages();
            this.SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.OptimizedDoubleBuffer, true);
            this.Location  = loadingScreenLocation;
            this.Size      = loadingScreenSize;
            this.BackColor = Color.FromArgb(35, 147, 213);
            this.appLogo   = new Label();
            Logger.Info("Using splash logo");
            this.appLogo.BackgroundImage = this.splashLogoImage;
            this.appLogo.Width           = this.appLogo.BackgroundImage.Width;
            this.appLogo.Height          = this.appLogo.BackgroundImage.Height;
            this.appLogo.BackColor       = Color.Transparent;
            this.installDir = RegistryStrings.InstallDir;
            string str = "LoadingScreenAppTitle";

            if (str.StartsWith("DynamicText"))
            {
                this.mLstDynamicString = new List <string>((IEnumerable <string>)str.Split(new char[1]
                {
                    ';'
                }, StringSplitOptions.RemoveEmptyEntries));
                if (this.mLstDynamicString.Count > 0)
                {
                    this.mLstDynamicString.Remove("DynamicText");
                    System.Timers.Timer timer = new System.Timers.Timer(5000.0);
                    timer.Elapsed += new ElapsedEventHandler(this.TimerElapsed);
                    str            = this.mLstDynamicString[0];
                    timer.Start();
                }
            }
            this.appNameText.Text        = str;
            this.appNameText.TextAlign   = ContentAlignment.MiddleCenter;
            this.appNameText.Width       = loadingScreenSize.Width;
            this.appNameText.Height      = 50;
            this.appNameText.UseMnemonic = false;
            this.appNameText.ForeColor   = Color.White;
            this.appNameText.BackColor   = Color.Transparent;
            LoadingScreen.StatusText statusText = new LoadingScreen.StatusText();
            statusText.TextAlign   = ContentAlignment.MiddleCenter;
            statusText.Width       = loadingScreenSize.Width;
            statusText.Height      = 40;
            statusText.UseMnemonic = false;
            statusText.ForeColor   = Color.White;
            statusText.BackColor   = Color.Transparent;
            this.statusText        = (Label)statusText;
            LoadingScreen.NewProgressBar newProgressBar = new LoadingScreen.NewProgressBar(barType);
            newProgressBar.Width  = 336;
            newProgressBar.Height = 10;
            newProgressBar.Value  = 0;
            this.progressBar      = newProgressBar;
            if (barType == "Marquee")
            {
                this.progressTimer = new System.Windows.Forms.Timer()
                {
                    Interval = 50
                };
                this.progressTimer.Tick += (EventHandler)((obj, evt) => this.progressBar.Invalidate());
                this.progressTimer.Start();
            }
            Label label1 = new Label();

            label1.BackgroundImage       = this.whiteLogoImage;
            label1.BackgroundImageLayout = ImageLayout.Stretch;
            label1.Width     = 48;
            label1.Height    = 44;
            label1.BackColor = Color.Transparent;
            this.whiteLogo   = label1;
            Label label2 = new Label();

            label2.BackgroundImage       = this.closeButtonImage;
            label2.BackgroundImageLayout = ImageLayout.Stretch;
            label2.Width             = 24;
            label2.Height            = 24;
            label2.BackColor         = Color.Transparent;
            this.closeButton         = label2;
            this.closeButton.Click  += (EventHandler)((obj, evt) => VMWindow.Instance.Close());
            this.closeButton.Visible = false;
            Label label3 = new Label();

            label3.BackgroundImage       = this.fullScreenButtonImage;
            label3.BackgroundImageLayout = ImageLayout.Stretch;
            label3.Width                 = 24;
            label3.Height                = 24;
            label3.BackColor             = Color.Transparent;
            this.fullScreenButton        = label3;
            this.fullScreenButton.Click += (EventHandler)((obj, evt) =>
            {
                LayoutManager.ToggleFullScreen();
                this.FullScreenToggled();
            });
            if (!isFullScreenButtonVisible)
            {
                this.fullScreenButton.Visible = false;
            }
            this.SetLocations();
            this.Controls.Add((Control)this.appLogo);
            this.Controls.Add((Control)this.appNameText);
            this.Controls.Add((Control)this.progressBar);
            this.Controls.Add((Control)this.statusText);
            this.Controls.Add((Control)this.whiteLogo);
            this.Controls.Add((Control)this.closeButton);
            this.Controls.Add((Control)this.fullScreenButton);
            this.whiteLogo.Visible = false;
        }