Exemplo n.º 1
0
        public override void Initialize()
        {
            creditWindow = new Window(manager);
            creditWindow.Init();
            creditWindow.Width = 300;
            creditWindow.Height = 200;
            creditWindow.Center();
            creditWindow.Text = "Credits";
            creditWindow.Visible = false;
            creditWindow.IconVisible = false;
            manager.Add(creditWindow);

            textBox = new TextBox(manager);
            textBox.Init();
            textBox.Parent = creditWindow;
            textBox.Left = 8;
            textBox.Top = 8;
            textBox.Width = creditWindow.ClientArea.Width - 16;
            textBox.Height = creditWindow.Height - 48;
            textBox.Anchor = Anchors.All;
            textBox.Mode = TextBoxMode.Multiline;
            textBox.ReadOnly = true;

            string text = "Makers of The Little Cheese Boy Editor:\n"+ GetCreators();

            text += "\n\nSpecial Thanks to Alexander Brodén and \nMattias Liljeson for their great work \non The Little Cheese Boy!";

            textBox.Text = text;

            textBox.ScrollBars = ScrollBars.None;
            textBox.CanFocus = false;
            textBox.TextColor = Color.White;
        }
Exemplo n.º 2
0
        public override void Initialize()
        {
            Viewport viewport = ((ContentSystem)world.SystemManager.GetSystem<ContentSystem>()[0]).GetViewport();

            originalWidth = (int)((float)viewport.Width * 0.5f);

            //Notification Bar
            notificationWindow = new Window(manager);
            notificationWindow.Init();
            notificationWindow.Text = "Notification Bar";
            notificationWindow.Height = 110;
            notificationWindow.Width = originalWidth;
            notificationWindow.Visible = true;
            notificationWindow.Top = viewport.Height - notificationWindow.Height;
            notificationWindow.Left = viewport.Width/2 - originalWidth/2;
            notificationWindow.CloseButtonVisible = false;
            notificationWindow.AutoScroll = true;
            notificationWindow.Resizable = true;
            notificationWindow.Click += new TomShane.Neoforce.Controls.EventHandler(OnWindowClickBehavior);
            notificationWindow.IconVisible = false;
            manager.Add(notificationWindow);

            NotificationBar data = new NotificationBar(m_device, m_content, originalWidth-32, 25);

            notificationBar = new NotificationBarContainer(manager, notificationWindow, data);
            notificationBar.Init();
            notificationBar.Width = originalWidth-32;// tilemap.tilemapImage.Width;
            notificationBar.Height = 160;// tilemap.tilemapImage.Height;
            notificationBar.Parent = notificationWindow;
            notificationBar.CanFocus = false;
            notificationBar.MouseOver += new TomShane.Neoforce.Controls.MouseEventHandler(OnGainFocus);
            notificationBar.MouseOut += new TomShane.Neoforce.Controls.MouseEventHandler(OnLoseFocus);
        }
Exemplo n.º 3
0
Arquivo: Options.cs Projeto: tubitos/1
        protected override void LoadContent(PloobsEngine.Engine.GraphicInfo GraphicInfo, PloobsEngine.Engine.GraphicFactory factory, PloobsEngine.SceneControl.IContentManager contentManager)
        {
            base.LoadContent(GraphicInfo, factory, contentManager);

            ngui = Gui as NeoforceGui;
            manager = ngui.Manager;

            Window window = new Window(manager);
            window.Init();
            window.Text = "Options";
            window.Width = 480;
            window.Height = 200;
            window.Center();
            window.Visible = true;

            Button button = new Button(manager);
            button.Init();
            button.Text = "OK";
            button.Width = 72;
            button.Height = 24;
            button.Left = (window.ClientWidth / 2) - (button.Width / 2);
            button.Top = window.ClientHeight - button.Height - 8;
            button.Anchor = Anchors.Bottom;
            button.Parent = window;
            button.Click += new TomShane.Neoforce.Controls.EventHandler(button_Click);

            manager.Add(window);
        }
Exemplo n.º 4
0
    ////////////////////////////////////////////////////////////////////////////    

    #endregion 
    
		#region //// Methods ///////////
			
		////////////////////////////////////////////////////////////////////////////
		protected override void Initialize()
    {
      base.Initialize();                                                                      
      
      // Create and setup Window control.
      window = new Window(Manager);
      window.Init();      
      window.Text = "Getting Started";
      window.Width = 480;
      window.Height = 200;      
      window.Center();
      window.Visible = true;      
      
      // Create Button control and set the previous window as its parent.
      button = new Button(Manager);
      button.Init();
      button.Text = "OK";
      button.Width = 72;
      button.Height = 24;
      button.Left = (window.ClientWidth / 2) - (button.Width / 2);
      button.Top = window.ClientHeight - button.Height - 8;
      button.Anchor = Anchors.Bottom; 
      button.Parent = window;
      
      // Add the window control to the manager processing queue.
      Manager.Add(window);
    }
Exemplo n.º 5
0
 public UndoTreeContainer(Manager p_manager, Window p_parent, GraphicsDevice p_gd,
     ContentManager p_content)
     : base(p_manager)
 {
     m_windowParent = p_parent;
     m_gd = p_gd;
     m_undoTree = new UndoTree(p_gd,p_content);
 }
Exemplo n.º 6
0
        public override void Initialize()
        {
            ContentSystem contentSystem = ((ContentSystem)world.SystemManager.GetSystem<ContentSystem>()[0]);
            Viewport viewport = contentSystem.GetViewport();

            tilemapWindow = new Window(manager);
            tilemapWindow.Init();
            tilemapWindow.Text = "Tilemap";
            if (enableWindowAutoSize)
            {
                tilemapWindow.Resizable = false;
                tilemapWindow.Movable = false;
                tilemapWindow.Height = viewport.Height;
                tilemapWindow.MouseOver += new TomShane.Neoforce.Controls.MouseEventHandler(OnMouseOverBehavior);
                tilemapWindow.MouseOut += new TomShane.Neoforce.Controls.MouseEventHandler(OnMouseOutBehavior);
            }
            else
            {
                // tilemapWindow.Height = 196;
                tilemapWindow.Height = viewport.Height;
            }
            tilemapWindow.Width = 210;
            tilemapWindow.Visible = true;
            tilemapWindow.Top = viewport.Height - tilemapWindow.Height;
            tilemapWindow.Left = 0;
            // (int)((float)viewport.Width -tilemapWindow.Width);
            tilemapWindow.CloseButtonVisible = false;
            tilemapWindow.MaximumHeight = 960 + 54;
            tilemapWindow.MaximumWidth = 960 + 32;
            tilemapWindow.IconVisible = false;
            tilemapWindow.Click += new TomShane.Neoforce.Controls.EventHandler(OnWindowClickBehavior);
            manager.Add(tilemapWindow);

            tilemap = new TilemapContainer(manager, m_content);
            tilemap.gridImage = contentSystem.LoadTexture("TileSheets/grid");
            tilemap.tileSelectorImage = contentSystem.LoadTexture("TileSheets/tileSelector");
            tilemap.Parent = tilemapWindow;
            tilemap.windowParent = tilemapWindow;
            tilemap.Width = 960;
            tilemap.Height = 960;
            tilemap.Parent = tilemapWindow;
            tilemap.gridColor = Color.Black;
            tilemap.CanFocus = false;
            tilemap.Click += new TomShane.Neoforce.Controls.EventHandler(OnClick);
            tilemap.DoubleClicks = false;
            tilemap.MouseDown += new TomShane.Neoforce.Controls.MouseEventHandler(OnMouseDown);
            tilemap.MouseDown += new MouseEventHandler(PanningMouseDownBehavior);
            tilemap.MouseMove += new MouseEventHandler(PanningMouseMoveBehavior);
            tilemap.MouseUp += new MouseEventHandler(PanningMouseUpBehavior);
            tilemap.MouseOut += new TomShane.Neoforce.Controls.MouseEventHandler(lostFocusBehavior);
            if (enableWindowAutoSize)
            {
                tilemap.MouseOver += new TomShane.Neoforce.Controls.MouseEventHandler(OnMouseOverBehavior);
                tilemap.MouseOut += new TomShane.Neoforce.Controls.MouseEventHandler(OnMouseOutBehavior);
            }
            tilemap.Init(contentSystem.GetViewportSize());
        }
Exemplo n.º 7
0
    ////////////////////////////////////////////////////////////////////////////    

    #endregion 
    
		#region //// Methods ///////////
			
		////////////////////////////////////////////////////////////////////////////
		protected override void Initialize()
    {
      base.Initialize();
      
      // Load image      
      image = Content.Load<Texture2D>("Content\\Image");
                                                
      // Creates and initializes window
      window = new Window(manager);
      window.Init();      
      window.Text = "ScrollBars";
      window.Width = 360;
      window.Height = 360;      
      window.Center();
      window.Visible = true;      

      // Setup of the vertical scrollbar      
      vert = new ScrollBar(manager, Orientation.Vertical);
      vert.Init();
      vert.Parent = window;
      vert.Top = 0;
      vert.Left = window.ClientWidth - vert.Width ;
      vert.Height = window.ClientHeight - vert.Width;
      vert.Value = 0;
      vert.Anchor = Anchors.Top | Anchors.Right | Anchors.Bottom;

      // Setup of the horizontal scrollbar
      horz = new ScrollBar(manager, Orientation.Horizontal);
      horz.Init();
      horz.Parent = window;
      horz.Left = 0;
      horz.Top = window.ClientHeight - horz.Height;
      horz.Width = window.ClientWidth - vert.Width;
      horz.Value = 0;
      horz.Anchor = Anchors.Left | Anchors.Right | Anchors.Bottom;
      
      // Creates imagebox in the client area
      box = new ImageBox(manager);
      box.Init();
      box.Parent = window;
      box.Left = 0;
      box.Top = 0;
      box.Width = window.ClientWidth - vert.Width;
      box.Height = window.ClientHeight - horz.Height;
      box.Image = image;      
      box.Anchor = Anchors.All;
            
      // Add window to manager processing
      manager.Add(window);

      // Bind events
      window.Resize += new ResizeEventHandler(Recalc);
      vert.ValueChanged += new EventHandler(ValueChanged);
      horz.ValueChanged += new EventHandler(ValueChanged);
      Recalc(this, null); // Calculates initial properties of the scrollbars
    }
Exemplo n.º 8
0
        public override void LoadContent(ContentManager contentloader)
        {
            _guiman = new Manager(_gamemanager.Game, _gamemanager.Graphics, "Default");
            _guiman.Initialize();

            _settingsmenu = new Window(_guiman);
            _settingsmenu.Init();
            _settingsmenu.Resizable = false;
            _settingsmenu.Movable = false;
            _settingsmenu.CloseButtonVisible = false;
            _settingsmenu.Text = "Settings Menu";
            _settingsmenu.Width = 300;
            _settingsmenu.Height = 400;
            _settingsmenu.Center();
            _settingsmenu.Visible = true;
            _settingsmenu.BorderVisible = true;
            _settingsmenu.Cursor = _guiman.Skin.Cursors["Default"].Resource;

            _back = new Button(_guiman);
            _back.Init();
            _back.Text = "Go Back";
            _back.Width = 200;
            _back.Height = 50;
            _back.Left = 50;
            _back.Top = 300;
            _back.Anchor = Anchors.Bottom;
            _back.Parent = _settingsmenu;

            _playername = new TextBox(_guiman);
            _playername.Init();
            _playername.Text = _gamemanager.Pbag.Player.Name;
            _playername.Width = 200;
            _playername.Height = 50;
            _playername.Left = 50;
            _playername.Top = 0;
            _playername.Anchor = Anchors.Bottom;
            _playername.Parent = _settingsmenu;

            _volume = new ScrollBar(_guiman, Orientation.Horizontal);
            _volume.Init();
            //Todo check why volume.value is reseting it to 50 :S
            _volume.Value = _gamemanager.Audiomanager.GetVolume();
            _volume.Range = 100;
            _volume.PageSize = 10;
            _volume.StepSize = 1;
            _volume.Width = 200;
            _volume.Height = 50;
            _volume.Left = 50;
            _volume.Top = 50;
            _volume.Anchor = Anchors.Bottom;
            _volume.Parent = _settingsmenu;

            _guiman.Add(_settingsmenu);

            _gamemanager.Game.IsMouseVisible = true;
        }
Exemplo n.º 9
0
 public void ClearWindow()
 {
     if (currentWindow != null)
     {
         manager.Remove(currentWindow);
         currentWindow = null;
     }
     else
         return;
 }
Exemplo n.º 10
0
        private IGameState[] CardSelected(Manager manager, GameInfo gameInfo, Story story)
        {
            var storyGraphic = gameInfo.Content.Load<Texture2D>(story.StoryGraphic);
            const int spacing = 20;
            const int width = 400;
            var yPos = spacing;

            var window = new Window(manager) {
                Text =
                    String.Format("Your fate has been decided! You spun a {0} story", story.StoryType), AutoScroll = false
            };

            window.Init();

            var storybox = new GroupBox(manager) { Width = 400, Height = 100, Left = 30, Top = yPos, Parent = window, Color = story.StoryType == StoryType.Red ? Color.Red : Color.Black, Text = ""+story.StoryType, TextColor = Color.White };
            storybox.Init();

            var storylabel = new Label(manager)
            {
                Width = storybox.Width,
                Height = storybox.Height,
                Parent = storybox,
                Text = story.DisplayedMessage,
                Left = spacing,
                StayOnTop = true
            };
            storylabel.Init();

            var imageBox = new ImageBox(manager)
            {
                Left = window.Width/2-100,
                Top = 140,
                Image = storyGraphic,
                Color = Color.White,
                Width = storyGraphic.Width,
                Height = storyGraphic.Height
            };
            imageBox.Init();
            window.Add(imageBox);
            var close = new Button(manager) { Text = "OK", Top = window.Height-50-spacing, Left = window.Width / 2 - 50, Parent = window };
            close.Init();
            close.Click += (sender, args) => window.Close();

            window.Closed += (sender, args) => WindowClosed(gameInfo);

            manager.Add(window);

            if (story.Positive)
                gameInfo.Content.Load<SoundEffect>("Sounds/applause").Play();
            else
                gameInfo.Content.Load<SoundEffect>("Sounds/sadtrombone").Play();

            return new[] { story.PureLogic, waitState };
        }
Exemplo n.º 11
0
        public void SwitchWindows(Window window)
        {
            if (currentWindow != null)
            {
                currentWindow.Close();
                manager.Remove(currentWindow);
            }

            currentWindow = window;
            manager.Add(currentWindow);
        }
Exemplo n.º 12
0
        public override void Initialize()
        {
            #region Initialize Window
            //Create Window
            m_Window = new Window(Global.GUIManager);
            m_Window.Init();
            m_Window.CloseButtonVisible = false;
            m_Window.Movable = false;
            m_Window.StayOnBack = true;
            m_Window.Resizable = false;

            m_Window.Text = "Pause Game";
            m_Window.Top = 150;
            m_Window.Left = 170;
            m_Window.Width = 450;
            m_Window.Height = 330;
            m_Panel.Add(m_Window);
            Global.GUIManager.Add(m_Window);
            #endregion

            #region Initialize Buttons
            m_PauseButtons = new Button[(m_Editor) ? 4 : 3];
            for (int i = 0; i < m_PauseButtons.Length; i++) {
                //Create buttons
                m_PauseButtons[i] = new Button(Global.GUIManager);
                m_PauseButtons[i].Text = Global.PAUSE_MENU[i];
                m_PauseButtons[i].Top = Global.PAUSEBUTTON_TOP + (i * Global.PAUSEBUTTON_SPACE);
                m_PauseButtons[i].Left = Global.PAUSEBUTTON_LEFT;
                m_PauseButtons[i].Width = Global.PAUSEBUTTON_WIDTH;
                m_PauseButtons[i].Init();

                //Add the buttons
                m_Panel.Add(m_PauseButtons[i]);
                Global.GUIManager.Add(m_PauseButtons[i]);

                //Set event handler
                m_PauseButtons[i].Click += PauseChoose;
            }
            #endregion

            //Create Help label
            m_Help = new Label(Global.GUIManager);
            m_Help.Init();
            m_Help.Text = Global.PAUSE_HELP;
            m_Help.Top = 190;
            m_Help.Left = 200;
            m_Help.Width = 300;
            m_Help.Height = 280;
            //Add it to the
            m_Panel.Add(m_Help);
            Global.GUIManager.Add(m_Help);

            //TODO: Fix layout.
        }
Exemplo n.º 13
0
        private void CreateMessage(Manager manager, GameInfo gameInfo, IGameState waitState)
        {
            var currentPlayer = gameInfo.CurrentPlayer;

            var messageWindow = new Window(manager) { Text = "Pay Day!", AutoScroll = false, CloseButtonVisible = false};
            messageWindow.Init();
            messageWindow.SetSize(400, 230);
            var message = new Label(manager) { Text = "Well Done! you have received your Pay Day! \nBelow are the details.", Width = 400, Height = 40, Left = 5, Top = 10 };
            message.Init();
            message.Parent = messageWindow;
            var careerImage = gameInfo.Content.Load<Texture2D>("Images/career_icons/" +
                                                               gameInfo.CurrentPlayer.CurrentCareer);
            var career = new ImageBox(manager) {
                Image = careerImage,
                Width = careerImage.Width,
                Height = careerImage.Height,
                Top = 50,
                Left = 16,
                StayOnBack = true
            };
            career.Init();
            career.Parent = messageWindow;

            var icon = new ImageBox(manager) {
                Image =
                    gameInfo.Content.Load<Texture2D>("Images/payday"),
                Top = 60,
                Left = career.Left + career.Width + 70
            };
            icon.Init();
            icon.Parent = messageWindow;

            var job = new Label(manager) { Text = "Current Career:\n" + currentPlayer.CurrentCareer.Title, Top = 110, Left = 10, Width = 150, Height = 50 };
            job.Init();
            job.Parent = messageWindow;

            var salary = new Label(manager) {
                Text = String.Format("Level {1} Promotion\nReceived: ${0:N0}",
                currentPlayer.CurrentCareer.Salary[currentPlayer.PromotionLevel],
                currentPlayer.PromotionLevel + 1),
                Top = 110, Left = 140, Width = 140, Height = 50
            };
            salary.Init();
            salary.Parent = messageWindow;

            var close = new Button(manager) { Text = "OK", Top = 160, Left = messageWindow.Width / 2 - 50 };
            close.Init();
            close.Parent = messageWindow;
            close.Click += (sender, args) => { messageWindow.Close(); WindowClosed(gameInfo, waitState); };
            messageWindow.Closed += (sender, args) => WindowClosed(gameInfo, waitState);
            gameInfo.Manager.Add(messageWindow);
            messageWindow.Init();
            gameInfo.Content.Load<SoundEffect>("Sounds/coins").Play();
        }
        public GamemodeWindow(Sidebar sidebar)
        {
            this.manager = sidebar.manager;
            this.sidebar = sidebar;

            window = new Window(manager);
            window.Init();
            window.Left = sidebar.master.Left;
            window.Width = sidebar.master.Width;
            window.Top = 0;
            window.Height = 600;
            window.Text = "Game Mode";
            manager.Add(window);

            TitlePanel titlePanel = new TitlePanel(sidebar, window, "Game Mode", true);
            titlePanel.btnBack.Click += (s, e) => window.Close();

            HeightCounter += titlePanel.topPanel.Height + LeftPadding * 2;

            lblMode = new Label(manager);
            lblMode.Init();
            lblMode.Parent = window;
            lblMode.Top = HeightCounter;
            lblMode.Left = LeftPadding;
            lblMode.Text = "Game Mode Options";
            lblMode.Width = 120;
            lblMode.TextColor = Color.Black;

            //cbMode = new ComboBox(manager);
            //cbMode.Init();
            //cbMode.Parent = window;
            //cbMode.Left = lblMode.Left + lblMode.Width;
            //cbMode.Top = HeightCounter;
            //cbMode.Width = 100;
            //
            //foreach (GameModes m in Enum.GetValues(typeof(GameModes)))
            //{
            //    cbMode.Items.Add(m);
            //}
            HeightCounter += lblMode.Height + LeftPadding * 3;

            insViewModes = new InspectorView(sidebar, window, LeftPadding, HeightCounter);
            insViewModes.Width -= 20;
            insViewModes.Height -= 100;
            HeightCounter += insViewModes.Height + LeftPadding * 3;
            insViewModes.SetRootObject(OrbIt.globalGameMode);

            //insViewGlobal = new InspectorView(sidebar, window, LeftPadding, HeightCounter);
            //insViewGlobal.Width -= 20;
            //insViewGlobal.Height -= 100;

            window.Refresh();
        }
Exemplo n.º 15
0
        public void Init()
        {
            window = new Window(manager) ;
            window.Init();
            window.Text = "Server List";
            window.Width = 700;
            window.Height = 500;
            window.Center();
            window.Visible = true;
            window.CloseButtonVisible = false;

            play = new Button(manager);
            play.Init();
            play.Text = "Play";
            play.Width = 100;
            play.Height = 24;
            play.Left = window.Width - play.Width - 40;
            play.Top = window.Height - 80;
            play.Anchor = Anchors.Right;
            play.Parent = window;

            refresh = new Button(manager);
            refresh.Init();
            refresh.Text = "Refresh Server List";
            refresh.Width = 150;
            refresh.Height = 24;
            refresh.Left = 30;
            refresh.Top = window.Height - 130;
            refresh.Anchor = Anchors.Left;
            refresh.Parent = window;

            back = new Button(manager);
            back.Init();
            back.Text = "Back";
            back.Width = 75;
            back.Height = 24;
            back.Left = 30;
            back.Top = window.Height - 80;
            back.Anchor = Anchors.Left;
            back.Parent = window;

            listview = new ListView(manager, headers);
            listview.Init();
            listview.Width = 630;
            listview.Height = 300;
            listview.Left = 30;
            listview.Top = 40;
            listview.Anchor = Anchors.All;
            listview.HideSelection = false;
            listview.Parent = window;
            listview.Items = data;
            listview.ItemIndexChanged += new TomShane.Neoforce.Controls.EventHandler(listview_ItemIndexChanged);
        }
Exemplo n.º 16
0
        public override void LoadContent(ContentManager contentloader)
        {
            _guiman = new Manager(_gamemanager.Game, _gamemanager.Graphics, "Default");
            _guiman.Initialize();

            _mainmenu = new Window(_guiman);
            _mainmenu.Init();
            _mainmenu.Resizable = false;
            _mainmenu.Movable = false;
            _mainmenu.CloseButtonVisible = false;
            _mainmenu.Text = "Main Menu";
            _mainmenu.Width = 300;
            _mainmenu.Height = 400;
            _mainmenu.Center();
            _mainmenu.Visible = true;
            _mainmenu.BorderVisible = true;
            //mainmenu.Cursor = guiman.Skin.Cursors["Default"].Resource;

            _play = new Button(_guiman);
            _play.Init();
            _play.Text = "Play";
            _play.Width = 200;
            _play.Height = 50;
            _play.Left = 50;
            _play.Top = 0;
            _play.Anchor = Anchors.Bottom;
            _play.Parent = _mainmenu;

            _settings = new Button(_guiman);
            _settings.Init();
            _settings.Text = "Settings";
            _settings.Width = 200;
            _settings.Height = 50;
            _settings.Left = 50;
            _settings.Top = 50;
            _settings.Anchor = Anchors.Bottom;
            _settings.Parent = _mainmenu;

            _exit = new Button(_guiman);
            _exit.Init();
            _exit.Text = "Exit";
            _exit.Width = 200;
            _exit.Height = 50;
            _exit.Left = 50;
            _exit.Top = 100;
            _exit.Anchor = Anchors.Bottom;
            _exit.Parent = _mainmenu;

            _guiman.Cursor = _guiman.Skin.Cursors["Default"].Resource;
            _guiman.Add(_mainmenu);

            _gamemanager.Game.IsMouseVisible = true;
        }
Exemplo n.º 17
0
        /// <summary>
        /// Shows the simple input dialog.
        /// </summary>
        public void ShowSimpleInputDialog(Manager manager, string caption, string text, string initialValue,
            TomShane.Neoforce.Controls.EventHandler okBtnEventHandler)
        {
            window = new Window(manager);
            window.Init();
            window.Width = 450;
            window.Height = 150;
            window.Text = caption;
            window.Closing += OnSimpleInputDialogClosing;
            window.Visible = true;

            Label label = new Label(manager);
            label.Init();
            label.Text = text;
            label.Width = 400;
            label.Height = 20;
            label.Left = 5;
            label.Top = 5;
            label.Parent = window;

            TextBox textBox = new TextBox(manager);
            textBox.Init();
            textBox.Width = 400;
            textBox.Height = 20;
            textBox.Left = 5;
            textBox.Top = 40;
            textBox.Text = initialValue;
            textBox.Parent = window;

            Button btnSimpleInputDialogOk = new Button(manager);
            btnSimpleInputDialogOk.Init();
            btnSimpleInputDialogOk.Text = "Ok";
            btnSimpleInputDialogOk.Width = 100;
            btnSimpleInputDialogOk.Height = 30;
            btnSimpleInputDialogOk.Left = 5;
            btnSimpleInputDialogOk.Top = 75;
            btnSimpleInputDialogOk.Click += okBtnEventHandler;
            btnSimpleInputDialogOk.Click += OnClickBtnSimpleInputDialogOk;
            btnSimpleInputDialogOk.Tag = textBox; // Textbox as Tag, to access the value
            btnSimpleInputDialogOk.Parent = window;

            Button btnSimpleInputDialogCancel = new Button(manager);
            btnSimpleInputDialogCancel.Init();
            btnSimpleInputDialogCancel.Text = "Cancel";
            btnSimpleInputDialogCancel.Width = 100;
            btnSimpleInputDialogCancel.Height = 30;
            btnSimpleInputDialogCancel.Left = 110;
            btnSimpleInputDialogCancel.Top = 75;
            btnSimpleInputDialogCancel.Click += OnClickBtnSimpleInputDialogCancel;
            btnSimpleInputDialogCancel.Parent = window;

            manager.Add(window);
        }
Exemplo n.º 18
0
        public CurrentToolContainer(Manager p_manager, Window p_parent, ContentManager p_content)
            : base(p_manager)
        {
            m_parentWindow = p_parent;

            m_roadToolIcon = p_content.Load<Texture2D>("RoadToolIcon");
            m_eraserToolIcon = p_content.Load<Texture2D>("Eraser");
            m_paintToolIcon = p_content.Load<Texture2D>("paintTool");

            m_currentTool = Tool.ROAD_TOOL;

            m_currentDrawTileIndex = new IntPair();
            m_currentDrawTileIndex.i1 = 0;
            m_currentDrawTileIndex.i2 = 0;
        }
Exemplo n.º 19
0
        public ConsoleControl(StackEngine engine, ConsoleMessageEventHandler messageSent, KeyEventHandler keyUp)
        {
            Manager         = engine.Renderer.GUIManager;
            WindowUIControl = new TomShane.Neoforce.Controls.Window(Manager);
            WindowUIControl.Init();
            WindowUIControl.Text               = "STACK Engine Console";
            WindowUIControl.Width              = 480;
            WindowUIControl.Resizable          = true;
            WindowUIControl.MinimumHeight      = 240;
            WindowUIControl.MinimumWidth       = 320;
            WindowUIControl.Height             = 200;
            WindowUIControl.IconVisible        = false;
            WindowUIControl.Alpha              = 215;
            WindowUIControl.CloseButtonVisible = false;
            WindowUIControl.Closing           += (object sender, WindowClosingEventArgs e) => e.Cancel = true;
            WindowUIControl.Visible            = false;
            WindowUIControl.Color              = Color.Black;
            WindowUIControl.Center(engine.Game.VirtualResolution);

            ConsoleUIControl = new TomShane.Neoforce.Controls.Console(Manager);
            ConsoleUIControl.Channels.Add(new ConsoleChannel((byte)Console.Channel.System, "System", Color.White));
            ConsoleUIControl.Channels.Add(new ConsoleChannel((byte)Console.Channel.Debug, "Debug", Color.LightGray));
            ConsoleUIControl.Channels.Add(new ConsoleChannel((byte)Console.Channel.Error, "Error", Color.IndianRed));
            ConsoleUIControl.Channels.Add(new ConsoleChannel((byte)Console.Channel.Notice, "Notice", Color.DimGray));
            ConsoleUIControl.Channels.Add(new ConsoleChannel((byte)Console.Channel.Warning, "Warning", Color.DeepPink));
            ConsoleUIControl.Channels.Add(new ConsoleChannel((byte)Console.Channel.User, "User", Color.Gray));
            ConsoleUIControl.SelectedChannel       = (byte)Console.Channel.User;
            ConsoleUIControl.ChannelsVisible       = false;
            ConsoleUIControl.ClientArea.Left       = 10;
            ConsoleUIControl.Color                 = Color.Black;
            ConsoleUIControl.MessageFormat         = ConsoleMessageFormats.TimeStamp;
            ConsoleUIControl.TextBox.Color         = Color.Black;
            ConsoleUIControl.Sender                = "User";
            ConsoleUIControl.TextBox.KeyUp        += keyUp;
            ConsoleUIControl.TextBox.AutoSelection = false;
            ConsoleUIControl.Width                 = WindowUIControl.ClientWidth - ConsoleUIControl.Left;
            ConsoleUIControl.Height                = WindowUIControl.ClientHeight;
            ConsoleUIControl.Parent                = WindowUIControl;

            ConsoleUIControl.MessageSent += messageSent;

            WindowUIControl.Resize += new ResizeEventHandler(OnWindowResize);

            Manager.Add(WindowUIControl);
        }
Exemplo n.º 20
0
        protected override void LoadContent(GraphicInfo GraphicInfo, GraphicFactory factory ,IContentManager contentManager)
        {
            base.LoadContent(GraphicInfo,factory, contentManager);

            {
                SimpleModel simpleModel = new SimpleModel(factory, "Model//cenario");
                TriangleMeshObject tmesh = new TriangleMeshObject(simpleModel, Vector3.Zero, Matrix.Identity, Vector3.One, MaterialDescription.DefaultBepuMaterial());
                ForwardXNABasicShader shader = new ForwardXNABasicShader(ForwardXNABasicShaderDescription.Default());
                ForwardMaterial fmaterial = new ForwardMaterial(shader);
                IObject obj = new IObject(fmaterial, simpleModel, tmesh);
                this.World.AddObject(obj);
            }

            NeoforceGui guiManager = this.Gui as NeoforceGui;
            System.Diagnostics.Debug.Assert(guiManager != null);

            // Create and setup Window control.
            Window window = new Window(guiManager.Manager);
            window.Init();
            window.Text = "Getting Started";
            window.Width = 480;
            window.Height = 200;
            window.Center();
            window.Visible = true;

            // Create Button control and set the previous window as its parent.
            Button button = new Button(guiManager.Manager);
            button.Init();
            button.Text = "OK";
            button.Width = 72;
            button.Height = 24;
            button.Left = (window.ClientWidth / 2) - (button.Width / 2);
            button.Top = window.ClientHeight - button.Height - 8;
            button.Anchor = Anchors.Bottom;
            button.Parent = window;
            button.Click += new TomShane.Neoforce.Controls.EventHandler(button_Click);

            // Add the window control to the manager processing queue.
            guiManager.Manager.Add(window);         

            this.World.CameraManager.AddCamera(new CameraFirstPerson(false,GraphicInfo));

            SkyBoxSetTextureCube stc = new SkyBoxSetTextureCube("Textures//grassCube");
            CommandProcessor.getCommandProcessor().SendCommandAssyncronous(stc);
        }        
Exemplo n.º 21
0
        /// <summary>
        /// Shows the chose enum dialog.
        /// </summary>
        public void ShowChooseEnumDialog(Manager manager, string caption, Type type, EnumChooseEventHandler btnEventHandler)
        {
            _type = type;
            _handler = btnEventHandler;

            window = new Window(manager);
            window.Init();
            window.Width = 175;
            window.Text = caption;
            window.Icon = IconProvider.ApplicationIcon;
            window.CaptionVisible = true;
            window.Closing += OnChooseEnumDialogClosing;
            window.Visible = true;

            if (!type.IsEnum)
            {
                CloseDialog();
            }
            else
            {
                int offsetY = 5;

                foreach (object value in Enum.GetValues(type))
                {
                    string name = value.ToString();

                    Button btnEnumName = new Button(manager);
                    btnEnumName.Init();
                    btnEnumName.Text = name;
                    btnEnumName.Width = 150;
                    btnEnumName.Height = 30;
                    btnEnumName.Left = 5;
                    btnEnumName.Top = offsetY;
                    btnEnumName.Tag = value;
                    btnEnumName.Click += OnClickBtnEnumName;
                    btnEnumName.Parent = window;

                    offsetY += 35;
                }

                window.Height = offsetY + 35;
                manager.Add(window);
            }
        }
Exemplo n.º 22
0
        ////////////////////////////////////////////////////////////////////////////
        public void Init()
        {
            // Create and setup Window control.
            window = new Window(manager);
            window.Init();
            window.Text = "Please Wait";
            window.Width = 300;
            window.Height = 175;
            window.Center();
            window.Visible = true;
            window.CloseButtonVisible = false;

            text = new Label(manager);
            text.Init();
            text.Text = "";
            text.Width = 250;
            text.Height = 24;
            text.Left = 20;
            text.Top = 20;
            text.Anchor = Anchors.Left;
            text.Parent = window;

            bar = new ProgressBar(manager);
            bar.Init();
            bar.Width = 260;
            bar.Height = 15;
            bar.Left = 20;
            bar.Top = 60;
            bar.Anchor = Anchors.Left;
            bar.Parent = window;
            bar.Value = 0;
            bar.Mode = ProgressBarMode.Default;

            cancel = new Button(manager);
            cancel.Init();
            cancel.Left = window.Width - cancel.Width - 20;
            cancel.Top = 110;
            cancel.Text = "Cancel";
            cancel.Anchor = Anchors.Right;
            cancel.Parent = window;
        }
Exemplo n.º 23
0
        public override void Initialize()
        {
            Viewport viewport = ((ContentSystem)world.SystemManager.GetSystem<ContentSystem>()[0]).GetViewport();

            //Notification Bar
            currentToolWindow = new Window(manager);
            currentToolWindow.Init();
            currentToolWindow.Text = "Current Tool";
            currentToolWindow.Height = 100;
            currentToolWindow.Width = 100;
            currentToolWindow.Visible = true;
            currentToolWindow.Top = 10;
            currentToolWindow.Left = viewport.Width-currentToolWindow.Width;
            currentToolWindow.CloseButtonVisible = false;
            currentToolWindow.AutoScroll = false;
            currentToolWindow.Resizable = false;
            currentToolWindow.BorderVisible = false;
            currentToolWindow.Movable = false;
            currentToolWindow.Visible = false;
            manager.Add(currentToolWindow);

            m_container = new CurrentToolContainer(manager, currentToolWindow, m_content);
            m_container.Init();
            m_container.Width = currentToolWindow.Width;// tilemap.tilemapImage.Width;
            m_container.Height = currentToolWindow.Height;// tilemap.tilemapImage.Height;
            m_container.Parent = currentToolWindow;
            m_container.CanFocus = false;
            m_container.Click += new TomShane.Neoforce.Controls.EventHandler(OnWindowClickBehavior);

            //Initialize some hotkeys
            EventSystem ev = (EventSystem)world.SystemManager.GetSystem<EventSystem>()[0];
            EventData ev1 = new EventData(SetCurrentToolCB, Tool.ROAD_TOOL);
            EventData ev2 = new EventData(SetCurrentToolCB, Tool.PAINT_TOOL);
            EventData ev3 = new EventData(SetCurrentToolCB, Tool.ERASE_TOOL);
            ev.addEvent(ev1);
            ev.addEvent(ev2);
            ev.addEvent(ev3);
            ev.setHotKey(ev1, Microsoft.Xna.Framework.Input.Keys.D1);
            ev.setHotKey(ev2, Microsoft.Xna.Framework.Input.Keys.D2);
            ev.setHotKey(ev3, Microsoft.Xna.Framework.Input.Keys.D3);
        }
Exemplo n.º 24
0
    ////////////////////////////////////////////////////////////////////////////    

    #endregion 
    
		#region //// Methods ///////////
			
		////////////////////////////////////////////////////////////////////////////
		protected override void Initialize()
    {
      base.Initialize();                                               
            
      // Controls setup.
            
      window = new Window(manager);
      window.Init();      
      window.Text = "Addon Controls";
      window.Width = 480;
      window.Height = 200;      
      window.Center();
      window.Visible = true;

      button = new Button(manager);
      button.Init();
      button.Text = "DEFAULT";
      button.Width = 72;
      button.Height = 24;
      button.Left = (window.ClientWidth / 2) - 4 - button.Width;
      button.Top = window.ClientHeight - button.Height - 32;
      button.Anchor = Anchors.Bottom;
      button.Parent = window;  
      button.Focused = true;
            
      // Here we construct our custom button.
      custom = new CustomButton(manager);
      custom.Init();
      custom.Text = "CUSTOM";
      custom.Width = 72;
      custom.Height = 24;
      custom.Left = (window.ClientWidth / 2) + 4;
      custom.Top = window.ClientHeight - button.Height - 32;
      custom.Anchor = Anchors.Bottom;
      custom.Parent = window;
      custom.Cursor = manager.Skin.Cursors["Custom.Cursor"].Resource;
            
      manager.Add(window);
    }
Exemplo n.º 25
0
        /// <summary>
        /// Initialize the components that make up the window, including the window itself.
        /// </summary>
        private void Initialize()
        {
            Window = new Window(manager);
            Window.Init();
            Window.Text = "Console";
            Window.Left = windowFrame.X;
            Window.Top = windowFrame.Y;
            Window.Width = windowFrame.Width;
            Window.Height = windowFrame.Height;
            Window.Alpha = 200;
            Window.BorderVisible = true;
            Window.CaptionVisible = false;
            Window.BackColor = Color.Black;
            Window.Center();

            TextArea = new ConsoleArea(manager);
            TextArea.Init();
            TextArea.Text = "";
            TextArea.Width = windowFrame.Width - 15;
            TextArea.Height = windowFrame.Height - 40;
            TextArea.Enabled = true;
            TextArea.CanFocus = false;
            TextArea.BackgroundColor = Color.Black;
            TextArea.TextColor = Color.Green;
            TextArea.TextPosition = ConsoleArea.TextOrigin.BOTTOM;
            TextArea.Parent = Window;

            Input = new TextBox(manager);
            Input.Init();
            Input.Text = "";
            Input.Color = Color.Black;
            Input.TextColor = Color.Green;
            Input.Top = TextArea.Top + TextArea.Height + 2;
            Input.Width = windowFrame.Width - 15;
            Input.Height = 20;
            Input.Enabled = true;
            Input.Parent = Window;
        }
Exemplo n.º 26
0
        public Window CreateGameResult()
        {
            var resultWindow = new Window(_gameInfo.Manager) {
                Text = "Game Results",
                Height = 400,
                AutoScroll = true,
                Resizable = false
            };
            resultWindow.Closed += (sender, args) => { MenuButton.Enabled = true; };
            resultWindow.BringToFront();
            resultWindow.Init();

            var tabbedControl = new EndGameResults().GetTabbedControl(_gameInfo.Manager, _gameInfo.PlayerList);
            tabbedControl.Init();
            tabbedControl.MinimumHeight = resultWindow.Height - 40;
            tabbedControl.MinimumWidth = resultWindow.Width - 40;
            tabbedControl.Parent = resultWindow;

            ControlManager.Add(resultWindow);
            tabbedControl.SelectedIndex = 0;

            return resultWindow;
        }
Exemplo n.º 27
0
        public override void Initialize()
        {
            Point screenSize = ((ContentSystem)world.SystemManager.GetSystem<ContentSystem>()[0]).GetViewportSize();

            confirmWindow = new Window(manager);
            confirmWindow.Init();
            confirmWindow.Text = "Would you like to exit?";
            confirmWindow.Width = 248;
            confirmWindow.Height = 48;
            confirmWindow.Center();
            confirmWindow.Visible = false;
            confirmWindow.Resizable = false;
            confirmWindow.IconVisible = false;
            confirmWindow.CloseButtonVisible = false;
            confirmWindow.Closing += new WindowClosingEventHandler(WindowCloseBehavior);
            manager.Add(confirmWindow);

            acceptButton = new Button(manager);
            acceptButton.Init();
            acceptButton.Parent = confirmWindow;
            acceptButton.Width = 100;
            acceptButton.Height = 24;
            acceptButton.Click +=new TomShane.Neoforce.Controls.EventHandler(ConfirmedExit);
            acceptButton.Left = 12;
            acceptButton.Top = 8;
            acceptButton.Text = "Yes";

            cancelButton = new Button(manager);
            cancelButton.Init();
            cancelButton.Parent = confirmWindow;
            cancelButton.Width = 100;
            cancelButton.Height = 24;
            cancelButton.Click += new TomShane.Neoforce.Controls.EventHandler(CancelExit);
            cancelButton.Left = 124;
            cancelButton.Top = 8;
            cancelButton.Text = "No thanks";
        }
Exemplo n.º 28
0
    ////////////////////////////////////////////////////////////////////////////    

    #endregion 
    
		#region //// Methods ///////////
			
		////////////////////////////////////////////////////////////////////////////
		protected override void Initialize()
    {
      base.Initialize();
  
      // Create sprite batch for ploting texture with rendered UI.
      sprite = new SpriteBatch(GraphicsDevice);                         
                                                
      // Initialize manager.
      manager.Initialize();

      // Create and assign render target for UI rendering.
      manager.RenderTarget = new RenderTarget2D(GraphicsDevice, graphics.PreferredBackBufferWidth, graphics.PreferredBackBufferHeight, false, SurfaceFormat.Color, DepthFormat.None, 0, RenderTargetUsage.DiscardContents);
      // Maximum of frames we want to render per second (applies only for Neoforce, not Game itself)
      manager.TargetFrames = 60; 
                  
      // Create and setup Window control.
      window = new Window(manager);
      window.Init();      
      window.Text = "Render Targets";
      window.Width = 480;
      window.Height = 200;      
      window.Center();
      window.Visible = true;      
      
      // Create Button control and set the previous window as its parent.
      button = new Button(manager);
      button.Init();
      button.Text = "OK";
      button.Width = 72;
      button.Height = 24;
      button.Left = (window.ClientWidth / 2) - (button.Width / 2);
      button.Top = window.ClientHeight - button.Height - 8;
      button.Anchor = Anchors.Bottom; 
      button.Parent = window;
      
      // Add the window control to the manager processing queue.
      manager.Add(window);
    }
Exemplo n.º 29
0
        private void CreateWelcomeMessage()
        {
            var padding = 15;
            var window = new Window(_gameInfo.Manager) { Width = 400, Height = 300, Text = "Welcome to Game of Life!", AutoScroll = false, Resizable = false };
            var label = new Label(_gameInfo.Manager) {
                Width = window.Width, Parent = window, Height = 180, Top = padding, Left = padding,
                Text = "You are about to begin the game.  \nThe camera can be controlled using the following keys: \n\n -W A S D \n -Up Down Left Right \n\nAny active game objects visible on screen will glow. \n\nObjects outside of the visible area will have \nclickable arrows pointing to them. \n\nClicking the arrow will adjust the camera automatically. \n\nClose this window to begin."
            };
            label.Init();

            var close = new Button(_gameInfo.Manager) { Text = "Close", Parent = window, Top = window.Height - 75, Left = window.Width / 2 - 50 };
            close.Click += (sender, args) => window.Close();
            window.Closed += (sender, args) => BeginGame();
            close.Init();

            window.Init();
            _gameInfo.Manager.Add(window);
        }
Exemplo n.º 30
0
        void AddSettingsWindow(Manager gui)
        {
            SettingsWindow                    = new Window(gui);
            SettingsWindow.Width              = 300;
            SettingsWindow.Height             = 200;
            SettingsWindow.CloseButtonVisible = false;
            SettingsWindow.Text               = GlblRes.Settings;
            SettingsWindow.Parent             = MainMenuBackground;
            SettingsWindow.Init();
            SettingsWindow.Center(new Point(Game.VIRTUAL_WIDTH, Game.VIRTUAL_HEIGHT));
            SettingsWindow.Visible     = false;
            SettingsWindow.Resizable   = false;
            SettingsWindow.IconVisible = false;
            SettingsWindow.DragAlpha   = 255;
            SettingsWindow.Movable     = false;

            var MusicVolumeLabel = new Label(gui);

            MusicVolumeLabel.Init();
            MusicVolumeLabel.Width  = 120;
            MusicVolumeLabel.Parent = SettingsWindow;
            MusicVolumeLabel.Text   = GlblRes.Music_Volume;
            MusicVolumeLabel.Top    = 5;
            MusicVolumeLabel.Left   = 5;

            var MusicVolumeBar = new TrackBar(gui);

            MusicVolumeBar.Init();
            MusicVolumeBar.Width         = 160;
            MusicVolumeBar.Value         = (int)(GameSettings.MusicVolume * 100);
            MusicVolumeBar.ValueChanged += (o, e) =>
            {
                GameSettings.MusicVolume = (float)MusicVolumeBar.Value / 100f;
                Engine.ApplyGameSettingsVolume();
                MediaPlayer.Volume = MathHelper.Clamp(GameSettings.MusicVolume, 0.0f, 1.0f);
                MainMenuLabel.Text = string.Empty;
            };
            MusicVolumeBar.Top    = 5;
            MusicVolumeBar.Left   = 120;
            MusicVolumeBar.Parent = SettingsWindow;

            var SoundVolumeLabel = new Label(gui);

            SoundVolumeLabel.Init();
            SoundVolumeLabel.Width  = 120;
            SoundVolumeLabel.Parent = SettingsWindow;
            SoundVolumeLabel.Text   = GlblRes.Sound_Volume;
            SoundVolumeLabel.Top    = 30;
            SoundVolumeLabel.Left   = 5;

            var SoundVolumeBar = new TrackBar(gui);

            SoundVolumeBar.Init();
            SoundVolumeBar.Width         = 160;
            SoundVolumeBar.Value         = (int)(GameSettings.SoundEffectVolume * 100);
            SoundVolumeBar.ValueChanged += (o, e) =>
            {
                GameSettings.SoundEffectVolume = (float)SoundVolumeBar.Value / 100f;
                Engine.ApplyGameSettingsVolume();
                MainMenuLabel.Text = string.Empty;
            };
            SoundVolumeBar.Top    = 30;
            SoundVolumeBar.Left   = 120;
            SoundVolumeBar.Parent = SettingsWindow;

            var BloomLabel = new Label(gui);

            BloomLabel.Init();
            BloomLabel.Width  = 120;
            BloomLabel.Parent = SettingsWindow;
            BloomLabel.Text   = GlblRes.Bloom;
            BloomLabel.Top    = 55;
            BloomLabel.Left   = 5;

            var BloomCheckBox = new CheckBox(gui);

            BloomCheckBox.Init();
            BloomCheckBox.Parent          = SettingsWindow;
            BloomCheckBox.Text            = string.Empty;
            BloomCheckBox.Checked         = GameSettings.Bloom;
            BloomCheckBox.CheckedChanged += (o, e) =>
            {
                GameSettings.Bloom = BloomCheckBox.Checked;
                MainMenuLabel.Text = GlblRes.Restart_the_game_for_this_setting_to_take_effect;
            };
            BloomCheckBox.Top  = 55;
            BloomCheckBox.Left = 120;

            var VSyncLabel = new Label(gui);

            VSyncLabel.Init();
            VSyncLabel.Width  = 120;
            VSyncLabel.Parent = SettingsWindow;
            VSyncLabel.Text   = GlblRes.VSync;
            VSyncLabel.Top    = 80;
            VSyncLabel.Left   = 5;

            var VSyncCheckBox = new CheckBox(gui);

            VSyncCheckBox.Init();
            VSyncCheckBox.Parent          = SettingsWindow;
            VSyncCheckBox.Text            = string.Empty;
            VSyncCheckBox.Checked         = GameSettings.VSync;
            VSyncCheckBox.CheckedChanged += (o, e) =>
            {
                GameSettings.VSync = VSyncCheckBox.Checked;
                MainMenuLabel.Text = GlblRes.Restart_the_game_for_this_setting_to_take_effect;
            };
            VSyncCheckBox.Top  = 80;
            VSyncCheckBox.Left = 120;

            var DisplayModeLabel = new Label(gui);

            DisplayModeLabel.Init();
            DisplayModeLabel.Width  = 120;
            DisplayModeLabel.Parent = SettingsWindow;
            DisplayModeLabel.Text   = GlblRes.Display_Mode;
            DisplayModeLabel.Top    = 105;
            DisplayModeLabel.Left   = 5;

            var DisplayModeCombo = new ComboBox(gui);

            DisplayModeCombo.Init();

            DisplayModeCombo.Items             = GetDisplayModes();
            DisplayModeCombo.Width             = 120;
            DisplayModeCombo.Parent            = SettingsWindow;
            DisplayModeCombo.Width             = 160;
            DisplayModeCombo.Text              = DisplayModeToString(GameSettings.DisplayMode);
            DisplayModeCombo.ItemIndexChanged += (o, e) =>
            {
                GameSettings.DisplayMode = StringToDisplayMode(DisplayModeCombo.Text);
                MainMenuLabel.Text       = GlblRes.Restart_the_game_for_this_setting_to_take_effect;
            };
            DisplayModeCombo.Top  = 105;
            DisplayModeCombo.Left = 120;

            var Bevel = new Bevel(gui);

            Bevel.Parent = SettingsWindow;
            Bevel.Anchor = Anchors.Bottom | Anchors.Left | Anchors.Right;
            Bevel.Height = 35;
            Bevel.Style  = BevelStyle.Raised;
            Bevel.Top    = SettingsWindow.ClientHeight - Bevel.Height;
            Bevel.Width  = SettingsWindow.ClientWidth;

            var OKButton = new MenuButton(gui, ClickSound, FocusSound, GameSettings);

            OKButton.Init();
            OKButton.Parent = Bevel;
            OKButton.Text   = GlblRes.OK;
            OKButton.Click += (s, e) =>
            {
                SettingsWindow.Close();
                ShowLogo(true);
                GameSettings.Save(Engine.Game.SaveGameFolder);
            };
            OKButton.Width = 130;
            OKButton.Left  = 150;
            OKButton.Top   = 5;

            gui.Add(SettingsWindow);
        }
Exemplo n.º 31
0
        /// <summary>
        /// Allows the game to perform any initialization it needs to before starting to run.
        /// This is where it can query for any required services and load any non-graphic
        /// related content.  Calling base.Initialize will enumerate through any components
        /// and initialize them as well.
        /// </summary>
        protected override void Initialize()
        {
            base.Initialize();

            diagnostics = new DiagnosticInfo("System Performance");

            // Add the content to the textures singleton
            Textures.Instance.Graphics = GraphicsDevice;
            Textures.Instance.Content  = Content;

            world = new GameWorld();
            world.Systems.Add(world.Input);
            world.Systems.Add(new CameraSystem());
            world.Systems.Add(new InspectionSystem());
            world.Systems.Add(new ControlSystem());
            world.Systems.Add(new DateTimeSystem());
            world.Systems.Add(new BehaviorSystem());
            world.Systems.Add(new ImmigrationSystem());
            world.Systems.Add(new ProductionSystem());
            world.Systems.Add(new CityInformationSystem());
            world.Systems.Add(new HousingUpgradeSystem());
            world.Systems.Add(new OverlaySystem()
            {
                Graphics = GraphicsDevice
            });
            world.Systems.Add(new CollapsibleSystem());
            world.Systems.Add(new IsometricMapSystem()
            {
                Graphics = GraphicsDevice
            });

            world.Renderer = new DefaultRenderSystem()
            {
                Graphics   = GraphicsDevice,
                ClearColor = Color.Black
            };
            world.Systems.Add(world.Renderer);

            world.UI = new Manager(this, "Pixel")
            {
                AutoCreateRenderTarget = false,
                AutoUnfocus            = true,
                TargetFrames           = 60
            };
            world.UI.Initialize();
            world.UI.RenderTarget = world.UI.CreateRenderTarget();

            Window w = new TomShane.Neoforce.Controls.Window(world.UI)
            {
                Text = "My Quick Test Window"
            };

            w.Init();
            w.Center();

            // Load the scenario
            // TODO: put this in a method somewhere
            string   s        = File.ReadAllText("Content/Data/Scenarios/alpha.json");
            Scenario scenario = JsonConvert.DeserializeObject <Scenario>(s);

            // Load textures from config
            Textures.Instance.LoadFromJson(scenario.Textures, true);

            // Load the drawables
            world.Prototypes.LoadFromFile(
                new DrawablesLoader(),
                scenario.Drawables,
                true);

            world.City = scenario.City;

            // Load in entities
            world.Prototypes.LoadFromFile(
                new CustomEntityLoader()
            {
                Converter = new CustomComponentConverter()
            },
                scenario.Entities,
                true);

            // load scenario data
            world.Prototypes.LoadFromFile(
                new DataLoader <Item>(),
                scenario.Items,
                true);

            world.Prototypes.LoadFromFile(
                new DataLoader <Recipe>(),
                scenario.Recipes,
                true);
            //GameData.Instance.LoadItemsFromJson(scenario.Items, true);
            //GameData.Instance.LoadRecipesFromJson(scenario.Recipes, true);

            CustomEntityLoader cel = new CustomEntityLoader()
            {
                Library   = world.Prototypes,
                Converter = new CustomComponentConverter()
            };

            foreach (JObject o in scenario.DefaultEntities)
            {
                Entity e = (Entity)cel.LoadPrototype(o);

                world.Entities.Add(e);
            }

            // start up the pathfinder thread
            PathfinderSystem pfs = new PathfinderSystem()
            {
                Map        = world.Map,
                Collisions = world.Collisions
            };

            pathThread = new Thread(new ThreadStart(pfs.Run));
            pathThread.Start();

            pfs = new PathfinderSystem()
            {
                Map        = world.Map,
                Collisions = world.Collisions
            };
            pathThread2 = new Thread(new ThreadStart(pfs.Run));
            //pathThread2.Start();

            // TODO: create a settings file to read any key bindings from
            inputControlEntity = new Entity();
            inputControlEntity.AddComponent(new PositionComponent());
            inputControlEntity.AddComponent(new CameraController());
            world.Entities.Add(inputControlEntity);

            DrawableComponent diagDrawable = new DrawableComponent();

            diagDrawable.Add("Text", new DrawableText()
            {
                Text    = "",
                Color   = Color.White,
                Visible = true,
                Layer   = "Text",
                Static  = true
            });
            diagnosticEntity = new Entity();
            diagnosticEntity.AddComponent(new PositionComponent()
            {
                X = 0, Y = 50f
            });
            diagnosticEntity.AddComponent(diagDrawable);
            world.Entities.Add(diagnosticEntity);
        }
        protected override void LoadContent(PloobsEngine.Engine.GraphicInfo GraphicInfo, PloobsEngine.Engine.GraphicFactory factory, PloobsEngine.SceneControl.IContentManager contentManager)
        {
            tile = factory.GetTexture2D("Textures/tile");

            FarseerWorld fworld = this.World.PhysicWorld as FarseerWorld;

            ///border
            border = new Border(fworld, factory, GraphicInfo, factory.CreateTexture2DColor(1, 1, Color.Red));

            ///from texture
            {
                Texture2D tex = factory.GetTexture2D("Textures//goo");
                IModelo2D model = new SpriteFarseer(tex);
                Basic2DTextureMaterial mat = new Basic2DTextureMaterial();
                FarseerObject fs = new FarseerObject(fworld, model);
                I2DObject o = new I2DObject(fs, mat, model);
                o.PhysicObject.Position = new Vector2(200, 0);
                this.World.AddObject(o);
            }

            ///from texture, scale usage sample
            {
                Texture2D tex = factory.GetTexture2D("Textures//goo");
                tex = factory.GetScaledTexture(tex, new Vector2(2));
                IModelo2D model = new SpriteFarseer(tex);
                Basic2DTextureMaterial mat = new Basic2DTextureMaterial();
                FarseerObject fs = new FarseerObject(fworld, model);
                I2DObject o = new I2DObject(fs, mat, model);
                o.OnHasMoved += new PloobsEngine.SceneControl._2DScene.OnHasMoved(o_OnHasMoved);
                this.World.AddObject(o);
            }

            ///rectangle
            Vertices verts = PolygonTools.CreateRectangle(50, 50);
            {
                IModelo2D model = new SpriteFarseer(factory, verts, Color.Orange);
                Basic2DTextureMaterial mat = new Basic2DTextureMaterial();
                FarseerObject fs = new FarseerObject(fworld, model);
                I2DObject o = new I2DObject(fs, mat, model);
                o.PhysicObject.Position = new Vector2(-200, 0);
                this.World.AddObject(o);
            }

            ///circle
            CircleShape circle = new CircleShape(50, 1);
            {
                IModelo2D model = new SpriteFarseer(factory, circle, Color.Orange);
                Basic2DTextureMaterial mat = new Basic2DTextureMaterial();
                FarseerObject fs = new FarseerObject(fworld, model);
                I2DObject o = new I2DObject(fs, mat, model);
                o.PhysicObject.Position = new Vector2(200, -100);
                this.World.AddObject(o);
            }

            ///animated sprite
            {
                Texture2D tex = factory.GetTexture2D("Textures//DudeSheet");
                SpriteAnimated sa = new SpriteAnimated(tex, 8, 2);
                sa.AddAnimation("ANIM1", 1, 8, 0);
                sa.AddAnimation("ANIM2", 2, 4, MathHelper.PiOver2);

                Basic2DTextureMaterial mat = new Basic2DTextureMaterial();
                Texture2D frame = factory.GetTexturePart(tex, sa.GetFrameRectangle("ANIM1", 0));
                FarseerObject fs = new FarseerObject(fworld, frame);

                //GhostObject fs = new GhostObject(Vector2.Zero);
                sheet = new I2DObject(fs, mat, sa);
                sheet.PhysicObject.Position = new Vector2(500, 0);
                this.World.AddObject(sheet);
            }

            {
                PointLight2D l = new PointLight2D(new Vector2(-GraphicInfo.BackBufferWidth / 4, -GraphicInfo.BackBufferWidth / 4), Color.Red, 1);
                this.World.AddLight(l);
            }

            {
                SpotLight2D l = new SpotLight2D(new Vector2(+GraphicInfo.BackBufferWidth / 4, -GraphicInfo.BackBufferWidth / 4), Color.Blue, new Vector2(0, 1), MathHelper.ToRadians(45));
                this.World.AddLight(l);
            }

            {
                SimpleConcreteKeyboardInputPlayable sc = new SimpleConcreteKeyboardInputPlayable(StateKey.PRESS, Keys.Space);
                sc.KeyStateChange += new KeyStateChange(sc_KeyStateChange);
                this.BindInput(sc);
            }

            ///camera
            this.World.Camera2D = new Camera2D(GraphicInfo);

            DPFSParticleSystem ps = new DPFSParticleSystem("TESTE", new SpriteParticleSystem(null));
            this.World.ParticleManager.AddAndInitializeParticleSystem(ps);

            ///add a post effect =P
            //this.RenderTechnic.AddPostEffect(new WigglePostEffect());

            ///updateable
            JointUpdateable ju = new JointUpdateable(this, fworld, this.World.Camera2D);

            base.LoadContent(GraphicInfo, factory, contentManager);

            {
                NeoforceGui guiManager = this.Gui as NeoforceGui;
                System.Diagnostics.Debug.Assert(guiManager != null);

                // Create and setup Window control.
                Window window = new Window(guiManager.Manager);
                window.Init();
                window.Text = "Getting Started";
                window.Width = 480;
                window.Height = 200;
                window.Center();
                window.Visible = true;

                // Create Button control and set the previous window as its parent.
                Button button = new Button(guiManager.Manager);
                button.Init();
                button.Text = "OK";
                button.Width = 72;
                button.Height = 24;
                button.Left = (window.ClientWidth / 2) - (button.Width / 2);
                button.Top = window.ClientHeight - button.Height - 8;
                button.Anchor = Anchors.Bottom;
                button.Parent = window;

                // Add the window control to the manager processing queue.
                guiManager.Manager.Add(window);

            }
        }
Exemplo n.º 33
0
        void AddLoadGameWindow(Manager gui)
        {
            var LoadButton = new MenuButton(gui, ClickSound, FocusSound, GameSettings);

            LoadGameWindow                    = new Window(gui);
            LoadGameWindow.Width              = 300;
            LoadGameWindow.Height             = 200;
            LoadGameWindow.CloseButtonVisible = false;
            LoadGameWindow.Text               = GlblRes.Load_Savegame;
            LoadGameWindow.Parent             = MainMenuBackground;
            LoadGameWindow.Init();
            LoadGameWindow.Center(new Point(Game.VIRTUAL_WIDTH, Game.VIRTUAL_HEIGHT));
            LoadGameWindow.Visible     = false;
            LoadGameWindow.Resizable   = false;
            LoadGameWindow.IconVisible = false;
            LoadGameWindow.DragAlpha   = 255;
            LoadGameWindow.Movable     = false;

            var SaveGameScreenshot = new ImageBox(gui);

            SaveGameScreenshot.Parent   = MainMenuBackground;
            SaveGameScreenshot.Width    = MainMenuBackground.Width;
            SaveGameScreenshot.Height   = MainMenuBackground.Height;
            SaveGameScreenshot.Visible  = false;
            SaveGameScreenshot.SizeMode = SizeMode.Stretched;

            LoadGameWindow.Closed += (s, e) => { LoadGameListbox.ItemIndex = -1; };

            LoadGameListbox                   = new ListBox(gui);
            LoadGameListbox.Width             = LoadGameWindow.ClientWidth;
            LoadGameListbox.Parent            = LoadGameWindow;
            LoadGameListbox.Height            = LoadGameWindow.ClientHeight - 35;
            LoadGameListbox.ItemIndexChanged += (s, e) =>
            {
                ClickSound.Play(GameSettings.SoundEffectVolume, 0f, 0f);
                MainMenuLabel.Text = string.Empty;
                if (LoadGameListbox.ItemIndex > -1)
                {
                    if (SaveGameScreenshot.Image != null)
                    {
                        SaveGameScreenshot.Image.Dispose();
                    }

                    var Screenshot = SaveGames[SaveGames.Keys.ElementAt(LoadGameListbox.ItemIndex)].Screenshot;
                    if (Screenshot != null)
                    {
                        using (Stream ScreenshotStream = new MemoryStream(Screenshot))
                        {
                            SaveGameScreenshot.Image = Texture2D.FromStream(Engine.Renderer.GraphicsDevice, ScreenshotStream);
                        }
                    }

                    SaveGameScreenshot.Show();
                    LoadButton.Enabled = true;
                }
                else
                {
                    SaveGameScreenshot.Hide();
                    LoadButton.Enabled = false;
                }
            };

            var Bevel = new Bevel(gui);

            Bevel.Parent = LoadGameWindow;
            Bevel.Anchor = Anchors.Bottom | Anchors.Left | Anchors.Right;
            Bevel.Height = 35;
            Bevel.Style  = BevelStyle.Raised;
            Bevel.Top    = LoadGameWindow.ClientHeight - Bevel.Height;
            Bevel.Width  = LoadGameWindow.ClientWidth;

            LoadButton.Init();
            LoadButton.Parent  = Bevel;
            LoadButton.Enabled = false;
            LoadButton.Text    = GlblRes.Load_Savegame;
            LoadButton.Click  += (s, e) =>
            {
                MainMenuLabel.Text = string.Empty;
                try
                {
                    Engine.LoadState(SaveGames.Keys.ElementAt(LoadGameListbox.ItemIndex));
                }
                catch
                {
                    MainMenuLabel.Text = GlblRes.Could_not_load_save_game_Maybe_it_was_created_in_an_earlier_game_version;
                    return;
                }

                LoadGameWindow.Close();
                MainMenuBackground.Hide();
                Engine.Resume();
                Engine.Renderer.GUIManager.ShowSoftwareCursor = false;
            };
            LoadButton.Width = 130;
            LoadButton.Left  = 5;
            LoadButton.Top   = 5;

            var CancelButton = new MenuButton(gui, ClickSound, FocusSound, GameSettings);

            CancelButton.Init();
            CancelButton.Parent = Bevel;
            CancelButton.Text   = GlblRes.Cancel;
            CancelButton.Click += (s, e) =>
            {
                LoadGameWindow.Close();
                ShowLogo(true);
            };
            CancelButton.Width = 130;
            CancelButton.Left  = 150;
            CancelButton.Top   = 5;

            gui.Add(LoadGameWindow);
        }
Exemplo n.º 34
0
        void AddExitConfirmationWindow(Manager gui)
        {
            ExitConfirmationWindow = new Window(gui);
            ExitConfirmationWindow.Init();
            ExitConfirmationWindow.Text        = GlblRes.Really_quit;
            ExitConfirmationWindow.Width       = 290;
            ExitConfirmationWindow.Height      = 130;
            ExitConfirmationWindow.Resizable   = false;
            ExitConfirmationWindow.IconVisible = false;
            ExitConfirmationWindow.Movable     = false;
            ExitConfirmationWindow.Center(new Point(Game.VIRTUAL_WIDTH, Game.VIRTUAL_HEIGHT));
            ExitConfirmationWindow.Visible            = false;
            ExitConfirmationWindow.CloseButtonVisible = false;

            var Bevel = new Bevel(gui);

            Bevel.Parent = ExitConfirmationWindow;
            Bevel.Anchor = Anchors.Bottom | Anchors.Left | Anchors.Right;
            Bevel.Height = 35;
            Bevel.Style  = BevelStyle.Raised;
            Bevel.Top    = ExitConfirmationWindow.ClientHeight - Bevel.Height;
            Bevel.Width  = ExitConfirmationWindow.ClientWidth;


            var Text = new Label(gui);

            Text.Text   = GlblRes.Do_you_really_want_to_quit_the_game;
            Text.Parent = ExitConfirmationWindow;
            Text.Top    = 10;
            Text.Left   = 10;
            Text.Width  = ExitConfirmationWindow.ClientWidth - 20;
            Text.Height = 20;

            var Yes = new MenuButton(gui, ClickSound, FocusSound, GameSettings);

            Yes.Parent = Bevel;
            Yes.Width  = 100;
            Yes.Text   = GlblRes.Yes;
            Yes.Left   = 10;
            Yes.Top    = 5;
            Yes.Click += (se, ve) =>
            {
                Engine.Exit();
            };


            var No = new MenuButton(gui, ClickSound, FocusSound, GameSettings);

            No.Parent = Bevel;
            No.Text   = GlblRes.Menu_AddExitConfirmationWindow_No;
            No.Width  = 100;
            No.Left   = 165;
            No.Top    = 5;
            No.Click += (se, ev) =>
            {
                ExitConfirmationWindow.Close();
                ShowLogo(true);
            };

            gui.Add(ExitConfirmationWindow);
        }
        public OptionsWindow(Sidebar sidebar)
        {
            UserInterface.GameInputDisabled = true;
            this.manager = sidebar.manager;
            this.sidebar = sidebar;

            window = new Window(manager);
            window.Init();
            window.Left = sidebar.master.Left;
            window.Width = sidebar.master.Width;
            window.Top = 200;
            window.Height = 200;
            window.Width = 240;
            window.Text = "Options";
            window.Resizable = false;
            window.Movable = false;

            window.Closed += delegate { UserInterface.GameInputDisabled = false; };
            window.ShowModal();
            manager.Add(window);

            btnOk = new Button(manager);
            btnOk.Init();
            btnOk.Parent = window;
            btnOk.Left = LeftPadding;
            btnOk.Top = window.Height - (btnOk.Height * 3);
            btnOk.Text = "Ok";// +"\u2713";
            btnOk.Click += (s, e) => window.Close();

            //btnLoadLevel = new Button(manager);
            //btnLoadLevel.Init();
            //window.Add(btnLoadLevel);
            //btnLoadLevel.Width += 30;
            //btnLoadLevel.Left = window.Width - btnLoadLevel.Width - LeftPadding * 5;
            //btnLoadLevel.Text = "Load Level";
            //btnLoadLevel.Top = window.Height - (btnLoadLevel.Height * 3);
            //btnLoadLevel.Click += btnLoadLevel_Click;
            //
            //btnSaveLevel = new Button(manager);
            //btnSaveLevel.Init();
            //window.Add(btnSaveLevel);
            //btnSaveLevel.Width += 30;
            //btnSaveLevel.Left = window.Width - btnSaveLevel.Width - LeftPadding * 5;
            //btnSaveLevel.Text = "Save Level";
            //btnSaveLevel.Top = btnLoadLevel.Top - btnSaveLevel.Height - LeftPadding;
            //btnSaveLevel.Click += btnSaveLevel_Click;

            lblUserLevel = new Label(manager);
            lblUserLevel.Init();
            lblUserLevel.Parent = window;
            lblUserLevel.Left = LeftPadding;
            lblUserLevel.Top = HeightCounter;
            lblUserLevel.Text = "User Level";
            lblUserLevel.Width += 10;

            cbUserLevel = new ComboBox(manager);
            cbUserLevel.Init();
            cbUserLevel.Parent = window;
            cbUserLevel.Top = HeightCounter;
            cbUserLevel.Left = lblUserLevel.Width;
            cbUserLevel.Width = 150;
            HeightCounter += cbUserLevel.Height;
            cbUserLevel.TextColor = Color.Black;
            foreach(string ul in Enum.GetNames(typeof(UserLevel)))
            {
                cbUserLevel.Items.Add(ul);
            }
            cbUserLevel.ItemIndexChanged += (s, e) =>
            {
                sidebar.userLevel = (UserLevel)cbUserLevel.ItemIndex;

            };
            int count = 0;
            foreach(object s in cbUserLevel.Items)
            {
                if (s.ToString().Equals(sidebar.userLevel.ToString()))
                {
                    cbUserLevel.ItemIndex = count;
                }
                count++;
            }

            Label lblRes = new Label(manager);
            lblRes.Init();
            lblRes.Parent = window;
            lblRes.Left = LeftPadding;
            lblRes.Top = HeightCounter;
            lblRes.Text = "Resolution";
            lblRes.Width += 10;

            ComboBox cbResolutions = new ComboBox(manager);
            cbResolutions.Init();
            cbResolutions.Parent = window;
            cbResolutions.Top = HeightCounter;
            cbResolutions.Left = lblUserLevel.Width;
            cbResolutions.Width = 150;
            HeightCounter += cbResolutions.Height;
            cbUserLevel.TextColor = Color.Black;
            foreach (resolutions r in Enum.GetValues(typeof(resolutions)))
            {
                cbResolutions.Items.Add(r);
            }
            cbResolutions.ItemIndexChanged += (s, e) =>
            {
                OrbIt.game.setResolution((resolutions)cbResolutions.ItemIndex, OrbIt.game.Graphics.IsFullScreen);
                if (OrbIt.game.Graphics.IsFullScreen)
                    OrbIt.game.prefFullScreenResolution = (resolutions)cbResolutions.ItemIndex;
                else OrbIt.game.prefWindowedResolution = (resolutions)cbResolutions.ItemIndex;

            };

            CreateCheckBox("FullScreen", OrbIt.isFullScreen, (o, e) =>
            {
                if ((o as CheckBox).Checked) OrbIt.game.setResolution(resolutions.AutoFullScreen, true);
                else OrbIt.game.setResolution(resolutions.WXGA_1280x800, false);
            });
            CreateCheckBox("Hide Links", sidebar.ui.game.room.DrawLinks, (o, e) => sidebar.ui.game.room.DrawLinks = !(o as CheckBox).Checked);

            CreateCheckBox("Edit Selected Node", false, (o, e) => Utils.notImplementedException() );

            //CreateCheckBox("Edit Selected Node", sidebar.EditSelectedNode, (o, e) => sidebar.EditSelectedNode = (o as CheckBox).Checked);
        }
Exemplo n.º 36
0
        void AddSaveGameWindow(Manager gui)
        {
            var SaveButton  = new MenuButton(gui, ClickSound, FocusSound, GameSettings);
            var NameTextBox = new TextBox(gui);

            SaveGameWindow                    = new Window(gui);
            SaveGameWindow.Width              = 300;
            SaveGameWindow.Height             = 240;
            SaveGameWindow.CloseButtonVisible = false;
            SaveGameWindow.Text               = GlblRes.Save;
            SaveGameWindow.IconVisible        = false;
            SaveGameWindow.Parent             = MainMenuBackground;
            SaveGameWindow.Init();
            SaveGameWindow.Visible   = false;
            SaveGameWindow.Resizable = false;
            SaveGameWindow.Center(new Point(Game.VIRTUAL_WIDTH, Game.VIRTUAL_HEIGHT));
            SaveGameWindow.Movable = false;

            SaveGameWindow.Closed += (s, e) => { SaveGameListbox.ItemIndex = -1; };

            SaveGameListbox                   = new ListBox(gui);
            SaveGameListbox.Width             = SaveGameWindow.ClientWidth;
            SaveGameListbox.Parent            = SaveGameWindow;
            SaveGameListbox.Height            = SaveGameWindow.ClientHeight - 35 - 30;
            SaveGameListbox.ItemIndexChanged += (s, e) =>
            {
                ClickSound.Play(GameSettings.SoundEffectVolume, 0f, 0f);
                if (SaveGameListbox.ItemIndex > -1)
                {
                    NameTextBox.Text = SaveGames[SaveGames.Keys.ElementAt(SaveGameListbox.ItemIndex)].Name;
                }
            };

            var Bevel = new Bevel(gui);

            Bevel.Parent = SaveGameWindow;
            Bevel.Anchor = Anchors.Bottom | Anchors.Left | Anchors.Right;
            Bevel.Height = 35;
            Bevel.Style  = BevelStyle.Raised;
            Bevel.Top    = SaveGameWindow.ClientHeight - Bevel.Height;
            Bevel.Width  = SaveGameWindow.ClientWidth;

            SaveButton.Init();
            SaveButton.Parent  = Bevel;
            SaveButton.Enabled = false;
            SaveButton.Text    = GlblRes.Save;
            SaveButton.Click  += (s, e) =>
            {
                Engine.SaveState(NameTextBox.Text);
                ShowLogo(true);
                SaveGameWindow.Close();
                RefreshSaveGames();
            };
            SaveButton.Width = 130;
            SaveButton.Left  = 5;
            SaveButton.Top   = 5;

            var CancelButton = new MenuButton(gui, ClickSound, FocusSound, GameSettings);

            CancelButton.Init();
            CancelButton.Parent = Bevel;
            CancelButton.Text   = GlblRes.Cancel;
            CancelButton.Click += (s, e) =>
            {
                SaveGameWindow.Close();
                ShowLogo(true);
            };
            CancelButton.Width = 130;
            CancelButton.Left  = Bevel.ClientWidth - 130 - 5;
            CancelButton.Top   = 5;

            gui.Add(SaveGameWindow);

            var SaveGameNameLabel = new Label(gui);

            SaveGameNameLabel.Parent = SaveGameWindow;
            SaveGameNameLabel.Top    = SaveGameListbox.Height + 5;
            SaveGameNameLabel.Left   = 5;
            SaveGameNameLabel.Width  = 95;
            SaveGameNameLabel.Text   = GlblRes.Name;

            NameTextBox.Parent = SaveGameWindow;
            NameTextBox.Init();
            NameTextBox.Left         = 60;
            NameTextBox.Top          = SaveGameListbox.Height + 5;
            NameTextBox.Width        = 220;
            NameTextBox.Height       = 20;
            NameTextBox.TextChanged += (s, e) =>
            {
                SaveButton.Enabled = !string.IsNullOrWhiteSpace(NameTextBox.Text);
            };
            NameTextBox.KeyPress += (s, e) =>
            {
                if (e.Key == Microsoft.Xna.Framework.Input.Keys.Enter)
                {
                    Engine.SaveState(NameTextBox.Text);
                    SaveGameWindow.Close();
                    ShowLogo(true);
                    RefreshSaveGames();
                }
            };

            gui.Add(SaveGameWindow);
        }