예제 #1
0
        /// <summary>
        /// Constructor.
        /// </summary>
        /// <param name="game">The currently running Game object.</param>
        /// <param name="guiManager">GUIManager that this control is part of.</param>
        /// <param name="message">Message to display.</param>
        /// <param name="title">Window title.</param>
        /// <param name="buttons">Tyoe of buttons to display.</param>
        /// <param name="type">Type of icon to use.</param>
        public MessageBox(
            Game game,
            GUIManager guiManager,
            string message,
            string title,
            MessageBoxButtons buttons,
            MessageBoxType type
            )
            : base(game, guiManager)
        {
            this.buttonList = new List<TextButton>();

            #region Create Child Controls
            this.icon = new Icon(game, guiManager);
            this.message = new Label(game, guiManager);
            #endregion

            this.buttons = buttons;

            if (this.buttons == MessageBoxButtons.OK || this.buttons == MessageBoxButtons.Yes_No)
                HasCloseButton = false;

            this.infoSkin = defaultInfoSkin;
            this.errorSkin = defaultErrorSkin;
            this.warningSkin = defaultWarningSkin;
            this.questionSkin = defaultQuestionSkin;

            this.type = type;

            Add(this.message);
            this.TitleText = title;
            this.message.Text = message;

            int numButtons = 0;

            if (this.buttons == MessageBoxButtons.OK)
                numButtons = 1;
            else if (this.buttons == MessageBoxButtons.OK_Cancel || this.buttons == MessageBoxButtons.Yes_No)
                numButtons = 2;
            else if (this.buttons == MessageBoxButtons.Yes_No_Cancel)
                numButtons = 3;

            for (int i = 0; i < numButtons; i++)
            {
                TextButton newButton = new TextButton(game, guiManager);
                this.buttonList.Add(newButton);
                Add(newButton);

                if (i == 0)
                {
                    if (this.buttons == MessageBoxButtons.OK || this.buttons == MessageBoxButtons.OK_Cancel)
                        newButton.Text = "OK";
                    else
                        newButton.Text = "Yes";
                }
                else if (i == 1)
                {
                    if (this.buttons == MessageBoxButtons.OK_Cancel)
                        newButton.Text = "Cancel";
                    else
                        newButton.Text = "No";
                }
                else
                    newButton.Text = "Cancel";

                newButton.Click += new ClickHandler(OnClick);
            }

            ArrangeWindow(type);
        }
        /// <summary>
        /// Constructor.
        /// </summary>
        /// <param name="game">The currently running Game object.</param>
        /// <param name="guiManager">GUIManager that this control is part of.</param>
        /// <param name="graphics">Graphics device manager to change settings.</param>
        public DisplaySettingsDialog(Game game, GUIManager guiManager, GraphicsDeviceManager graphics)
            : base(game, guiManager)
        {
            #region Create Child Controls
            this.fullscreenCheckBox = new CheckBox(game, guiManager);
            this.resolutionLabel    = new Label(game, guiManager);
            this.resolutionCombo    = new ComboBox(game, guiManager);
            this.OKButton           = new TextButton(game, guiManager);
            this.cancelButton       = new TextButton(game, guiManager);
            this.applyButton        = new TextButton(game, guiManager);
            #endregion

            #region Add Child Controls
            Add(this.fullscreenCheckBox);
            Add(this.resolutionLabel);
            Add(this.resolutionCombo);
            Add(this.OKButton);
            Add(this.cancelButton);
            Add(this.applyButton);
            #endregion

            this.graphics = graphics;

            // Set checkbox to current value
            if (graphics.IsFullScreen)
            {
                this.fullscreenCheckBox.IsChecked = true;
            }

            // Populate combobox
            this.resolutionCombo.AddEntry("640x480");
            this.resolutionCombo.AddEntry("800x600");
            this.resolutionCombo.AddEntry("1024x768");
            this.resolutionCombo.AddEntry("1280x800");
            this.resolutionCombo.AddEntry("1280x960");
            this.resolutionCombo.AddEntry("1280x1024");

            // Set combobox to current value
            if (graphics.PreferredBackBufferWidth == 640 &&
                graphics.PreferredBackBufferHeight == 480)
            {
                this.resolutionCombo.SelectedIndex = 0;
            }
            else if (graphics.PreferredBackBufferWidth == 800 &&
                     graphics.PreferredBackBufferHeight == 600)
            {
                this.resolutionCombo.SelectedIndex = 1;
            }
            else if (graphics.PreferredBackBufferWidth == 1024 &&
                     graphics.PreferredBackBufferHeight == 768)
            {
                this.resolutionCombo.SelectedIndex = 2;
            }
            else if (graphics.PreferredBackBufferWidth == 1280 &&
                     graphics.PreferredBackBufferHeight == 800)
            {
                this.resolutionCombo.SelectedIndex = 3;
            }
            else if (graphics.PreferredBackBufferWidth == 1280 &&
                     graphics.PreferredBackBufferHeight == 960)
            {
                this.resolutionCombo.SelectedIndex = 4;
            }
            else if (graphics.PreferredBackBufferWidth == 1280 &&
                     graphics.PreferredBackBufferHeight == 1024)
            {
                this.resolutionCombo.SelectedIndex = 5;
            }

            // Child settings
            TitleText = "Display Settings";
            this.fullscreenCheckBox.Text    = "Fullscreen";
            this.resolutionLabel.Text       = "Select desired display resolution";
            this.resolutionLabel.Width      = this.resolutionLabel.TextWidth;
            this.resolutionCombo.IsEditable = false;
            this.OKButton.Text     = "OK";
            this.cancelButton.Text = "Cancel";
            this.applyButton.Text  = "Apply";
            Resizable = false;

            // Layout
            this.fullscreenCheckBox.X = LargeSeperation;
            this.fullscreenCheckBox.Y = LargeSeperation;
            this.resolutionLabel.X    = LargeSeperation;
            this.resolutionLabel.Y    = this.fullscreenCheckBox.Y + this.fullscreenCheckBox.Height + LargeSeperation;
            this.resolutionCombo.X    = LargeSeperation;
            this.resolutionCombo.Y    = this.resolutionLabel.Y + this.resolutionLabel.Height + SmallSeperation;
            this.OKButton.Y           = this.resolutionCombo.Y + this.resolutionCombo.Height + (LargeSeperation * 2);
            this.cancelButton.Y       = this.OKButton.Y;
            this.applyButton.Y        = this.OKButton.Y;

            // Check if buttons require more space
            int buttonsWidth = this.OKButton.Width + this.cancelButton.Width + this.applyButton.Width + (2 * SmallSeperation);

            if (buttonsWidth > this.resolutionCombo.Width)
            {
                this.resolutionCombo.Width = buttonsWidth;
                ClientWidth = buttonsWidth + (2 * LargeSeperation);
            }
            else
            {
                ClientWidth = this.resolutionCombo.Width + (2 * LargeSeperation);
            }

            this.ClientHeight = this.applyButton.Y + this.applyButton.Height + LargeSeperation;

            // Align buttons to the right of the window
            this.OKButton.X     = ClientWidth - this.OKButton.Width - LargeSeperation;
            this.cancelButton.X = OKButton.X - this.cancelButton.Width - SmallSeperation;
            this.applyButton.X  = cancelButton.X - this.cancelButton.Width - SmallSeperation;

            #region Event Handlers
            this.OKButton.Click     += new ClickHandler(OnOK);
            this.cancelButton.Click += new ClickHandler(OnCancel);
            this.applyButton.Click  += new ClickHandler(OnApply);
            #endregion
        }
예제 #3
0
        /// <summary>
        /// Constructor.
        /// </summary>
        /// <param name="game">The currently running Game object.</param>
        /// <param name="guiManager">GUIManager that this control is part of.</param>
        /// <param name="message">Message to display.</param>
        /// <param name="title">Window title.</param>
        /// <param name="buttons">Tyoe of buttons to display.</param>
        /// <param name="type">Type of icon to use.</param>
        public MessageBox(
            Game game,
            GUIManager guiManager,
            string message,
            string title,
            MessageBoxButtons buttons,
            MessageBoxType type
            )
            : base(game, guiManager)
        {
            this.buttonList = new List <TextButton>();

            #region Create Child Controls
            this.icon    = new Icon(game, guiManager);
            this.message = new Label(game, guiManager);
            #endregion

            this.buttons = buttons;

            if (this.buttons == MessageBoxButtons.OK || this.buttons == MessageBoxButtons.Yes_No)
            {
                HasCloseButton = false;
            }

            this.infoSkin     = defaultInfoSkin;
            this.errorSkin    = defaultErrorSkin;
            this.warningSkin  = defaultWarningSkin;
            this.questionSkin = defaultQuestionSkin;

            this.type = type;

            Add(this.message);
            this.TitleText    = title;
            this.message.Text = message;

            int numButtons = 0;

            if (this.buttons == MessageBoxButtons.OK)
            {
                numButtons = 1;
            }
            else if (this.buttons == MessageBoxButtons.OK_Cancel || this.buttons == MessageBoxButtons.Yes_No)
            {
                numButtons = 2;
            }
            else if (this.buttons == MessageBoxButtons.Yes_No_Cancel)
            {
                numButtons = 3;
            }

            for (int i = 0; i < numButtons; i++)
            {
                TextButton newButton = new TextButton(game, guiManager);
                this.buttonList.Add(newButton);
                Add(newButton);

                if (i == 0)
                {
                    if (this.buttons == MessageBoxButtons.OK || this.buttons == MessageBoxButtons.OK_Cancel)
                    {
                        newButton.Text = "OK";
                    }
                    else
                    {
                        newButton.Text = "Yes";
                    }
                }
                else if (i == 1)
                {
                    if (this.buttons == MessageBoxButtons.OK_Cancel)
                    {
                        newButton.Text = "Cancel";
                    }
                    else
                    {
                        newButton.Text = "No";
                    }
                }
                else
                {
                    newButton.Text = "Cancel";
                }

                newButton.Click += new ClickHandler(OnClick);
            }

            ArrangeWindow(type);
        }
예제 #4
0
        protected override bool initGUI()
        {
            _guiMgr = new GUIManager(_screenMgr);
            _screenMgr.Components.Add(_guiMgr);
            _guiMgr.Initialize();

            #region Shorthand GUI item creation
            // Create a MenuItem
            Func<UIComponent, String, MenuItem> create_mi =
                (UIComponent parent, String text) =>
                {
                    MenuItem mi             = new MenuItem(_screenMgr, _guiMgr);
                    mi.Text                 = text;

                    if          (parent is MenuBar)     (parent as MenuBar).Add(mi);
                    else if     (parent is MenuItem)    (parent as MenuItem).Add(mi);

                    return mi;
                };

            // Create a TextButton
            Func<UIComponent, String, int, int, int, int, TextButton> create_btn =
                (UIComponent parent, String text, int w, int h, int x, int y) =>
                {
                    TextButton btn = new TextButton(_screenMgr, _guiMgr);

                    btn.Text                = text;
                    btn.Width               = w;
                    btn.Height              = h;
                    btn.X                   = x;
                    btn.Y                   = y;

                    if          (parent is Dialog)      (parent as Dialog).Add(btn);
                    else if     (parent is Window)      (parent as Window).Add(btn);

                    return btn;
                };

            // Create a Dialog
            Func<String, int, int, int, int, Dialog> create_dialog =
                (String text, int w, int h, int x, int y) =>
                {
                    Dialog dialog = new Dialog(_screenMgr, _guiMgr);
                    _guiMgr.Add(dialog);

                    dialog.TitleText        = text;
                    dialog.Width            = w;
                    dialog.Height           = h;
                    dialog.X                = x;
                    dialog.Y                = y;
                    dialog.HasCloseButton   = false;

                    int bwidth              = 50;
                    int bheight             = 20;
                    int bxoffs              = 10;
                    int byoffs              = dialog.Height - 60;

                    // Ok button
                    TextButton btnOk = create_btn(
                        dialog, "Ok", bwidth, bheight, bxoffs, byoffs);
                    btnOk.Click += delegate(UIComponent sender)
                    {
                        dialog.DialogResult = DialogResult.OK;
                        dialog.CloseWindow();
                    };

                    // Cancel button
                    TextButton btnCancel = create_btn(
                        dialog, "Cancel", bwidth, bheight, bxoffs * 2 + bwidth, byoffs);
                    btnCancel.Click += delegate(UIComponent sender)
                    {
                        dialog.DialogResult = DialogResult.Cancel;
                        dialog.CloseWindow();
                    };

                    return dialog;
                };

            // Create a text box
            Func<UIComponent, String, int, int, int, TextBox> create_textbox =
                (UIComponent parent, String text, int w, int x, int y) =>
                {
                    TextBox textBox = new TextBox(_screenMgr, _guiMgr);

                    textBox.Width           = w;
                    textBox.X               = x;
                    textBox.Y               = y;

                    Label label             = new Label(_screenMgr, _guiMgr);
                    label.Text              = text;
                    label.Width             = 100;
                    label.Height            = 50;
                    label.X                 = x - label.Width;
                    label.Y                 = y + 5;

                    if (parent is Dialog)
                    {
                        (parent as Dialog).Add(textBox);
                        (parent as Dialog).Add(label);
                    }

                    return textBox;
                };
            #endregion

            {   // Main menu bar
                MenuBar menuBar = new MenuBar(_screenMgr, _guiMgr);
                _guiMgr.Add(menuBar);
                //-----------------------------------------------------------------
                {   // File
                    MenuItem fileButton = create_mi(menuBar, "File");
                    //-------------------------------------------------------------
                    {   // New
                        MenuItem newButton = create_mi(fileButton, "New");
                        newButton.Click += delegate(UIComponent sender)
                        {
                            Dialog d = create_dialog("New", 300, 200, 100, 100);
                            TextBox rows = create_textbox(d, "Rows", 50, 150, 10);
                            TextBox cols = create_textbox(d, "Cols", 50, 150, 40);
                            TextBox tile = create_textbox(d, "Tile", 100, 150, 70);

                            d.Close += delegate(UIComponent dsender)
                            {
                                switch (d.DialogResult)
                                {
                                    case DialogResult.Cancel:
                                        return;
                                    case DialogResult.OK:
                                        int numRows = Convert.ToInt32(rows.Text);
                                        int numCols = Convert.ToInt32(cols.Text);
                                        _gameLevelMgr.newLevel(numRows, numCols, tile.Text);
                                        return;
                                }
                            };
                        };
                    }

                    //-------------------------------------------------------------
                    {   // Save as
                        MenuItem saveAsButton = create_mi(fileButton, "Save as");
                        saveAsButton.Click += delegate(UIComponent sender)
                        {
                            Dialog d = create_dialog("Save as", 300, 200, 100, 100);
                            TextBox file = create_textbox(d, "Path", 200, 100, 50);

                            d.Close += delegate(UIComponent dsender)
                            {
                                switch (d.DialogResult)
                                {
                                    case DialogResult.Cancel:
                                        return;
                                    case DialogResult.OK:
                                        _gameLevelMgr.saveLevel(LEVEL_DIRECTORY + file.Text);
                                        return;
                                }
                            };
                        };
                    }
                    //-------------------------------------------------------------
                    {   // Load
                        MenuItem loadButton = create_mi(fileButton, "Load");
                        loadButton.Click += delegate(UIComponent sender)
                        {
                            Dialog d = create_dialog("Load", 300, 200, 100, 100);
                            TextBox file = create_textbox(d, "File", 200, 100, 50);

                            d.Close += delegate(UIComponent dsender)
                            {
                                switch (d.DialogResult)
                                {
                                    case DialogResult.Cancel:
                                        return;
                                    case DialogResult.OK:
                                        _gameLevelMgr.loadLevel("levels\\" + file.Text);
                                        return;
                                }
                            };
                        };
                    }
                    //-------------------------------------------------------------
                    {   // Quit to menu
                        MenuItem quitButton = create_mi(fileButton, "Quit to menu");
                        quitButton.Click += delegate(UIComponent sender)
                        {

                        };
                    }
                }
                //-----------------------------------------------------------------
                {   // Windows
                    MenuItem windows = create_mi(menuBar, "Windows");

                    Func<String, int, int, int, int, Window> create_win =
                        (String text, int w, int h, int x, int y) =>
                        {
                            Window win = new Window(_screenMgr, _guiMgr);
                            _guiMgr.Add(win);
                            win.Width = w;
                            win.Height = h;
                            win.X = x;
                            win.Y = y;
                            win.TitleText = text;

                            return win;
                        };

                    //-------------------------------------------------------------
                    {   // Tile browser
                        MenuItem tbrowser = create_mi(windows, "Tile Browser");
                        tbrowser.Click += delegate(UIComponent sender)
                        {
                            Window tbwin = create_win("Tile Browser", 300, 500, 400, 100);
                            //-----------------------------------------------------
                            {   // Tile buttons
                                TextButton stoneButton = create_btn(tbwin, "Stone", 60, 30, 10, 10);
                                stoneButton.Click += delegate(UIComponent bsender)
                                {
                                    Drawable tdrwble = _gameContentMgr.loadDrawable("tile_stone");
                                    foreach (GameTile tile in _selection) tile.Entity.Drawable = tdrwble;
                                };
                                TextButton grassButton = create_btn(tbwin, "Grass", 60, 30, 10, 50);
                                grassButton.Click += delegate(UIComponent bsender)
                                {
                                    Drawable tdrwble = _gameContentMgr.loadDrawable("tile_grass");
                                    foreach (GameTile tile in _selection) tile.Entity.Drawable = tdrwble;
                                };
                                TextButton rockButton = create_btn(tbwin, "Rock", 60, 30, 10, 90);
                                rockButton.Click += delegate(UIComponent bsender)
                                {
                                    Drawable tdrwble = _gameContentMgr.loadDrawable("tile_rock");
                                    foreach (GameTile tile in _selection) tile.Entity.Drawable = tdrwble;
                                };
                                TextButton sandButton = create_btn(tbwin, "Sand", 60, 30, 10, 130);
                                sandButton.Click += delegate(UIComponent bsender)
                                {
                                    Drawable tdrwble = _gameContentMgr.loadDrawable("tile_sand");
                                    foreach (GameTile tile in _selection) tile.Entity.Drawable = tdrwble;
                                };
                                TextButton stoneSandButton = create_btn(tbwin, "S-Sand", 60, 30, 10, 170);
                                stoneSandButton.Click += delegate(UIComponent bsender)
                                {
                                    Drawable tdrwble = _gameContentMgr.loadDrawable("tile_stonesand");
                                    foreach (GameTile tile in _selection) tile.Entity.Drawable = tdrwble;
                                };
                            }
                        };
                    }
                    //-------------------------------------------------------------
                    {   // Character browser
                        MenuItem chrbrowser = create_mi(windows, "Character Browser");
                        chrbrowser.Click += delegate(UIComponent sender)
                        {
                            Window chrbwin = create_win("Character Browser", 300, 500, 400, 100);
                        };
                    }
                    //-------------------------------------------------------------
                    {   // Object browser
                        MenuItem itembrowser = create_mi(windows, "Item Browser");
                        itembrowser.Click += delegate(UIComponent sender)
                        {
                            Window ibwin = create_win("Item Browser", 300, 500, 400, 100);
                            //-----------------------------------------------------
                            {   // Item buttons
                                TextButton tree1btn = create_btn(ibwin, "Tree1", 60, 30, 10, 10);
                                tree1btn.Click += delegate(UIComponent bsender)
                                {
                                    foreach (GameTile tile in _selection)
                                    {
                                        GameObject tree = _gameLevelMgr.createGameObject<GameObject>("tree" + _gameLevelMgr.GameObjectCount, "tree1");
                                        tile.Node.attachChildNode(tree.Node);
                                        tree.Node.translateTo(tile.Node.PositionIsometric);
                                    }
                                };
                            }
                        };
                    }
                }
                //-----------------------------------------------------------------
                {   // Tool bar
                    Window toolBar = new Window(_screenMgr, _guiMgr);
                    _guiMgr.Add(toolBar);

                    toolBar.HasCloseButton = false;
                    toolBar.Width = _screenMgr.GraphicsDevice.Viewport.Width;
                    toolBar.Height = 60;
                    toolBar.Y = menuBar.Y + menuBar.Height;
                    toolBar.Resizable = false;
                    toolBar.HasFullWindowMovableArea = false;
                    toolBar.TitleBarHeight = 4;

                    int btncount, btnx, btny, btnw, btnh;
                    btncount = 0;
                    btnx = 8;
                    btny = 4;
                    btnw = 60;
                    btnh = 24;
                    //-------------------------------------------------------------
                    {   // Deselect
                        TextButton noneButton = create_btn(toolBar, "None",
                            btnw, btnh, ((btnx + btnw) * btncount++), btny);
                        noneButton.Click += delegate(UIComponent sender)
                        {
                            Tool = EditorTool.TOOL_NONE;
                        };
                    }
                    //-------------------------------------------------------------
                    {   // Select
                        TextButton selectButton = create_btn(toolBar, "Select",
                            btnw, btnh, ((btnx + btnw) * btncount++), btny);
                        selectButton.Click += delegate(UIComponent sender)
                        {
                            Tool = EditorTool.TOOL_SELECT;
                        };
                    }
                    //-------------------------------------------------------------
                    {   // Zero
                        TextButton zeroButton = create_btn(toolBar, "Zero",
                            btnw, btnh, ((btnx + btnw) * btncount++), btny);
                        zeroButton.Click += delegate(UIComponent sender)
                        {
                            batchElevation(0.0f);
                        };
                    }
                    //-------------------------------------------------------------
                    {   // Elevate
                        TextButton elevateButton = create_btn(toolBar, "Elevate",
                            btnw, btnh, ((btnx + btnw) * btncount++), btny);
                        elevateButton.Click += delegate(UIComponent sender)
                        {
                            Tool = EditorTool.TOOL_ELEVATE;
                        };
                    }
                    //-------------------------------------------------------------
                    {   // Activate
                        TextButton activateButton = create_btn(toolBar, "Activate",
                            btnw, btnh, ((btnx + btnw) * btncount++), btny);
                        activateButton.Click += delegate(UIComponent sender)
                        {
                            batchActivate(true);
                        };
                    }
                    //-------------------------------------------------------------
                    {   // Deactivate
                        TextButton deactivateButton = create_btn(toolBar, "Deact",
                            btnw, btnh, ((btnx + btnw) * btncount++), btny);
                        deactivateButton.Click += delegate(UIComponent sender)
                        {
                            batchActivate(false);
                        };
                    }
                }
            }

            return base.initGUI();
        }
예제 #5
0
        /// <summary>
        /// Constructor.
        /// </summary>
        /// <param name="game">The currently running Game object.</param>
        /// <param name="guiManager">GUIManager that this control is part of.</param>
        /// <param name="graphics">Graphics device manager to change settings.</param>
        public DisplaySettingsDialog(Game game, GUIManager guiManager, GraphicsDeviceManager graphics)
            : base(game, guiManager)
        {
            #region Create Child Controls
            this.fullscreenCheckBox = new CheckBox(game, guiManager);
            this.resolutionLabel = new Label(game, guiManager);
            this.resolutionCombo = new ComboBox(game, guiManager);
            this.OKButton = new TextButton(game, guiManager);
            this.cancelButton = new TextButton(game, guiManager);
            this.applyButton = new TextButton(game, guiManager);
            #endregion

            #region Add Child Controls
            Add(this.fullscreenCheckBox);
            Add(this.resolutionLabel);
            Add(this.resolutionCombo);
            Add(this.OKButton);
            Add(this.cancelButton);
            Add(this.applyButton);
            #endregion

            this.graphics = graphics;

            // Set checkbox to current value
            if (graphics.IsFullScreen)
                this.fullscreenCheckBox.IsChecked = true;

            // Populate combobox
            this.resolutionCombo.AddEntry("640x480");
            this.resolutionCombo.AddEntry("800x600");
            this.resolutionCombo.AddEntry("1024x768");
            this.resolutionCombo.AddEntry("1280x800");
            this.resolutionCombo.AddEntry("1280x960");
            this.resolutionCombo.AddEntry("1280x1024");

            // Set combobox to current value
            if (graphics.PreferredBackBufferWidth == 640 &&
                graphics.PreferredBackBufferHeight == 480)
                this.resolutionCombo.SelectedIndex = 0;
            else if (graphics.PreferredBackBufferWidth == 800 &&
                graphics.PreferredBackBufferHeight == 600)
                this.resolutionCombo.SelectedIndex = 1;
            else if (graphics.PreferredBackBufferWidth == 1024 &&
                graphics.PreferredBackBufferHeight == 768)
                this.resolutionCombo.SelectedIndex = 2;
            else if (graphics.PreferredBackBufferWidth == 1280 &&
                graphics.PreferredBackBufferHeight == 800)
                this.resolutionCombo.SelectedIndex = 3;
            else if (graphics.PreferredBackBufferWidth == 1280 &&
                graphics.PreferredBackBufferHeight == 960)
                this.resolutionCombo.SelectedIndex = 4;
            else if (graphics.PreferredBackBufferWidth == 1280 &&
                graphics.PreferredBackBufferHeight == 1024)
                this.resolutionCombo.SelectedIndex = 5;

            // Child settings
            TitleText = "Display Settings";
            this.fullscreenCheckBox.Text = "Fullscreen";
            this.resolutionLabel.Text = "Select desired display resolution";
            this.resolutionLabel.Width = this.resolutionLabel.TextWidth;
            this.resolutionCombo.IsEditable = false;
            this.OKButton.Text = "OK";
            this.cancelButton.Text = "Cancel";
            this.applyButton.Text = "Apply";
            Resizable = false;

            // Layout
            this.fullscreenCheckBox.X = LargeSeperation;
            this.fullscreenCheckBox.Y = LargeSeperation;
            this.resolutionLabel.X = LargeSeperation;
            this.resolutionLabel.Y = this.fullscreenCheckBox.Y + this.fullscreenCheckBox.Height + LargeSeperation;
            this.resolutionCombo.X = LargeSeperation;
            this.resolutionCombo.Y = this.resolutionLabel.Y + this.resolutionLabel.Height + SmallSeperation;
            this.OKButton.Y = this.resolutionCombo.Y + this.resolutionCombo.Height + (LargeSeperation * 2);
            this.cancelButton.Y = this.OKButton.Y;
            this.applyButton.Y = this.OKButton.Y;

            // Check if buttons require more space
            int buttonsWidth = this.OKButton.Width + this.cancelButton.Width + this.applyButton.Width + (2 * SmallSeperation);

            if (buttonsWidth > this.resolutionCombo.Width)
            {
                this.resolutionCombo.Width = buttonsWidth;
                ClientWidth = buttonsWidth + (2 * LargeSeperation);
            }
            else
                ClientWidth = this.resolutionCombo.Width + (2 * LargeSeperation);

            this.ClientHeight = this.applyButton.Y + this.applyButton.Height + LargeSeperation;

            // Align buttons to the right of the window
            this.OKButton.X = ClientWidth - this.OKButton.Width - LargeSeperation;
            this.cancelButton.X = OKButton.X - this.cancelButton.Width - SmallSeperation;
            this.applyButton.X = cancelButton.X - this.cancelButton.Width - SmallSeperation;

            #region Event Handlers
            this.OKButton.Click += new ClickHandler(OnOK);
            this.cancelButton.Click += new ClickHandler(OnCancel);
            this.applyButton.Click += new ClickHandler(OnApply);
            #endregion
        }