/// <summary>
        /// Sets up user interface using MonoGame.Extended.Gui.
        /// </summary>
        private void SetupUserInterface()
        {
            var viewportAdapter = new BoxingViewportAdapter(
                this.Window,
                this.GraphicsDevice,
                this.ScreenWidth,
                this.ScreenHeight);
            var guiRenderer = new GuiSpriteBatchRenderer(this.GraphicsDevice, () => Matrix.Identity);

            BitmapFont guiFont = this.Content.Load <BitmapFont>("fonts/PixelAzureBondsBitmap24");

            BitmapFont.UseKernings = false;
            Skin.CreateDefault(guiFont);

            this.guiSystem = new GuiSystem(viewportAdapter, guiRenderer)
            {
                ActiveScreen = new MonoGame.Extended.Gui.Screen
                {
                    Content = new StackPanel
                    {
                        Width  = this.ScreenWidth,
                        Height = this.ScreenHeight,
                    }
                }
            };

            this.guiSystem.ActiveScreen.Hide();
        }
Beispiel #2
0
        protected override void LoadContent()
        {
            var viewportAdapter = new BoxingViewportAdapter(Window, GraphicsDevice, 800, 480);

            _camera = new Camera2D(viewportAdapter);

            var titleScreen = LoadScreen(@"Content/title-screen.json");
            var guiRenderer = new GuiSpriteBatchRenderer(GraphicsDevice, titleScreen.Skin.DefaultFont, _camera.GetViewMatrix);

            _guiSystem = new GuiSystem(viewportAdapter, guiRenderer)
            {
                Screen = titleScreen
            };

            var panel = titleScreen.FindControl <GuiPanel>("MainPanel");

            var closeButton = titleScreen.FindControl <GuiButton>("CloseButton");

            closeButton.Clicked += (sender, args) => { panel.IsVisible = false; };

            var quitButton = titleScreen.FindControl <GuiButton>("QuitButton");

            quitButton.Clicked += (sender, args) => Exit();

            _progressBar = titleScreen.FindControl <GuiProgressBar>("ProgressBar");
        }
Beispiel #3
0
        void LoadGui()
        {
            var viewportAdapter = new DefaultViewportAdapter(_sceneHandler._graphicsDevice);
            var guiRenderer     = new GuiSpriteBatchRenderer(_sceneHandler._graphicsDevice, () => Matrix.Identity);
            var font            = _sceneHandler._content.Load <BitmapFont>("Sensation");
            var JoinButton      = new Button {
                Content = "Start"
            };

            JoinButton.PressedStateChanged += OnJoinButtonClick;
            BitmapFont.UseKernings          = false;
            Skin.CreateDefault(font);
            chatText = new TextBox {
                Text = "Send message", Position = new Point(0, 150)
            };
            var controlTest = new StackPanel
            {
                Items =
                {
                    chatText,
                    JoinButton
                },
                VerticalAlignment = VerticalAlignment.Bottom
            };

            var demoScreen = new Screen
            {
                Content = controlTest,
            };

            _guiSystem = new GuiSystem(viewportAdapter, guiRenderer)
            {
                ActiveScreen = demoScreen
            };
        }
Beispiel #4
0
        public GuiSystem CreateUI(GraphicsDevice graphicsDevice)
        {
            var viewportAdapter = new DefaultViewportAdapter(graphicsDevice);
            var guiRenderer     = new GuiSpriteBatchRenderer(graphicsDevice, () => Matrix.Identity);

            return(new GuiSystem(viewportAdapter, guiRenderer)
            {
                ActiveScreen = CreateScreen()
            });
        }
        protected override void LoadContent()
        {
            var viewportAdapter = new BoxingViewportAdapter(Window, GraphicsDevice, 800, 480);

            _camera = new OrthographicCamera(viewportAdapter);

            var skin        = GuiSkin.FromFile(Content, @"Raw/adventure-gui-skin.json");
            var guiRenderer = new GuiSpriteBatchRenderer(GraphicsDevice, _camera.GetViewMatrix);

            _guiSystem = new GuiSystem(viewportAdapter, guiRenderer)
            {
                Screens = { new GuiLayoutScreen(skin, GraphicsDevice) }
            };
        }
Beispiel #6
0
        protected override void LoadContent()
        {
            ViewportAdapter = new BoxingViewportAdapter(Window, GraphicsDevice, 800, 480);

            var skin        = GuiSkin.FromFile(Content, @"Raw/adventure-gui-skin.json");
            var guiRenderer = new GuiSpriteBatchRenderer(GraphicsDevice, ViewportAdapter.GetScaleMatrix);

            _guiSystem = new GuiSystem(ViewportAdapter, guiRenderer)
            {
                Screens = { new SelectDemoScreen(skin, _demos, LoadDemo) }
            };

            //LoadDemo(_demoIndex);
        }
Beispiel #7
0
        protected override void LoadContent()
        {
            IsMouseVisible = false;

            // _viewportAdapter = new BoxingViewportAdapter(Window, GraphicsDevice, _graphicsDeviceManager.PreferredBackBufferWidth, _graphicsDeviceManager.PreferredBackBufferHeight);
            _viewportAdapter = new WindowViewportAdapter(Window, GraphicsDevice);

            _skin = GuiSkin.FromFile(Content, @"Content/adventure-gui-skin.json", typeof(MyPanel));
            var guiRenderer = new GuiSpriteBatchRenderer(GraphicsDevice, _viewportAdapter.GetScaleMatrix);

            var viewModel = new ViewModel();

            LoadGuiButtonScreen();

            //_screen = GuiScreen.FromFile(Content, "Content/test-addition-screen.json", typeof(MyPanel));
            //Window.ClientSizeChanged += OnClientSizeChanged;

            //_screen = GuiScreen.FromFile(Content, "Content/adventure-gui-screen.json", typeof(MyPanel));

            //var listBox = _screen.FindControl<GuiListBox>("Listbox");
            //listBox.Items.Add(new { Name = "Hello World 1" });
            //listBox.Items.Add(new { Name = "Hello World 2" });
            //listBox.Items.Add(new { Name = "Hello World 3" });
            //listBox.Items.Add(new { Name = "Hello World 4" });

            //var comboBox = _screen.FindControl<GuiComboBox>("ComboBox");
            //comboBox.Items.Add(new { Name = "Hello World 1" });
            //comboBox.Items.Add(new { Name = "Hello World 2" });
            //comboBox.Items.Add(new { Name = "Hello World 3" });
            //comboBox.Items.Add(new { Name = "Hello World 4" });

            //var submit = _screen.FindControl<GuiSubmit>("FormSubmit");
            //submit.SetBinding(nameof(GuiButton.Text), nameof(viewModel.Name));
            //submit.Clicked += OnFormSubmitClicked;
            //submit.Clicked += (s, e) => { viewModel.Name = viewModel.Name == "Change" ? "Alistrasza" : "Change"; };

            _screen.BindingContext = viewModel;

            _guiSystem = new GuiSystem(_viewportAdapter, guiRenderer)
            {
                Screens =
                {
                    _screen
                    // new BindingScreen(_skin, viewModel)
                }
            };
        }
Beispiel #8
0
        protected override void LoadContent()
        {
            ViewportAdapter = new BoxingViewportAdapter(Window, GraphicsDevice, 800, 480);

            //var skin = GuiSkin.FromFile(Content, @"Raw/adventure-gui-skin.json");
            var guiRenderer = new GuiSpriteBatchRenderer(GraphicsDevice, ViewportAdapter.GetScaleMatrix);

            var font = Content.Load <BitmapFont>("small-font");

            BitmapFont.UseKernings = false;
            Skin.CreateDefault(font);
            _selectDemoScreen = new SelectDemoScreen(_demos, LoadDemo, Exit);

            _guiSystem = new GuiSystem(ViewportAdapter, guiRenderer)
            {
                ActiveScreen = _selectDemoScreen,
            };
        }
Beispiel #9
0
        protected override void LoadContent()
        {
            IsMouseVisible = false;

            _viewportAdapter = new BoxingViewportAdapter(Window, GraphicsDevice, _graphicsDeviceManager.PreferredBackBufferWidth, _graphicsDeviceManager.PreferredBackBufferHeight);

            var skin        = GuiSkin.FromFile(Content, @"Content/adventure-gui-skin.json", typeof(MyPanel));
            var guiRenderer = new GuiSpriteBatchRenderer(GraphicsDevice, _viewportAdapter.GetScaleMatrix);

            var viewModel = new ViewModel();

            _guiSystem = new GuiSystem(_viewportAdapter, guiRenderer)
            {
                Screens =
                {
                    new BindingScreen(skin, viewModel)
                }
            };
        }
Beispiel #10
0
        protected override void LoadContent()
        {
            IsMouseVisible = false;

            _viewportAdapter = new BoxingViewportAdapter(Window, GraphicsDevice, 800, 480);
            _camera          = new Camera2D(_viewportAdapter);

            _spriteBatch       = new SpriteBatch(GraphicsDevice);
            _backgroundTexture = Content.Load <Texture2D>("Textures/colored_castle");

            var titleScreen = GuiScreen.FromFile(Content, @"Content/title-screen.json");
            var guiRenderer = new GuiSpriteBatchRenderer(GraphicsDevice, _camera.GetViewMatrix);

            _guiSystem = new GuiSystem(_viewportAdapter, guiRenderer)
            {
                Screens = { titleScreen }
            };

            var quitButton = titleScreen.FindControl <GuiButton>("QuitButton");

            quitButton.Clicked += (sender, args) => _game.Back();
        }
Beispiel #11
0
        protected override void LoadContent()
        {
            ViewportAdapter = new DefaultViewportAdapter(GraphicsDevice);
            var guiRenderer = new GuiSpriteBatchRenderer(GraphicsDevice, () => Matrix.Identity);
            var font        = Game.Content.Load <BitmapFont>("Menus/Color Picker/Sensation");

            BitmapFont.UseKernings = false;
            Skin.CreateDefault(font);

            var demoScreen = new Screen
            {
                Content = new StackPanel
                {
                    Margin      = 5,
                    Orientation = Orientation.Vertical,
                    Items       =
                    {
                        new Label("Buttons")
                        {
                            Margin = 5
                        },
                        new Label("TextBox")
                        {
                            Margin = 5
                        },
                        new MonoGame.Extended.Gui.Controls.TextBox {
                            Text = "TextBox"
                        },
                    }
                }
            };

            guiSystem = new GuiSystem(ViewportAdapter, guiRenderer)
            {
                ActiveScreen = demoScreen
            };

            base.LoadContent();
        }
Beispiel #12
0
        void LoadGui()
        {
            var viewportAdapter = new DefaultViewportAdapter(_sceneHandler._graphicsDevice);
            var guiRenderer     = new GuiSpriteBatchRenderer(_sceneHandler._graphicsDevice, () => Matrix.Identity);
            var font            = _sceneHandler._content.Load <BitmapFont>("Sensation");

            BitmapFont.UseKernings = false;
            Skin.CreateDefault(font);
            var JoinButton = new Button {
                Content = "Join to server"
            };

            IPTextBox = new TextBox {
                Text = "127.0.0.1", HorizontalAlignment = HorizontalAlignment.Right, VerticalAlignment = VerticalAlignment.Bottom
            };
            NameTextBox = new TextBox {
                Text = "Name", HorizontalAlignment = HorizontalAlignment.Right, VerticalAlignment = VerticalAlignment.Bottom
            };
            JoinButton.PressedStateChanged += ChatText_PressedStateChanged;
            var controlTest = new StackPanel
            {
                Items =
                {
                    new StackPanel
                    {
                        Items =
                        {
                            new Label("Name:")
                            {
                                HorizontalAlignment = HorizontalAlignment.Left, VerticalAlignment = VerticalAlignment.Bottom,
                            },
                            NameTextBox,
                        },
                        Orientation = Orientation.Horizontal
                    },
                    new StackPanel
                    {
                        Items =
                        {
                            new Label("Ip:")
                            {
                                HorizontalAlignment = HorizontalAlignment.Left, VerticalAlignment = VerticalAlignment.Bottom,
                            },
                            IPTextBox,
                        },
                        Orientation = Orientation.Horizontal
                    },
                    JoinButton
                }

                ,
                VerticalAlignment   = VerticalAlignment.Centre,
                HorizontalAlignment = HorizontalAlignment.Centre,
                Spacing             = 5
            };


            var demoScreen = new Screen
            {
                Content = controlTest
            };

            _guiSystem = new GuiSystem(viewportAdapter, guiRenderer)
            {
                ActiveScreen = demoScreen
            };
        }
Beispiel #13
0
        protected override void LoadContent()
        {
            var viewportAdapter = new DefaultViewportAdapter(GraphicsDevice);
            var guiRenderer     = new GuiSpriteBatchRenderer(GraphicsDevice, () => Matrix.Identity);
            var font            = Content.Load <BitmapFont>("Sensation");

            BitmapFont.UseKernings = false;
            Skin.CreateDefault(font);

            //var parser = new MarkupParser();

            //var mainScreen = new Screen
            //{
            //    Content = parser.Parse("Features/MainWindow.mgeml", new object())
            //};

            //var textBox = mainScreen.FindControl<TextBox>("TextBox");
            //var statusLabel = mainScreen.FindControl<Label>("StatusLabel");

            //textBox.CaretIndexChanged += (sender, args) =>
            //    statusLabel.Content = $"Ln {textBox.LineIndex + 1}, Ch {textBox.CaretIndex + 1}";



            var stackTest = new DemoViewModel("Stack Panels",
                                              new StackPanel
            {
                Items =
                {
                    new Button {
                        Content = "Press Me", HorizontalAlignment = HorizontalAlignment.Left, VerticalAlignment = VerticalAlignment.Top
                    },
                    new Button {
                        Content = "Press Me", HorizontalAlignment = HorizontalAlignment.Right, VerticalAlignment = VerticalAlignment.Bottom
                    },
                    new Button {
                        Content = "Press Me", HorizontalAlignment = HorizontalAlignment.Centre, VerticalAlignment = VerticalAlignment.Centre
                    },
                    new Button {
                        Content = "Press Me", HorizontalAlignment = HorizontalAlignment.Stretch, VerticalAlignment = VerticalAlignment.Stretch
                    },
                }
            });

            var dockTest = new DemoViewModel("Dock Panels",
                                             new DockPanel
            {
                Items =
                {
                    new Button {
                        Content = "Dock.Top", AttachedProperties ={                                     { DockPanel.DockProperty, Dock.Top    } }
                    },
                    new Button {
                        Content = "Dock.Bottom", AttachedProperties ={                                     { DockPanel.DockProperty, Dock.Bottom } }
                    },
                    new Button {
                        Content = "Dock.Left", AttachedProperties ={                                     { DockPanel.DockProperty, Dock.Left   } }
                    },
                    new Button {
                        Content = "Dock.Right", AttachedProperties ={                                     { DockPanel.DockProperty, Dock.Right  } }
                    },
                    new Button {
                        Content = "Fill"
                    }
                }
            });

            var controlTest = new DemoViewModel("Basic Controls",
                                                new StackPanel
            {
                Margin      = 5,
                Orientation = Orientation.Vertical,
                Items       =
                {
                    new Label("Buttons")
                    {
                        Margin = 5
                    },
                    new StackPanel
                    {
                        Orientation = Orientation.Horizontal,
                        Spacing     = 5,
                        Items       =
                        {
                            new Button       {
                                Content = "Enabled"
                            },
                            new Button       {
                                Content = "Disabled", IsEnabled = false
                            },
                            new ToggleButton {
                                Content = "ToggleButton"
                            }
                        }
                    },

                    new Label("TextBox")
                    {
                        Margin = 5
                    },
                    new TextBox              {
                        Text = "TextBox"
                    },

                    new Label("CheckBox")
                    {
                        Margin = 5
                    },
                    new CheckBox             {
                        Content = "Check me please!"
                    },

                    new Label("ListBox")
                    {
                        Margin = 5
                    },
                    new ListBox              {
                        Items =              { "ListBoxItem1",  "ListBoxItem2",  "ListBoxItem3"  }, SelectedIndex =                          0
                    },

                    new Label("ProgressBar")
                    {
                        Margin = 5
                    },
                    new ProgressBar          {
                        Progress = 0.5f, Width = 100
                    },

                    new Label("ComboBox")
                    {
                        Margin = 5
                    },
                    new ComboBox             {
                        Items =              { "ComboBoxItemA", "ComboBoxItemB", "ComboBoxItemC" }, SelectedIndex =0, HorizontalAlignment = HorizontalAlignment.Left
                    }
                }
            });

            var demoScreen = new Screen
            {
                Content = new DockPanel
                {
                    LastChildFill = true,
                    Items         =
                    {
                        new ListBox
                        {
                            Name = "DemoList",
                            AttachedProperties  = { { DockPanel.DockProperty, Dock.Left } },
                            ItemPadding         = new Thickness(5),
                            VerticalAlignment   = VerticalAlignment.Stretch,
                            HorizontalAlignment = HorizontalAlignment.Left,
                            SelectedIndex       = 0,
                            Items ={ controlTest, stackTest, dockTest }
                        },
                        new ContentControl
                        {
                            Name            = "Content",
                            BackgroundColor = new Color(30, 30, 30)
                        }
                    }
                }
            };

            _guiSystem = new GuiSystem(viewportAdapter, guiRenderer)
            {
                ActiveScreen = demoScreen
            };

            var demoList    = demoScreen.FindControl <ListBox>("DemoList");
            var demoContent = demoScreen.FindControl <ContentControl>("Content");

            demoList.SelectedIndexChanged += (sender, args) => demoContent.Content = (demoList.SelectedItem as DemoViewModel)?.Content;
            demoContent.Content            = (demoList.SelectedItem as DemoViewModel)?.Content;
        }