Interaction logic for TextInputWindow.xaml
Наследование: System.Windows.Window
Пример #1
0
        internal void Sprite()
        {
            if (ArrowState.Self.CurrentArrowElementSave != null)
            {
                
                TextInputWindow tiw = new TextInputWindow();

                tiw.Text = "Enter new Sprite name:";
                tiw.Result = "Sprite";
                var result = tiw.ShowDialog();

                if (result.HasValue && result.Value)
                {
                    bool isInvalid = CheckAndShowMessageIfInvalid(tiw.Result);

                    if (!isInvalid)
                    {
                        SpriteSave spriteSave = new SpriteSave();
                        spriteSave.ScaleX = 16;
                        spriteSave.ScaleY = 16;
                        spriteSave.Name = tiw.Result;
                        spriteSave.ColorOperation = "Color";

                        spriteSave.TintRed = 255;
                        spriteSave.TintGreen = 255;

                        ArrowState.Self.CurrentArrowElementSave.Sprites.Add(spriteSave);

                        AfterAddLogic(ArrowState.Self.CurrentArrowElementSave, spriteSave);
                    }
                }
            }
        }
Пример #2
0
        public ArrowElementSave Element()
        {
            TextInputWindow tiw = new TextInputWindow();

            tiw.Text = "Enter new element name:";

            List<string> intentNames = new List<string>();

            const string noIntent = "<NO INTENT>";

            intentNames.Add(noIntent);
            foreach (var item in ArrowState.Self.CurrentArrowProject.Intents)
            {
                intentNames.Add(item.Name);
            }



            var treeView = tiw.AddTreeView(intentNames);


            var result = tiw.ShowDialog();

            if (result.HasValue && result.Value)
            {

                ArrowElementSave toReturn = new ArrowElementSave();
                toReturn.Name = tiw.Result;
                ArrowProjectSave projectToAddTo = ArrowState.Self.CurrentArrowProject;

                if (treeView.SelectedItem as string != noIntent)
                {
                    toReturn.Intent = treeView.SelectedItem as string;

                    ArrowIntentSave intent = new ArrowIntentSave();
                    IntentManager.Self.AddRequirementsForIntent(toReturn, intent);
                }

                projectToAddTo.Elements.Add(toReturn);

                ArrowCommands.Self.File.SaveProject();
                ArrowCommands.Self.File.GenerateGlux();
                ArrowState.Self.CurrentArrowProjectVm.Refresh();

                return toReturn;
            }
            else
            {
                return null;
            }
        }
Пример #3
0
        internal void ElementInstance()
        {
            if (ArrowState.Self.CurrentArrowElementSave != null)
            {
                //Show a text input window for the name, but add a combo box so the user can select the type
                TextInputWindow tiw = new TextInputWindow();

                TreeView treeView = new TreeView();
                treeView.HorizontalAlignment = HorizontalAlignment.Stretch;
                treeView.VerticalAlignment = VerticalAlignment.Top;
                treeView.Height = 80;
                treeView.Margin = new Thickness(3);

                List<ArrowElementSave> toAddToTreeView = new List<ArrowElementSave>();

                foreach (var elementSave in ArrowState.Self.CurrentArrowProject.Elements)
                {
                    if (elementSave != null && elementSave != ArrowState.Self.CurrentArrowElementSave)
                    {
                        toAddToTreeView.Add(elementSave);
                    }
                }

                treeView.ItemsSource = toAddToTreeView;

                tiw.AddControl(treeView);



                bool? result = tiw.ShowDialog();

                if (result.HasValue && result.Value)
                {
                    ArrowElementSave typeToAdd = treeView.SelectedItem as ArrowElementSave;

                    string name = tiw.Result;

                    ElementInstance(name, typeToAdd);
                }
                //tiw.AddControl
            }
        }
Пример #4
0
        internal void NewFile()
        {
            if (ArrowState.Self.CurrentArrowElementSave != null)
            {
                TextInputWindow tiw = new TextInputWindow();

                tiw.Text = "Enter new File name:";



                List<string> toAddToTreeView = new List<string>();
                toAddToTreeView.Add("Scene (.scnx)");
                tiw.AddTreeView(toAddToTreeView);

                var result = tiw.ShowDialog();

                if (result.HasValue && result.Value)
                {
                    SceneSave sceneSave = new SceneSave();
                //    bool isInvalid = CheckAndShowMessageIfInvalid(tiw.Result);

                //    if (!isInvalid)
                //    {
                //        SpriteSave spriteSave = new SpriteSave();
                //        spriteSave.ScaleX = 16;
                //        spriteSave.ScaleY = 16;
                //        spriteSave.Name = tiw.Result;
                //        spriteSave.ColorOperation = "Color";

                //        spriteSave.TintRed = 255;
                //        spriteSave.TintGreen = 255;

                //        ArrowState.Self.CurrentArrowElementSave.Sprites.Add(spriteSave);

                //        AfterAddLogic(ArrowState.Self.CurrentArrowElementSave, spriteSave);
                //    }
                }
            }
        }
Пример #5
0
        internal void Rectangle()
        {
            if (ArrowState.Self.CurrentArrowElementSave != null)
            {

                TextInputWindow tiw = new TextInputWindow();

                tiw.Text = "Enter new Rectangle name:";
                tiw.Result = "Rectangle";
                var result = tiw.ShowDialog();

                if (result.HasValue && result.Value)
                {
                    bool isInvalid = CheckAndShowMessageIfInvalid(tiw.Result);

                    if (!isInvalid)
                    {
                        AxisAlignedRectangleSave rectangleSave = new AxisAlignedRectangleSave();
                        rectangleSave.ScaleX = 16;
                        rectangleSave.ScaleY = 16;
                        rectangleSave.Name = tiw.Result;

                        ArrowState.Self.CurrentArrowElementSave.Rectangles.Add(rectangleSave);

                        AfterAddLogic(ArrowState.Self.CurrentArrowElementSave, rectangleSave);
                    }
                }
            }

        }
Пример #6
0
        internal void Circle()
        {
            if (ArrowState.Self.CurrentArrowElementSave != null)
            {

                TextInputWindow tiw = new TextInputWindow();

                tiw.Text = "Enter new Circle name:";
                tiw.Result = "Circle";

                var result = tiw.ShowDialog();

                if (result.HasValue && result.Value)
                {
                    bool isInvalid = CheckAndShowMessageIfInvalid(tiw.Result);

                    if (!isInvalid)
                    {
                        CircleSave circleSave = new CircleSave();
                        circleSave.Radius = 16;
                        circleSave.Name = tiw.Result;

                        ArrowState.Self.CurrentArrowElementSave.Circles.Add(circleSave);

                        AfterAddLogic(ArrowState.Self.CurrentArrowElementSave, circleSave);
                    }
                }
            }

        }
Пример #7
0
        private void AddItemClick(object sender, RoutedEventArgs e)
        {
            TextInputWindow tiw = new TextInputWindow();
            tiw.Text = "Enter new Intent name";
            var result = tiw.ShowDialog();
            if(result.HasValue && result.Value)
            {
                ViewModel.AddNewIntent(tiw.Result);

                SaveEverything();
            }
        }