Beispiel #1
0
        public Main()
        {
            Settings.AppScale = ((new Elem.NewLine()).CreateGraphics().DpiX / 96);

            this.Text = $"{Settings.AppName} {Settings.AppVersion}";
            this.Size = new Size(
                Meth._S(Settings.DefaultSize.Width),
                Meth._S(Settings.DefaultSize.Height)
                );
            this.Icon = new Icon(Settings.IconPath);

            this.CenterToScreen();

            if (GDTools.CheckIfGDIsOpen())
            {
                Elem.PauseForm PauseForm = new Elem.PauseForm();

                PauseForm.Show();

                Task.Run <bool>(() => {
                    while (GDTools.CheckIfGDIsOpen())
                    {
                        Thread.Sleep(GDTools._GDCheckLoopTime);
                    }

                    PauseForm.Close();
                    PauseForm.Dispose();

                    this.DoLoad();

                    return(true);
                });
            }
            else
            {
                this.DoLoad();
            }
        }
Beispiel #2
0
        private void Init()
        {
            this.BeginInvoke((Action)(() => {
                Meth.HandleTheme(this);

                Dotnetrix_Samples.TabControl Tabs = new Dotnetrix_Samples.TabControl();
                Tabs.Dock = DockStyle.Fill;
                Tabs.AutoSize = true;
                Meth.HandleTheme(Tabs);

                Panel[] Pages = new Panel[] {
                    new Pages.Home(),
                    new Pages.User(),
                    new Pages.Share(),
                    new Pages.Backups(),
                    new Pages.Collabs(),
                    new Pages.LevelEdit(),
                    new Pages.SettingPage()
                };

                foreach (Panel Page in Pages)
                {
                    TabPage Tab = new TabPage();
                    Tab.Controls.Add(Page);
                    Tab.Text = Page.Name;
                    Meth.HandleTheme(Tab);
                    Tabs.Controls.Add(Tab);
                }

                TableLayoutPanel FileDropOverlay = new TableLayoutPanel();
                FileDropOverlay.Size = this.Size;
                FileDropOverlay.Location = new Point(0, 0);
                FileDropOverlay.Controls.Add(new Elem.Text("Drop imports / backups here!"));
                FileDropOverlay.Controls.Add(new Elem.BigNewLine());
                FileDropOverlay.Controls.Add(new Elem.Text($"Supported level formats: {GDTools.Ext.LevelList}\r\nSupported backup formats: Folder, .zip, {GDTools.Ext.Backup}"));
                FileDropOverlay.Visible = false;
                FileDropOverlay.BringToFront();

                this.Controls.Add(FileDropOverlay);
                this.Controls.Add(Tabs);

                this.DragEnter += (s, e) => {
                    if (e.Data.GetDataPresent(DataFormats.FileDrop))
                    {
                        e.Effect = DragDropEffects.All;
                        FileDropOverlay.Visible = true;
                    }
                };
                this.DragLeave += (s, e) => {
                    FileDropOverlay.Visible = false;
                };
                this.DragDrop += (s, e) => {
                    string[] drops = (string[])e.Data.GetData(DataFormats.FileDrop, false);
                    foreach (string drop in drops)
                    {
                        if (File.GetAttributes(drop).HasFlag(FileAttributes.Directory))
                        {
                            ((Pages.Backups)Pages[Array.FindIndex(Pages, x => x.Name == "Backups")]).ImportBackup(drop);
                        }
                        else
                        {
                            foreach (string Ext in GDTools.Ext.ExtArray.Levels)
                            {
                                if (drop.EndsWith(Ext))
                                {
                                    ((Pages.Share)Pages[Array.FindIndex(Pages, x => x.Name == "Sharing")]).AddImport(drop);
                                }
                            }
                            foreach (string Ext in GDTools.Ext.ExtArray.Backups)
                            {
                                if (drop.EndsWith(Ext))
                                {
                                    ((Pages.Backups)Pages[Array.FindIndex(Pages, x => x.Name == "Backups")]).ImportBackup(drop);
                                }
                            }
                        }
                    }
                    FileDropOverlay.Visible = false;
                };
                AllowDrop = true;

                Task.Run <bool>(() => {
                    while (!GDTools.CheckIfGDIsOpen())
                    {
                        Thread.Sleep(GDTools._GDCheckLoopTime);
                    }

                    this.AwaitGDClose();

                    return(true);
                });
            }));
        }