public GUICheckbox(UDim2 position, UDim2 size, string checkedText, GUITheme theme) : this(position, size, checkedText, theme, theme.GetField <Image>(Image.Blank, "Checkbox.NormalImage"), theme.GetField <Image>(Image.Blank, "Checkbox.HoverImage"), theme.GetField <Image>(Image.Blank, "Checkbox.ActiveImage")) { }
public SingleplayerMenu(GUISystem system, GUITheme theme, MainWindow mainWindow) : base(system, new UDim2(0.35f, 0, 0.3f, 0), "Ace of Spades", theme) { IsDraggable = false; MaxSize = new UDim2(0, 400, 1f, 0); MinSize = new UDim2(0, 220, 0, 100); GUIButton backBtn = new GUIButton(new UDim2(0, 0, 0, 25), new UDim2(1f, 0, 0, 30), "Back to Main Menu", TextAlign.Center, theme); backBtn.OnMouseClick += (btn, mbtn) => { if (mbtn == MouseButton.Left) { mainWindow.SwitchScreen("MainMenu"); } }; GUIButton controlsBtn = new GUIButton(new UDim2(0, 0, 0, 60), new UDim2(1f, 0, 0, 30), "View Controls", TextAlign.Center, theme); controlsBtn.OnMouseClick += (btn, mbtn) => { if (mbtn == MouseButton.Left) { mainWindow.StaticGui.ToggleControlsWindow(true); } }; AddTopLevel(backBtn, controlsBtn); }
public TerraformWindow(GUISystem system, GUITheme theme) : base(system, new UDim2(0.25f, 0, 0.25f, 0), "Terraform Options", theme, false) { Position = new UDim2(0, 0, 0.75f, 0); MinSize = new UDim2(0, 200, 0, 250); MaxSize = new UDim2(0, 475, 0, 350); GUIForm form = new GUIForm(UDim2.Zero, new UDim2(1f, 0, 1f, 0), theme); GUILabel brushSizeLabel; GUITextField brushSizeField; form.AddLabledTextField("Brush Size:", BrushSize.ToString(), new UDim2(0, 5, 0, 25), out brushSizeLabel, out brushSizeField); brushSizeField.OnTextChanged += BrushSizeField_OnTextChanged; GUILabel riseHeightLabel; GUITextField riseHeightField; form.AddLabledTextField("Rise Height:", RiseHeight.ToString(), new UDim2(0, 5, 0, 30 + brushSizeLabel.Size.Y.Offset), out riseHeightLabel, out riseHeightField); riseHeightField.OnTextChanged += RiseHeightField_OnTextChanged; AddTopLevel(form); }
public GUIFrame(UDim2 position, UDim2 size, GUITheme theme) : base(theme) { Image = theme.GetField <Image>(Image.Blank, "Frame.Image"); Position = position; Size = size; }
public FileBrowserWindow(GUISystem system, GUITheme theme, UDim2 size, string title, FileBrowserMode mode, string[] exts, FileBrowserCompleted callback) : base(system, size, title, theme) { this.mode = mode; this.callback = callback; this.exts = exts; BMPFont smallFont = theme.GetField <BMPFont>(null, "SmallFont", "Font"); dirField = new GUITextField(new UDim2(0, 0, 0, 20), new UDim2(1, -40, 0, 20), Environment.CurrentDirectory, TextAlign.Left, theme); dirField.Label.Font = smallFont; GUIButton goToDirBtn = new GUIButton(new UDim2(1, -40, 0, 20), new UDim2(0, 40, 0, 20), "Go", theme); goToDirBtn.OnMouseClick += (btn, mbtn) => { ScanDir(); }; GUILabel fileNameLabel = new GUILabel(new UDim2(0, 0, 1, -40), new UDim2(1, -200, 0, 20), "File Name:", TextAlign.Left, theme); selectedFileLabel = new GUITextField(new UDim2(0, 0, 1, -20), new UDim2(1, -200, 0, 20), "", TextAlign.Left, theme); selectedFileLabel.Label.Font = smallFont; GUIButton doneBtn = new GUIButton(new UDim2(1, -100, 1, -40), new UDim2(0, 100, 0, 40), mode == FileBrowserMode.OpenFile ? "Open" : "Save", TextAlign.Center, theme); doneBtn.OnMouseClick += (btn, mbtn) => { callback(this); Visible = false; }; GUIButton cancelBtn = new GUIButton(new UDim2(1, -200, 1, -40), new UDim2(0, 100, 0, 40), "Cancel", TextAlign.Center, theme); cancelBtn.OnMouseClick += (btn, mbtn) => { Visible = false; }; AddTopLevel(dirField, goToDirBtn, fileNameLabel, selectedFileLabel, doneBtn, cancelBtn); ScanDir(); }
public GUIFrame(UDim2 position, UDim2 size) { Image = Image.Blank; Image.Color = Color.Transparent; Position = position; Size = size; }
public void AddLabledTextField(string labelText, string defaultFieldText, UDim2 position, out GUITextField textField, UDim?fieldXLength = null) { GUILabel label; AddLabledTextField(labelText, defaultFieldText, position, out label, out textField, fieldXLength); }
public PlayerFrame(NetworkPlayer player, bool isOurPlayer, UDim2 position, UDim2 size, GUITheme theme) : base(position, size, Image.CreateBlank(Color.White)) { Theme = theme; NetPlayer = player; this.isOurPlayer = isOurPlayer; nameLabel = new GUILabel(UDim2.Zero, UDim2.Fill, "", TextAlign.Left, theme) { Parent = this }; nameLabel.Font = Theme.GetField <BMPFont>(null, "Leaderboard.PlayerLabel.Font"); nameLabel.TextPadding.X = 6; scoreLabel = new GUILabel(UDim2.Zero, new UDim2(1f, -50, 1f, 0), "0", TextAlign.Right, theme) { Parent = this }; scoreLabel.Font = Theme.GetField <BMPFont>(null, "Leaderboard.PlayerLabel.Font"); scoreLabel.TextPadding.Z = 6; pingLabel = new GUILabel(UDim2.Zero, UDim2.Fill, "0ms", TextAlign.Right, theme) { Parent = this }; pingLabel.Font = Theme.GetField <BMPFont>(null, "Leaderboard.PlayerLabel.Font"); pingLabel.TextPadding.Z = 6; SetName(player.Name); SetScore(player.Score); }
public GUIColorPickerWindow(GUISystem system, UDim2 size, GUITheme theme, bool closable = true) : base(system, size, "Color Picker", theme, closable) { ColorPicker = new GUIColorPicker(new UDim2(0, 5, 0, 25), new UDim2(1f, -10, 1f, -30), theme); AddTopLevel(ColorPicker); }
public GUIWindowBase(GUISystem system, UDim2 size) : base(system) { Visible = false; Size = size; Center(); }
public GUIWindowBase(GUISystem system, UDim2 position, UDim2 size) : base(system) { Visible = false; Position = position; Size = size; }
/// <inheritdoc /> protected GuiElement() { Position = new UDim2(0, 0, 0, 0); Size = new UDim2(0, 100, 0, 100); CornerRadius = 0; ZIndex = 0; Visible = true; BorderThickness = 1; BorderColour = Colour.Black; BackgroundColour = Colour.White; IsHitTestVisible = true; Measured = new Signal(this); MouseButton1Click = new Signal(this); MouseButton1Down = new Signal <int, int>(this); MouseButton1Up = new Signal <int, int>(this); MouseButton2Click = new Signal(this); MouseButton2Down = new Signal <int, int>(this); MouseButton2Up = new Signal <int, int>(this); MouseEnter = new Signal <int, int>(this); MouseLeave = new Signal <int, int>(this); MouseMove = new Signal <int, int>(this); MouseWheel = new Signal <int, int, float>(this); GotFocus = new Signal(this); LostFocus = new Signal(this); MouseEnter.Event += OnMouseEnter; Renderer.InvokeResourceDependent(CreateResources); }
public BrowserOptionButton(UDim2 position, UDim2 size, GUITheme theme, string text, TextAlign textAlign, bool gotoParent, bool isFolder) : base(position, size, text, textAlign, theme) { ParentOption = gotoParent; IsFolder = isFolder; }
public GUIButton(UDim2 position, UDim2 size, string text, TextAlign textAlign, GUITheme theme) : this(position, size, text, textAlign, theme, theme.GetField <Image>(Image.Blank, "Button.NormalImage"), theme.GetField <Image>(Image.Blank, "Button.HoverImage"), theme.GetField <Image>(Image.Blank, "Button.ActiveImage"), theme.GetField <Image>(Image.Blank, "Button.ToggledImage")) { }
public GUILabel(UDim2 position, UDim2 size, string text, TextAlign textAlign, Color textColor, GUITheme theme) : this(position, size, text, textAlign, theme.GetField <BMPFont>(null, "Label.Font", "Font"), textColor, theme.GetField <Color?>(null, "Label.TextShadowColor")) { Theme = theme; }
public GUITextField(UDim2 position, UDim2 size, string text, GUITheme theme) : this(position, size, text, theme, theme.GetField <Image>(Image.Blank, "TextField.NormalImage"), theme.GetField <Image>(Image.Blank, "TextField.HoverImage"), theme.GetField <Image>(Image.Blank, "TextField.ActiveImage"), theme.GetField <Image>(Image.Blank, "TextField.ToggledImage")) { }
public void Center() { Position = new UDim2( (1f - Size.X.Scale) / 2f, -Size.X.Offset / 2f, (1f - Size.Y.Scale) / 2f, -Size.Y.Offset / 2f); Offset = Vector2.Zero; }
public MessageWindow(GUISystem system, GUITheme theme, UDim2 size, string title) : base(system, size, title, theme) { msgLabel = new GUILabel(UDim2.Zero, new UDim2(1f, 0, 1f, -30), "", TextAlign.Center, theme); GUIButton okBtn = new GUIButton(new UDim2(0.5f, -75, 1f, -30), new UDim2(0, 150, 0, 30), "Okay", theme); okBtn.OnMouseClick += (btn, mbtn) => { Visible = false; }; AddTopLevel(msgLabel, okBtn); }
/// <summary> /// Updates <see cref="AbsoluteSize" /> and <see cref="AbsolutePosition" />. /// </summary> public virtual void Measure() { var parentGui = Parent as GuiBase2D; var parentSize = parentGui?.AbsoluteSize ?? (parentGui?.AbsoluteSize ?? new Vector2()); var parentPosition = parentGui?.AbsolutePosition ?? new Vector2(); AbsoluteSize = Size.toAbsolute(parentSize).round(); var position = Position; var xScaleOffset = 0.0f; var yScaleOffset = 0.0f; var xAbsoluteOffset = 0; var yAbsoluteOffset = 0; var xMult = 1; var yMult = 1; if (_alignmentX == AlignmentX.Right) { xScaleOffset = 1; xAbsoluteOffset = (int)-AbsoluteSize.X; xMult = -1; } else if (_alignmentX == AlignmentX.Center) { xScaleOffset = 0.5f; xAbsoluteOffset = (int)-AbsoluteSize.X / 2; } if (_alignmentY == AlignmentY.Bottom) { yScaleOffset = 1; yAbsoluteOffset = (int)-AbsoluteSize.Y; yMult = -1; } else if (_alignmentY == AlignmentY.Middle) { yScaleOffset = 0.5f; yAbsoluteOffset = (int)-AbsoluteSize.Y / 2; } position = new UDim2(xScaleOffset + position.Scale.X * xMult, xAbsoluteOffset + position.Absolute.X * xMult, yScaleOffset + position.Scale.Y * xMult, yAbsoluteOffset + position.Absolute.Y * yMult); AbsolutePosition = (parentPosition + position.toAbsolute(parentSize)).round(); Measured?.Fire(); Arrange(); foreach (var kv in Children) { var el = kv as GuiElement; el?.Measure(); } }
public UDim2 Lerp(UDim2 other, float alpha) { float scaleX = X.Scale + ((other.X.Scale - X.Scale) * alpha); int offsetX = X.Offset + (int)((other.X.Offset - X.Offset) * alpha); float scaleY = Y.Scale + ((other.Y.Scale - Y.Scale) * alpha); int offsetY = Y.Offset + (int)((other.Y.Offset - Y.Offset) * alpha); return(new UDim2(scaleX, offsetX, scaleY, offsetY)); }
public GUIHueSlider(GUIColorPicker picker, UDim2 position, UDim2 size, Image image) : base(position, size, image) { this.picker = picker; CapturesMouseClicks = true; tracker = new GUIFrame(new UDim2(0, 0, 0, -1), new UDim2(1f, 0, 0, 3), Image.Blank) { Parent = this, NeverCaptureMouse = true }; }
public void WriteProperty(Property prop, XmlDocument doc, XmlNode node) { UDim2 value = prop.CastValue <UDim2>(); UDim xUDim = value.X; UDimToken.WriteUDim(doc, node, xUDim, "X"); UDim yUDim = value.Y; UDimToken.WriteUDim(doc, node, yUDim, "Y"); }
public ObjectEditWindow(GUISystem system, GUITheme theme) : base(system, new UDim2(0.25f, 0, 0.25f, 0), "Edit <Object>", theme, false) { Position = new UDim2(0, 0, 0.75f, 0); MinSize = new UDim2(0, 200, 0, 250); MaxSize = new UDim2(0, 475, 0, 350); elements = new List <GUIElement>(); form = new GUIForm(UDim2.Zero, new UDim2(1f, 0, 1f, 0), theme); AddTopLevel(form); Visible = false; }
public ChatBox(UDim2 position, UDim2 size, GUITheme theme, MultiplayerScreen screen) : base(position, size, theme) { this.screen = screen; items = new List <ChatItem>(); Image = null; font = AssetManager.LoadFont("arial-bold-11"); textField = new GUITextField(new UDim2(0, 0, 1f, -15), new UDim2(1f, 0, 0, 30), theme) { Parent = this }; textField.OnEnterPressed += TextField_OnEnterPressed; }
public static UDim2[] ReadUDim2Array(EndianAwareBinaryReader reader, int count) { var scaleXValues = ReadFloatArray(reader, count); var scaleYValues = ReadFloatArray(reader, count); var offsetXValues = ReadInt32Array(reader, count); var offsetYValues = ReadInt32Array(reader, count); var values = new UDim2[count]; for (var i = 0; i < count; i++) { values[i] = new UDim2(offsetXValues[i], scaleXValues[i], offsetYValues[i], scaleYValues[i]); } return(values); }
public ChatItem(GUITheme theme, float height, int numFeed, string text, BMPFont font) : base(UDim2.Zero, UDim2.Zero, image: null) { Position = new UDim2(0, 0, 0, 20 + (height * numFeed)); Size = new UDim2(0, 1f, 0, height); label = new GUILabel(UDim2.Zero, new UDim2(0, 1, 1f, 0), text, TextAlign.Left, Color.White, theme) { Parent = this }; label.Font = font; TimeLeft = 60f; }
public void AddLabledCheckbox(string labelText, bool checkboxDefaultState, UDim2 position, out GUILabel label, out GUICheckbox checkbox) { label = new GUILabel(position, UDim2.Zero, labelText, TextAlign.Left, Theme); Vector2 textSize = label.Font.MeasureString(labelText); label.Size = new UDim2(0, textSize.X, 0, textSize.Y + (ElementPadding * 2)); UDim labelXPos = position.X + new UDim(0, textSize.X + ElementPadding); checkbox = new GUICheckbox(new UDim2(labelXPos, position.Y), label.Size.Y.Offset, Theme); checkbox.IsChecked = checkboxDefaultState; label.Parent = this; checkbox.Parent = this; }
public GUICheckbox(UDim2 position, UDim2 size, string checkedText, BMPFont font, Color textColor, Image normalImg, Image hoverImg, Image activeImg) { Position = position; Size = size; CapturesMouseClicks = true; Label = new GUILabel(UDim2.Zero, new UDim2(1f, 0, 1f, 0), checkedText, TextAlign.Center, font, textColor) { Parent = this, Visible = false }; NormalImage = normalImg; HoverImage = hoverImg; ActiveImage = activeImg; }
/// <inheritdoc /> public BillboardGui() { _size = new UDim2(0, 128, 0, 128); _offset = Vector3.Zero; _alwaysOnTop = false; BuildTexture(); UpdateRenderData(); /* * InstanceBuffer = new Buffer(Renderer.Device, GraphicsManager.RenderDataObjectSize, ResourceUsage.Dynamic, * BindFlags.VertexBuffer, CpuAccessFlags.Write, ResourceOptionFlags.None, * GraphicsManager.RenderDataObjectSize); * * GraphicsManager.BillboardVao.Add(this); */ }
public GUIAlphaSlider(GUIColorPicker picker, UDim2 position, UDim2 size, Image checkerImage, Image alphaImage) : base(position, size, checkerImage) { this.picker = picker; CapturesMouseClicks = true; overlay = new GUIFrame(UDim2.Zero, new UDim2(1f, 0, 1f, 0), alphaImage) { Parent = this, NeverCaptureMouse = true }; tracker = new GUIFrame(new UDim2(0, 0, 0, -1), new UDim2(1f, 0, 0, 3), Image.Blank) { Parent = this, NeverCaptureMouse = true, ZIndex = 1 }; }