예제 #1
0
        void ReleaseDesignerOutlets()
        {
            if (CSharpFile != null)
            {
                CSharpFile.Dispose();
                CSharpFile = null;
            }

            if (HTMLFile != null)
            {
                HTMLFile.Dispose();
                HTMLFile = null;
            }

            if (MarkDownFile != null)
            {
                MarkDownFile.Dispose();
                MarkDownFile = null;
            }

            if (XMLFile != null)
            {
                XMLFile.Dispose();
                XMLFile = null;
            }

            if (ChooseButton != null)
            {
                ChooseButton.Dispose();
                ChooseButton = null;
            }
        }
 public void NameTextBox_KeyPress(object sender, KeyPressEventArgs e)
 {
     if (e.KeyChar == (char)Keys.Enter)
     {
         UserController activeController = UserControllerManager.GetActive();
         if (activeController is ChooseButton)
         {
             ChooseButton button = (ChooseButton)activeController;
             if (!(button is null))
             {
                 button.Text = this.Text;
             }
             e.Handled = true;
             button.Refresh();   // Refresh print of button
         }
         else if (activeController is ToggleSwitch)
         {
             ToggleSwitch toggleSwitch = (ToggleSwitch)activeController;
             if (!(toggleSwitch is null))
             {
                 toggleSwitch.SwitchText = Text;
             }
             e.Handled = true;
             toggleSwitch.Refresh();   // Refresh print of button
         }
     }
 }
예제 #3
0
 void OnMouseDown()
 {
     if (PlayerPrefs.GetInt("Money") >= PlayerPrefs.GetInt("Price"))                                                                                                //Условие проверки того, хватает ли игроку звёзд на покупку нового куба.
     {
         PlayerPrefs.SetString(CubeSeen.GetComponent <ChooseCube>().ChosenCube, "Available");                                                                       //У CubeSeen берётся из скрипта ChooseCube переменная, в которой записано имя выбранного на данный момент куба, куб записывается в PlayerPrefs как доступный.
         PlayerPrefs.SetInt("Money", PlayerPrefs.GetInt("Money") - PlayerPrefs.GetInt("Price"));                                                                    //Уменьшение кол-ва звёзд на 50 как результат покупки.
         MainCube.GetComponent <MeshRenderer>().material = GameObject.Find(CubeSeen.GetComponent <ChooseCube>().ChosenCube).GetComponent <MeshRenderer>().material; //Нахождение материала выбранного куба и передача его основному кубу.
         PlayerPrefs.SetString("Now Cube", CubeSeen.GetComponent <ChooseCube>().ChosenCube);
         Bearer.GetComponent <AudioSource>().clip = Purchase;
         Bearer.GetComponent <AudioSource>().Play();
         ChooseButton.SetActive(true);
         gameObject.SetActive(false);
     }
 }
예제 #4
0
        void ReleaseDesignerOutlets()
        {
            if (TakeButton != null)
            {
                TakeButton.Dispose();
                TakeButton = null;
            }

            if (ChooseButton != null)
            {
                ChooseButton.Dispose();
                ChooseButton = null;
            }

            if (PictureImage != null)
            {
                PictureImage.Dispose();
                PictureImage = null;
            }
        }
        void ReleaseDesignerOutlets()
        {
            if (CancelButton != null)
            {
                CancelButton.Dispose();
                CancelButton = null;
            }

            if (ChooseButton != null)
            {
                ChooseButton.Dispose();
                ChooseButton = null;
            }

            if (ContainerView != null)
            {
                ContainerView.Dispose();
                ContainerView = null;
            }

            if (rootView != null)
            {
                rootView.Dispose();
                rootView = null;
            }

            if (TableView != null)
            {
                TableView.Dispose();
                TableView = null;
            }

            if (Title != null)
            {
                Title.Dispose();
                Title = null;
            }
        }
예제 #6
0
        private void FileList_MouseDoubleClick(object sender, MouseEventArgs e)
        {
            var list = new List <ListViewItem>();
            var skip = FileList.Items.Cast <ListViewItem>().Any(i => i.Text == "..");

            if (FileList.SelectedItems.Count != 0)
            {
                var lvi   = FileList.SelectedItems[0];
                int index = skip ? lvi.Index - 1 : lvi.Index;
                switch (lvi.ImageIndex)
                {
                case 0:
                    if (FileList.SelectedItems?[0].Text == "..")
                    {
                        var parNode = (FtpTreeNode)DirectoryTree.SelectedNode.Parent;
                        parNode.Select();
                    }
                    else
                    {
                        var parNode      = (FtpTreeNode)DirectoryTree.SelectedNode;
                        var selectedNode = (FtpTreeNode)parNode.Nodes[index];
                        selectedNode.Select();
                    }
                    break;

                case 1:
                    ChooseButton.PerformClick();
                    break;
                    //}
                }
            }
            else
            {
                SelectedFileNameDisplay = Empty;
            }
        }
 static public void AddChooseButton(ChooseButton chooseButton)
 {
     chooseButtons.Add(chooseButton);
     colorPicker.pickMouseDown(new MouseEventHandler(chooseButton.GetOnMouseClick()));
 }
예제 #8
0
        public static int Generate(Unit unit, Grid grid, CancellationToken token, MainWindow form, int width, int height)
        {
            List <AnswerBucket> buckets  = new List <AnswerBucket>();
            List <ChooseButton> buttons  = new List <ChooseButton>();
            List <AnswerGrid>   ansGrids = new List <AnswerGrid>();
            Label timer = null;

            if (unit.Type == UnitTypes.Sort)
            {
#pragma warning disable CS4014 // Так как этот вызов не ожидается, выполнение существующего метода продолжается до завершения вызова
                Task.WaitAny(InvokeInSTA(() => {
                    for (int i = 0; i < unit.ImagePaths.Count; i++)
                    {
                        var item = new AnswerBucket()
                        {
                            Margin = new Thickness(15, 0, 15, 0)
                        };
                        item.answer = 0;
                        buckets.Add(item);

                        item.Drop     += Item_Drop;
                        item.AllowDrop = true;

                        form.AnswerStack.Children.Add(item);
                    }

                    var margin = (width - (400 * width / 800) - (150 * unit.ImagePaths.Count)) / (unit.ImagePaths.Count - 1) + 150;

                    for (int i = 0; i < unit.ImagePaths.Count; i++)
                    {
                        var i1   = i;
                        var path = Directory.GetCurrentDirectory() + "\\" + unit.ImagePaths[i];
                        var num  = unit.ImageValues[i];

                        var img = new Image()
                        {
                            Width  = 125,
                            Height = 125,
                            Margin = new Thickness(i * 150 + 15, 0, 0, 0),
                            HorizontalAlignment = HorizontalAlignment.Left,
                            VerticalAlignment   = VerticalAlignment.Center,
                            Source = new BitmapImage(new Uri(path))
                        };

                        Grid.SetColumnSpan(img, 2);
                        img.MouseDown += (x, y) =>
                        {
                            var dragData = new DataObject(typeof(TestObject), new TestObject(img, unit.ImageValues[i1], (x as Image).Parent as Panel));
                            DragDrop.DoDragDrop((Image)x, dragData, DragDropEffects.Copy);
                        };

                        grid.Children.Add(img);
                    }
                }));
#pragma warning restore CS4014 // Так как этот вызов не ожидается, выполнение существующего метода продолжается до завершения вызова
            }
            else if (unit.Type == UnitTypes.Choose)
            {
                Task.WaitAny(InvokeInSTA(() => {
                    for (int i = 0; i < unit.ImagePaths.Count; i++)
                    {
                        var item = new ChooseButton()
                        {
                            Margin = new Thickness(15), Width = 220, Height = 75
                        };
                        buttons.Add(item);
                        item.Text.FontSize = 28;
                        item.Click        += (x, y) =>
                        {
                            foreach (var j in buttons)
                            {
                                j.toggled = false;
                            }
                            (x as ChooseButton).toggled = true;
                        };

                        form.AnswerStack.Children.Add(item);
                    }


                    for (int i = 0; i < unit.ImagePaths.Count; i++)
                    {
                        var i1   = i;
                        var path = Directory.GetCurrentDirectory() + "\\" + unit.ImagePaths[i];
                        var num  = unit.ImageValues[i];

                        var img = new Image()
                        {
                            Width  = 150,
                            Height = 150,
                            Margin = new Thickness(i * 250, 0, 0, 0),
                            HorizontalAlignment = HorizontalAlignment.Left,
                            VerticalAlignment   = VerticalAlignment.Center,
                            Source = new BitmapImage(new Uri(path))
                        };

                        grid.Children.Add(img);
                    }
                }));
            }
            else if (unit.Type == UnitTypes.Count)
            {
                List <Point> objectPoints = new List <Point>();

                Task.WaitAny(InvokeInSTA(() =>
                {
                    for (int i = 0; i < 9; i++)
                    {
                        var item = new ChooseButton()
                        {
                            Margin = new Thickness(10, 100, 10, 0), Width = 75, Height = 75
                        };
                        buttons.Add(item);
                        item.Text.FontSize = 24;
                        item.Text.Content  = i + 1;
                        item.defaultString = "" + (i + 1);
                        item.toggledString = "" + (i + 1);
                        item.Click        += (x, y) =>
                        {
                            foreach (var j in buttons)
                            {
                                j.toggled = false;
                            }
                            (x as ChooseButton).toggled = true;
                        };

                        form.AnswerStack.Children.Add(item);
                    }


                    for (int i = 0; i < unit.ImagePaths.Count; i++)
                    {
                        for (int z = 0; z < unit.ImageValues[i]; z++)
                        {
                            var x = rand.Next(width - 400);
                            var y = rand.Next(height - 300);
                            while (true)
                            {
                                if (objectPoints.Count == 0)
                                {
                                    break;
                                }
                                bool finded = true;
                                foreach (var k in objectPoints)
                                {
                                    if ((x > k.X - 100 && x < k.X + 100) && (y > k.Y - 100 && y < k.Y + 100))
                                    {
                                        finded = false;
                                        break;
                                    }
                                }
                                if (finded)
                                {
                                    break;
                                }
                                else
                                {
                                    x = rand.Next(width - 400);
                                    y = rand.Next(height - 300);
                                }
                            }

                            var p = new Point(x, y);
                            objectPoints.Add(p);


                            var i1   = i;
                            var path = Directory.GetCurrentDirectory() + "\\" + unit.ImagePaths[i];
                            var num  = unit.ImageValues[i];

                            var img = new Image()
                            {
                                Width  = 75,
                                Height = 75,
                                Margin = new Thickness(x, -100 + y, 0, 0),
                                HorizontalAlignment = HorizontalAlignment.Left,
                                VerticalAlignment   = VerticalAlignment.Top,
                                Source = new BitmapImage(new Uri(path))
                            };

                            grid.Children.Add(img);
                        }
                    }
                }));
            }
            else if (unit.Type == UnitTypes.Group)
            {
                List <Point> objectPoints = new List <Point>();
#pragma warning disable CS4014 // Так как этот вызов не ожидается, выполнение существующего метода продолжается до завершения вызова
                Task.WaitAny(InvokeInSTA(() => {
                    for (int i = 0; i < 2; i++)
                    {
                        var item = new AnswerGrid()
                        {
                            Margin = new Thickness(25, 120, 25, 0), Height = height - 170, Width = (width / 2) - 50
                        };
                        item.answer = "";
                        ansGrids.Add(item);

                        item.Drop     += Item_Drop_To_AnsGrid;
                        item.AllowDrop = true;

                        form.AnswerStack.Children.Add(item);
                    }

                    reGenerate:
                    for (int i = 0; i < unit.ImagePaths.Count; i++)
                    {
                        var imgSize      = 125;
                        var imgMargin    = 15;
                        Func <int> rollX = () => rand.Next((int)ansGrids[0].Width - imgSize - imgMargin * 2);
                        Func <int> rollY = () => rand.Next((int)ansGrids[0].Height - imgSize - imgMargin * 2);
                        var x            = rollX();
                        var y            = rollY();

                        var errCounter = 0;

                        while (errCounter++ < 100)
                        {
                            if (objectPoints.Count == 0)
                            {
                                break;
                            }
                            bool finded = true;
                            foreach (var k in objectPoints)
                            {
                                if (x > k.X - imgSize && x < k.X + imgSize && y > k.Y - imgSize && y < k.Y + imgSize)
                                {
                                    finded = false;
                                    break;
                                }
                            }
                            if (finded)
                            {
                                break;
                            }
                            else
                            {
                                x = rollX();
                                y = rollY();
                            }
                        }

                        if (errCounter >= 25)
                        {
                            objectPoints.Clear();
                            for (int z = 0; z < ansGrids[0].Bucket.Children.Count; z++)
                            {
                                if (ansGrids[0].Bucket.Children[z] is Image)
                                {
                                    ansGrids[0].Bucket.Children.Remove(ansGrids[0].Bucket.Children[z--]);
                                }
                            }
                            ansGrids[0].answer = "";
                            GC.Collect();
                            goto reGenerate;
                        }

                        var p = new Point(x, y);
                        objectPoints.Add(p);


                        var i1   = i;
                        var path = Directory.GetCurrentDirectory() + "\\" + unit.ImagePaths[i];
                        var num  = unit.ImageValues[i];

                        var img = new Image()
                        {
                            Width  = imgSize,
                            Height = imgSize,
                            Margin = new Thickness(x + imgMargin, y + imgMargin, 0, 0),
                            HorizontalAlignment = HorizontalAlignment.Left,
                            VerticalAlignment   = VerticalAlignment.Top,
                            Source = new BitmapImage(new Uri(path))
                        };

                        img.MouseDown += (x1, y1) =>
                        {
                            var dragData = new DataObject(typeof(TestObject), new TestObject(img, unit.ImageValues[i1], (x1 as Image).Parent as Panel));
                            DragDrop.DoDragDrop((Image)x1, dragData, DragDropEffects.Copy);
                        };

                        ansGrids[0].Bucket.Children.Add(img);
                        ansGrids[0].answer += unit.ImageValues[i1];
                    }
                }));
#pragma warning restore CS4014 // Так как этот вызов не ожидается, выполнение существующего метода продолжается до завершения вызова
            }

            Task.WaitAny(InvokeInSTA(() => timer = (grid as FrameworkElement).FindName("TimeLabel") as Label));
            int time = 0;

            while (time >= 0 && !token.IsCancellationRequested)
            {
                InvokeInSTA(() => {
                    var minutes   = time / 60;
                    var seconds   = time % 60;
                    timer.Content = (minutes >= 10 ? "" + minutes : "0" + minutes) + ":" + (seconds >= 10 ? "" + seconds : "0" + seconds);
                });
                Task.WaitAny(Task.Delay(1000));
                time++;
            }

            if (time == 0)
            {
                return(1);
            }
            else
            {
                return(0);
            }
        }