public StarlightGame(string workingDirectory) { this.graphics = new GraphicsDeviceManager(this); this.desktop = new MyraUI.Desktop(); this.ResourceLocator = new ResourceLocator(workingDirectory); this.ResourceCache = new ResourceCache(); this.NetworkClient = new StarlightClient(new Telepathy.Client()); this.ScreenContainer = new ScreenContainer(this, ResourceCache, ResourceLocator, NetworkClient, desktop); this.networkDispatch = new NetworkDispatch(this.NetworkClient, this.ScreenContainer); this.networkDispatch.ResolveHandlers(); Content.RootDirectory = "Content"; IsMouseVisible = true; }
public void Close() { Desktop.HideContextMenu(); }
public void ShowModal(Desktop desktop) { desktop.Widgets.Add(this); desktop.FocusedWidget = this; }
public ScreenContainer(StarlightGame game, ResourceCache resourceCache, ResourceLocator resourceLocator, StarlightClient networkClient, MyraUI.Desktop desktop) { this.game = game; this.resourceCache = resourceCache; this.resourceLocator = resourceLocator; this.networkClient = networkClient; this.desktop = desktop; this.screenStack = new Stack <IScreen>(); }
public void ShowModal(Desktop desktop) { desktop.ModalWidget = this; }
public void Close() { Desktop.HideContextMenu(); HoverIndex = SelectedIndex = null; }
protected override void LoadContent() { base.LoadContent(); var grid = new Grid { RowSpacing = 8, ColumnSpacing = 8 }; const float bottomMargin = 10; const float leftRightMargin = 20; const float betweenMargin = 10; grid.ColumnsProportions.Add(new Grid.Proportion(Grid.ProportionType.Pixels, leftRightMargin)); grid.ColumnsProportions.Add(new Grid.Proportion(Grid.ProportionType.Auto)); grid.ColumnsProportions.Add(new Grid.Proportion(Grid.ProportionType.Pixels, betweenMargin)); grid.ColumnsProportions.Add(new Grid.Proportion(Grid.ProportionType.Fill)); grid.ColumnsProportions.Add(new Grid.Proportion(Grid.ProportionType.Pixels, leftRightMargin)); grid.RowsProportions.Add(new Grid.Proportion(Grid.ProportionType.Fill)); grid.RowsProportions.Add(new Grid.Proportion(Grid.ProportionType.Auto)); grid.RowsProportions.Add(new Grid.Proportion(Grid.ProportionType.Auto)); grid.RowsProportions.Add(new Grid.Proportion(Grid.ProportionType.Auto)); grid.RowsProportions.Add(new Grid.Proportion(Grid.ProportionType.Pixels, bottomMargin)); // Labels grid.Widgets.Add(new TextBlock { Text = "Number of Lines", GridPositionX = 1, GridPositionY = 1 }); grid.Widgets.Add(new TextBlock { Text = "Line Size", GridPositionX = 1, GridPositionY = 2 }); grid.Widgets.Add(new TextBlock { Text = "Line Offset", GridPositionX = 1, GridPositionY = 3 }); // Sliders HorizontalSlider numberOfLinesSlider; HorizontalSlider lineSizeSlider; HorizontalSlider lineOffsetSlider; // Create and add sliders grid.Widgets.Add(numberOfLinesSlider = new HorizontalSlider { GridPositionX = 3, GridPositionY = 1, Value = (float)settings.NumberOfLines / (float)HandleAnimation.MaxHandleLines * 100 }); grid.Widgets.Add(lineSizeSlider = new HorizontalSlider { GridPositionX = 3, GridPositionY = 2, Value = settings.LineSize / MaxLineOffset * 100 }); grid.Widgets.Add(lineOffsetSlider = new HorizontalSlider { GridPositionX = 3, GridPositionY = 3, Value = settings.LineOffset / MaxLineSize * 100 }); // Attach events to sliders numberOfLinesSlider.ValueChanged += (sender, args) => { settings.NumberOfLines = (int)(numberOfLinesSlider.Value / 100f * HandleAnimation.MaxHandleLines); }; lineSizeSlider.ValueChanged += (sender, args) => { settings.LineSize = (int)(lineSizeSlider.Value / 100f * MaxLineOffset); }; lineOffsetSlider.ValueChanged += (sender, args) => { settings.LineOffset = (int)(lineOffsetSlider.Value / 100f * MaxLineSize); }; host = new Myra.Graphics2D.UI.Desktop(); host.Widgets.Add(grid); }
/// <summary> /// LoadContent will be called once per game and is the place to load /// all of your content. /// </summary> protected override void LoadContent() { // Create a new SpriteBatch, which can be used to draw textures. spriteBatch = new SpriteBatch(GraphicsDevice); // TODO: use this.Content to load your game content here placeholder = this.Content.Load <Texture2D>("Textures/picture"); MyraEnvironment.Game = this; console = new Engine.Debug.DebugConsole(this, true); console.AddMessage("Activated Debug Console"); var grid = new Grid { RowSpacing = 16, ColumnSpacing = 16 }; grid.ColumnsProportions.Add(new Grid.Proportion(Grid.ProportionType.Auto)); grid.ColumnsProportions.Add(new Grid.Proportion(Grid.ProportionType.Auto)); grid.RowsProportions.Add(new Grid.Proportion(Grid.ProportionType.Auto)); grid.RowsProportions.Add(new Grid.Proportion(Grid.ProportionType.Auto)); // TextBlock var helloWorld = new TextBlock { Id = "label", Text = "Hello, World!" }; grid.Widgets.Add(helloWorld); // ComboBox var combo = new ComboBox { GridColumn = 1, GridRow = 0, Id = "buildingType" }; combo.Items.Add(new ListItem("Dev.PowerSourceBuilding", Microsoft.Xna.Framework.Color.White)); combo.Items.Add(new ListItem("Dev.PowerConsumeBuilding", Microsoft.Xna.Framework.Color.White)); grid.Widgets.Add(combo); var xSizeText = new TextBlock { Top = 25, Text = "XSize", }; grid.Widgets.Add(xSizeText); var ySizeText = new TextBlock { Top = 50, Text = "YSize", }; grid.Widgets.Add(ySizeText); var xResolutionText = new TextBlock { Top = 75, Text = "xResolution", Id = "xResolution", }; grid.Widgets.Add(xResolutionText); var yResolutionText = new TextBlock { Top = 100, Text = "yResolution", }; grid.Widgets.Add(yResolutionText); var xSizeSpinButton = new SpinButton { Left = 100, Id = "xSize", PaddingTop = 25, Width = 100, Minimum = 0, Nullable = false, }; grid.Widgets.Add(xSizeSpinButton); var ySizeSpinButton = new SpinButton { Id = "ySize", Left = 100, Top = 50, Width = 100, Minimum = 0, Nullable = false, }; grid.Widgets.Add(ySizeSpinButton); var xResolutionSpinButton = new SpinButton { Left = 100, Id = "xResolution", Top = 75, Width = 100, Minimum = 0, Nullable = false, }; grid.Widgets.Add(xResolutionSpinButton); var yResolutionSpinButton = new SpinButton { Left = 100, Top = 100, Minimum = 0, Width = 100, Id = "yResolution", Nullable = false, }; grid.Widgets.Add(yResolutionSpinButton); var applyButton = new TextBlock { Top = 125, Text = "Regenerate" }; applyButton.MouseDown += (s, a) => { UnLoadMap(); LoadMap("testGererate"); }; grid.Widgets.Add(applyButton); // Add it to the desktop _desktop = new Desktop(); _desktop.Widgets.Add(grid); console.Draw(_desktop); }