dev #17
@ -6,7 +6,7 @@ public class Settings
|
|||||||
{
|
{
|
||||||
[JsonInclude]
|
[JsonInclude]
|
||||||
[JsonPropertyName("scale")]
|
[JsonPropertyName("scale")]
|
||||||
public double Scale { get; set; } = 1;
|
public double? Scale { get; set; } = null;
|
||||||
[JsonInclude]
|
[JsonInclude]
|
||||||
[JsonPropertyName("perscrollpixels")]
|
[JsonPropertyName("perscrollpixels")]
|
||||||
public uint PerScrollPixels { get; set; } = 20;
|
public uint PerScrollPixels { get; set; } = 20;
|
||||||
@ -25,11 +25,25 @@ public class Settings
|
|||||||
[JsonInclude]
|
[JsonInclude]
|
||||||
[JsonPropertyName("default_display")]
|
[JsonPropertyName("default_display")]
|
||||||
public int Display { get; set; } = 0;
|
public int Display { get; set; } = 0;
|
||||||
|
|
||||||
[JsonInclude]
|
[JsonInclude]
|
||||||
[JsonPropertyName("log")]
|
[JsonPropertyName("log")]
|
||||||
public ConsoleLog Logs { get; set; } = ConsoleLog.DrawFrames | ConsoleLog.BigErrosForOpenGL |
|
public ConsoleLog Logs { get; set; } = ConsoleLog.DrawFrames | ConsoleLog.BigErrosForOpenGL |
|
||||||
ConsoleLog.MediumErrosForOpenGL | ConsoleLog.LowErrosForOpenGL;
|
ConsoleLog.MediumErrosForOpenGL | ConsoleLog.LowErrosForOpenGL;
|
||||||
|
[JsonInclude]
|
||||||
|
[JsonPropertyName("scale_fonts")]
|
||||||
|
public bool ScaleFonts { get; set; } = true;
|
||||||
|
[JsonInclude]
|
||||||
|
[JsonPropertyName("default_font_px")]
|
||||||
|
public uint DefaultFontPX { get; set; } = 20;
|
||||||
|
[JsonInclude]
|
||||||
|
[JsonPropertyName("top_time_font_px")]
|
||||||
|
public uint TopTimeFonttPX { get; set; } = 11;
|
||||||
|
[JsonInclude]
|
||||||
|
[JsonPropertyName("message_font_px")]
|
||||||
|
public uint MessageFontPX { get; set; } = 17;
|
||||||
|
[JsonInclude]
|
||||||
|
[JsonPropertyName("message_font_line_space_px")]
|
||||||
|
public uint MessageFontLineSpacePX { get; set; } = 5;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -17,7 +17,7 @@ public class AccountButton : UserControl
|
|||||||
:base(Globals.ms.TextureManager.GetTextureResource("RoundedRectangle.png"))
|
:base(Globals.ms.TextureManager.GetTextureResource("RoundedRectangle.png"))
|
||||||
{
|
{
|
||||||
this.SM = SM;
|
this.SM = SM;
|
||||||
base.Size = new((int)(297 * Globals.Settings.Scale), (int)(40* Globals.Settings.Scale));
|
base.Size = new(297.ScaleInt(), 40.ScaleInt());
|
||||||
TextureDisplay = TextureDisplay.HorizontalCenter;
|
TextureDisplay = TextureDisplay.HorizontalCenter;
|
||||||
Shader = Rectangle.DefaultAlphaShader[Globals.ms.Context];
|
Shader = Rectangle.DefaultAlphaShader[Globals.ms.Context];
|
||||||
l = new Label(Globals.DefaultFont)
|
l = new Label(Globals.DefaultFont)
|
||||||
|
@ -10,14 +10,14 @@ public class AddServerIcon : UserControl
|
|||||||
{
|
{
|
||||||
Button = new(Globals.ms.TextureManager.GetTextureResource("add.png"))
|
Button = new(Globals.ms.TextureManager.GetTextureResource("add.png"))
|
||||||
{
|
{
|
||||||
Location = new((int)(18 * Globals.Settings.Scale), (int)(8 * Globals.Settings.Scale), 0),
|
Location = new(18.ScaleInt(), 8.ScaleInt(), 0),
|
||||||
Size = new((int)(32 * Globals.Settings.Scale)),
|
Size = new(32.ScaleInt()),
|
||||||
Shader = Rectangle.DefaultAlphaShader[Globals.ms.Context],
|
Shader = Rectangle.DefaultAlphaShader[Globals.ms.Context],
|
||||||
BackgroundColor = Color4.White,
|
BackgroundColor = Color4.White,
|
||||||
IgnoreHover = true
|
IgnoreHover = true
|
||||||
};
|
};
|
||||||
Controls.Add(Button);
|
Controls.Add(Button);
|
||||||
BackgroundColor = new(26, 26, 26, 255);
|
base.BackgroundColor = new(26, 26, 26, 255);
|
||||||
base.Size = new((int)(68 * Globals.Settings.Scale), (int)(48 * Globals.Settings.Scale));
|
base.Size = new(68.ScaleInt(), 48.ScaleInt());
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -34,7 +34,7 @@ public class AddServerOverlay : UserControl, IServerOverlay
|
|||||||
|
|
||||||
Form = new(Globals.ms.TextureManager.GetTextureResource("RoundedRectangle.png"))
|
Form = new(Globals.ms.TextureManager.GetTextureResource("RoundedRectangle.png"))
|
||||||
{
|
{
|
||||||
Size = new((int)(350 * Globals.Settings.Scale), (int)(347 * Globals.Settings.Scale)),
|
Size = new(350.ScaleInt(), 347.ScaleInt()),
|
||||||
BackgroundColor = new(32,32,32,255),
|
BackgroundColor = new(32,32,32,255),
|
||||||
Shader = Rectangle.DefaultAlphaShader[Globals.ms.Context],
|
Shader = Rectangle.DefaultAlphaShader[Globals.ms.Context],
|
||||||
TextureDisplay = TextureDisplay.Center
|
TextureDisplay = TextureDisplay.Center
|
||||||
@ -50,18 +50,18 @@ public class AddServerOverlay : UserControl, IServerOverlay
|
|||||||
Color = Color4.DarkGray,
|
Color = Color4.DarkGray,
|
||||||
IgnoreHover = true
|
IgnoreHover = true
|
||||||
};
|
};
|
||||||
Vector2i s =new((int)(ll.Size.X * 1.6f),(int)(27 * Globals.Settings.Scale));
|
Vector2i s =new((int)(ll.Size.X * 1.6f),27.ScaleInt());
|
||||||
ll = null;
|
ll = null;
|
||||||
|
|
||||||
Rectangle line = new Rectangle()
|
Rectangle line = new Rectangle()
|
||||||
{
|
{
|
||||||
Size = new Vector2i((int)Globals.Settings.Scale),
|
Size = new Vector2i(1.ScaleInt()),
|
||||||
BackgroundColor = Globals.DodgerBlue
|
BackgroundColor = Globals.DodgerBlue
|
||||||
};
|
};
|
||||||
|
|
||||||
tb = new()
|
tb = new()
|
||||||
{
|
{
|
||||||
Location = new((int)(10*Globals.Settings.Scale),(int)(50 * Globals.Settings.Scale), 0),
|
Location = new(10.ScaleInt(),50.ScaleInt(), 0),
|
||||||
Size = s,
|
Size = s,
|
||||||
WatermarkText = "Server Address",
|
WatermarkText = "Server Address",
|
||||||
TextLocation = TextLocation.PostiveTureCenterLeft,
|
TextLocation = TextLocation.PostiveTureCenterLeft,
|
||||||
@ -195,8 +195,8 @@ public class AddServerOverlay : UserControl, IServerOverlay
|
|||||||
btn.Textures[0] = Globals.ms.TextureManager.GetTextureResource("BadTextbox.png");
|
btn.Textures[0] = Globals.ms.TextureManager.GetTextureResource("BadTextbox.png");
|
||||||
page!.Controls.Add(UserName = new()
|
page!.Controls.Add(UserName = new()
|
||||||
{
|
{
|
||||||
Location = new(0, (int)(10* Globals.Settings.Scale), 0),
|
Location = new(0, 10.ScaleInt(), 0),
|
||||||
Size = new(page.Size.X, (int)(30* Globals.Settings.Scale)),
|
Size = new(page.Size.X, 30.ScaleInt()),
|
||||||
WatermarkText = "Username",
|
WatermarkText = "Username",
|
||||||
TextLocation = TextLocation.PostiveTureCenterLeft,
|
TextLocation = TextLocation.PostiveTureCenterLeft,
|
||||||
AllowMultiLine = false
|
AllowMultiLine = false
|
||||||
@ -283,7 +283,7 @@ public class AddServerOverlay : UserControl, IServerOverlay
|
|||||||
|
|
||||||
page.Controls.Add(rec = new(Globals.ms.TextureManager.GetAlphaCircle())
|
page.Controls.Add(rec = new(Globals.ms.TextureManager.GetAlphaCircle())
|
||||||
{
|
{
|
||||||
Size = new((int)(50 * Globals.Settings.Scale)),
|
Size = new(50.ScaleInt()),
|
||||||
BackgroundColor = Color4.Red,
|
BackgroundColor = Color4.Red,
|
||||||
Shader = Rectangle.DefaultAlphaShader[Globals.ms.Context],
|
Shader = Rectangle.DefaultAlphaShader[Globals.ms.Context],
|
||||||
IgnoreHover = false
|
IgnoreHover = false
|
||||||
@ -355,8 +355,8 @@ public class AddServerOverlay : UserControl, IServerOverlay
|
|||||||
btn!.Textures[0] = Globals.ms.TextureManager.GetTextureResource("BadTextbox.png");
|
btn!.Textures[0] = Globals.ms.TextureManager.GetTextureResource("BadTextbox.png");
|
||||||
page!.Controls.Add(UserName = new()
|
page!.Controls.Add(UserName = new()
|
||||||
{
|
{
|
||||||
Location = new(0, (int)(22* Globals.Settings.Scale), 0),
|
Location = new(0, 22.ScaleInt(), 0),
|
||||||
Size = new(page.Size.X, (int)(31* Globals.Settings.Scale)),
|
Size = new(page.Size.X, 31.ScaleInt()),
|
||||||
WatermarkText = "Username",
|
WatermarkText = "Username",
|
||||||
TextLocation = TextLocation.PostiveTureCenterLeft,
|
TextLocation = TextLocation.PostiveTureCenterLeft,
|
||||||
AllowMultiLine = false
|
AllowMultiLine = false
|
||||||
|
@ -11,9 +11,9 @@ public class LuskiContextMenu : BetterContextMenu
|
|||||||
public LuskiContextMenu()
|
public LuskiContextMenu()
|
||||||
:base(Globals.ms.TextureManager.GetTextureResource("Context.png"))
|
:base(Globals.ms.TextureManager.GetTextureResource("Context.png"))
|
||||||
{
|
{
|
||||||
Margins = new((int)(5 * Globals.Settings.Scale));
|
Margins = new(5.ScaleInt());
|
||||||
TextureDisplay = TextureDisplay.Center;
|
TextureDisplay = TextureDisplay.Center;
|
||||||
SpaceBetweenObjects = (int)(8 * Globals.Settings.Scale);
|
SpaceBetweenObjects = 8.ScaleInt();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Label AddLabel(string text, Color4 color)
|
public Label AddLabel(string text, Color4 color)
|
||||||
@ -47,6 +47,6 @@ public class LuskiContextMenu : BetterContextMenu
|
|||||||
|
|
||||||
public new void AddLine()
|
public new void AddLine()
|
||||||
{
|
{
|
||||||
AddLine(Color4.White, (int)Globals.Settings.Scale);
|
AddLine(Color4.White, 1.ScaleInt());
|
||||||
}
|
}
|
||||||
}
|
}
|
34
Luski/GUI/MainScreen/UI/LuskiControls/RoleView.cs
Normal file
34
Luski/GUI/MainScreen/UI/LuskiControls/RoleView.cs
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
using GraphicsManager.Objects;
|
||||||
|
using Luski.net.Structures.Public;
|
||||||
|
|
||||||
|
namespace Luski.GUI.MainScreen.UI.LuskiControls;
|
||||||
|
|
||||||
|
public class RoleView : FlowLayout
|
||||||
|
{
|
||||||
|
private string n = "";
|
||||||
|
private int i = 0;
|
||||||
|
private Label l;
|
||||||
|
private Role r;
|
||||||
|
public RoleView(Role r)
|
||||||
|
{
|
||||||
|
n = r.Name;
|
||||||
|
this.r = r;
|
||||||
|
Console.WriteLine(r.Name);
|
||||||
|
l = new(Globals.DefaultFont)
|
||||||
|
{
|
||||||
|
Text = " " + n + " — " + i.ToString(),
|
||||||
|
};
|
||||||
|
base.Size = new(0, 30.ScaleInt());
|
||||||
|
base.BackgroundColor = new(43, 45, 49, 255);
|
||||||
|
Controls.Add(l);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task AddUser(SocketUser user)
|
||||||
|
{
|
||||||
|
var f = await UserView.Make(user, r);
|
||||||
|
Controls.Add(f);
|
||||||
|
Size = new(Size.X, Size.Y + f.Size.Y);
|
||||||
|
i++;
|
||||||
|
l.Text = " " + n + " — " + i.ToString();
|
||||||
|
}
|
||||||
|
}
|
@ -1,3 +1,4 @@
|
|||||||
|
using System.Timers;
|
||||||
using GraphicsManager.Enums;
|
using GraphicsManager.Enums;
|
||||||
using GraphicsManager.Interfaces;
|
using GraphicsManager.Interfaces;
|
||||||
using GraphicsManager.Objects;
|
using GraphicsManager.Objects;
|
||||||
@ -6,6 +7,7 @@ using OpenTK.Mathematics;
|
|||||||
using OpenTK.Windowing.Common;
|
using OpenTK.Windowing.Common;
|
||||||
using OpenTK.Windowing.Common.Input;
|
using OpenTK.Windowing.Common.Input;
|
||||||
using OpenTK.Windowing.GraphicsLibraryFramework;
|
using OpenTK.Windowing.GraphicsLibraryFramework;
|
||||||
|
using Timer = System.Timers.Timer;
|
||||||
|
|
||||||
namespace Luski.GUI.MainScreen.UI.LuskiControls;
|
namespace Luski.GUI.MainScreen.UI.LuskiControls;
|
||||||
|
|
||||||
@ -13,10 +15,16 @@ public class TextBox : UserControl
|
|||||||
{
|
{
|
||||||
private Label _watermark, _label;
|
private Label _watermark, _label;
|
||||||
private bool use;
|
private bool use;
|
||||||
|
private Rectangle Pointer;
|
||||||
|
private Timer t;
|
||||||
|
|
||||||
|
public int CursorLocation { get; set; } = 0;
|
||||||
|
|
||||||
public TextBox()
|
public TextBox()
|
||||||
:base(Globals.ms.TextureManager.GetTextureResource("Textbox.png"))
|
:base(Globals.ms.TextureManager.GetTextureResource("Textbox.png"))
|
||||||
{
|
{
|
||||||
|
t = new(500);
|
||||||
|
t.Elapsed += TOnElapsed;
|
||||||
TextureDisplay = TextureDisplay.Center;
|
TextureDisplay = TextureDisplay.Center;
|
||||||
_label = new Label(Globals.DefaultFont)
|
_label = new Label(Globals.DefaultFont)
|
||||||
{
|
{
|
||||||
@ -30,18 +38,36 @@ public class TextBox : UserControl
|
|||||||
HoverMouse = MouseCursor.IBeam,
|
HoverMouse = MouseCursor.IBeam,
|
||||||
IgnoreHover = true
|
IgnoreHover = true
|
||||||
};
|
};
|
||||||
|
Pointer = new()
|
||||||
|
{
|
||||||
|
Size = new(1.ScaleInt(), (int)(Globals.DefaultFont.PixelHeight * ((float)Globals.DefaultFont.CurrentFonts[0].Face.Height/Globals.DefaultFont.CurrentFonts[0].Face.UnitsPerEM)) ),
|
||||||
|
Location = _watermark.Location,
|
||||||
|
BackgroundColor = Color4.White,
|
||||||
|
Visible = false
|
||||||
|
};
|
||||||
|
Controls.Add(Pointer);
|
||||||
|
|
||||||
Controls.Add(_label);
|
Controls.Add(_label);
|
||||||
Controls.Add(_watermark);
|
Controls.Add(_watermark);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void TOnElapsed(object? sender, ElapsedEventArgs e)
|
||||||
|
{
|
||||||
|
Globals.ms.Invoke(new Action(() =>
|
||||||
|
{
|
||||||
|
Pointer.Visible = !Pointer.Visible;
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
|
||||||
public event Func<KeyboardKeyEventArgs, Task>? KeyPress;
|
public event Func<KeyboardKeyEventArgs, Task>? KeyPress;
|
||||||
|
|
||||||
public override void UnFocus()
|
public override void UnFocus()
|
||||||
{
|
{
|
||||||
use = false;
|
use = false;
|
||||||
|
Pointer.Visible = false;
|
||||||
if (Window is not null && Window.focused == this)
|
if (Window is not null && Window.focused == this)
|
||||||
Window.focused = null;
|
Window.focused = null;
|
||||||
|
|
||||||
}
|
}
|
||||||
public override void Focus()
|
public override void Focus()
|
||||||
{
|
{
|
||||||
@ -51,6 +77,7 @@ public class TextBox : UserControl
|
|||||||
{
|
{
|
||||||
Window.focused.UnFocus();
|
Window.focused.UnFocus();
|
||||||
}
|
}
|
||||||
|
t.Start();
|
||||||
|
|
||||||
Window.focused = this;
|
Window.focused = this;
|
||||||
use = true;
|
use = true;
|
||||||
@ -65,12 +92,17 @@ public class TextBox : UserControl
|
|||||||
window.TextInput += WindowOnTextInput;
|
window.TextInput += WindowOnTextInput;
|
||||||
if (!window.Context.IsCurrent) window.Context.MakeCurrent();
|
if (!window.Context.IsCurrent) window.Context.MakeCurrent();
|
||||||
base.LoadToParent(parent, window);
|
base.LoadToParent(parent, window);
|
||||||
|
Pointer.Location = _watermark.Location;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void WindowOnTextInput(TextInputEventArgs obj)
|
private void WindowOnTextInput(TextInputEventArgs obj)
|
||||||
{
|
{
|
||||||
if (!use) return;
|
if (!use) return;
|
||||||
Text += obj.AsString;
|
Text = Text.Insert((int)CursorLocation, obj.AsString);
|
||||||
|
CursorLocation += obj.AsString.Length;
|
||||||
|
var f = _label.GetCharLocation((int)CursorLocation);
|
||||||
|
Pointer.Location = _label.Location + new Vector3i(f.X, f.Y, 0);
|
||||||
|
Pointer.Visible = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -88,7 +120,7 @@ public class TextBox : UserControl
|
|||||||
{
|
{
|
||||||
_label.Location = value switch
|
_label.Location = value switch
|
||||||
{
|
{
|
||||||
TextLocation.PostiveTureCenterLeft => new((int)(10 * Globals.Settings.Scale),
|
TextLocation.PostiveTureCenterLeft => new(10.ScaleInt(),
|
||||||
((Size.Y - _label.PostiveTrueHeight) / 2) - _label.Size.Y + _label.TrueHeight, Location.Z),
|
((Size.Y - _label.PostiveTrueHeight) / 2) - _label.Size.Y + _label.TrueHeight, Location.Z),
|
||||||
_ => _label.Location
|
_ => _label.Location
|
||||||
};
|
};
|
||||||
@ -98,7 +130,7 @@ public class TextBox : UserControl
|
|||||||
{
|
{
|
||||||
_watermark.Location = value switch
|
_watermark.Location = value switch
|
||||||
{
|
{
|
||||||
TextLocation.PostiveTureCenterLeft => new((int)(10 * Globals.Settings.Scale),
|
TextLocation.PostiveTureCenterLeft => new(10.ScaleInt(),
|
||||||
((Size.Y - _watermark.PostiveTrueHeight) / 2) - _watermark.Size.Y + _watermark.TrueHeight, Location.Z),
|
((Size.Y - _watermark.PostiveTrueHeight) / 2) - _watermark.Size.Y + _watermark.TrueHeight, Location.Z),
|
||||||
_ => _watermark.Location
|
_ => _watermark.Location
|
||||||
};
|
};
|
||||||
@ -160,7 +192,7 @@ public class TextBox : UserControl
|
|||||||
_label.Visible = true;
|
_label.Visible = true;
|
||||||
_label.Location = TextLocation switch
|
_label.Location = TextLocation switch
|
||||||
{
|
{
|
||||||
TextLocation.PostiveTureCenterLeft => new((int)(10*Globals.Settings.Scale), ((Size.Y - _label.PostiveTrueHeight) / 2) - _label.Size.Y + _label.TrueHeight, Location.Z),
|
TextLocation.PostiveTureCenterLeft => new(10.ScaleInt(), ((Size.Y - _label.PostiveTrueHeight) / 2) - _label.Size.Y + _label.TrueHeight, Location.Z),
|
||||||
_ => _label.Location
|
_ => _label.Location
|
||||||
};
|
};
|
||||||
/*
|
/*
|
||||||
@ -188,7 +220,7 @@ public class TextBox : UserControl
|
|||||||
_watermark.Visible = true;
|
_watermark.Visible = true;
|
||||||
_watermark.Location = TextLocation switch
|
_watermark.Location = TextLocation switch
|
||||||
{
|
{
|
||||||
TextLocation.PostiveTureCenterLeft => new((int)(10*Globals.Settings.Scale), ((Size.Y - _watermark.PostiveTrueHeight) / 2) - _watermark.Size.Y + _watermark.TrueHeight, Location.Z),
|
TextLocation.PostiveTureCenterLeft => new(10.ScaleInt(), ((Size.Y - _watermark.PostiveTrueHeight) / 2) - _watermark.Size.Y + _watermark.TrueHeight, Location.Z),
|
||||||
_ => _watermark.Location
|
_ => _watermark.Location
|
||||||
};
|
};
|
||||||
/*
|
/*
|
||||||
@ -222,17 +254,48 @@ public class TextBox : UserControl
|
|||||||
private void Window_KeyDown(KeyboardKeyEventArgs obj)
|
private void Window_KeyDown(KeyboardKeyEventArgs obj)
|
||||||
{
|
{
|
||||||
if (!use) return;
|
if (!use) return;
|
||||||
|
if (obj.Key == Keys.Left)
|
||||||
|
{
|
||||||
|
CursorLocation--;
|
||||||
|
var f = _label.GetCharLocation((int)CursorLocation);
|
||||||
|
Pointer.Location = _label.Location + new Vector3i(f.X, f.Y, 0);
|
||||||
|
Pointer.Visible = true;
|
||||||
|
}
|
||||||
|
if (obj.Key == Keys.Right)
|
||||||
|
{
|
||||||
|
if (CursorLocation != Text.Length)
|
||||||
|
{
|
||||||
|
CursorLocation++;
|
||||||
|
var f = _label.GetCharLocation((int)CursorLocation);
|
||||||
|
Pointer.Location = _label.Location + new Vector3i(f.X, f.Y, 0);
|
||||||
|
Pointer.Visible = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
if (obj.Key == Keys.CapsLock || obj.Key == Keys.Menu || obj.Key == Keys.LeftSuper || obj.Key == Keys.RightSuper || obj.Key == Keys.End || obj.Key == Keys.Home || obj.Key == Keys.PageDown || obj.Key == Keys.PageUp || obj.Key == Keys.Insert || obj.Key == Keys.Up || obj.Key == Keys.Down || obj.Key == Keys.Left || obj.Key == Keys.Right) return;
|
if (obj.Key == Keys.CapsLock || obj.Key == Keys.Menu || obj.Key == Keys.LeftSuper || obj.Key == Keys.RightSuper || obj.Key == Keys.End || obj.Key == Keys.Home || obj.Key == Keys.PageDown || obj.Key == Keys.PageUp || obj.Key == Keys.Insert || obj.Key == Keys.Up || obj.Key == Keys.Down || obj.Key == Keys.Left || obj.Key == Keys.Right) return;
|
||||||
if (obj.Key == Keys.Backspace || obj.Key == Keys.Delete)
|
if (obj.Key == Keys.Backspace)
|
||||||
{
|
{
|
||||||
if (!(Text.Length > 0)) return;
|
if (!(Text.Length > 0)) return;
|
||||||
if (Text[Text.Length - 1] == '\n')
|
if (Text[CursorLocation- 1] == '\n')
|
||||||
{
|
{
|
||||||
Size = new(Size.X, Size.Y - (int)_label.Font.PixelHeight);
|
Size = new(Size.X, Size.Y - (int)_label.Font.PixelHeight);
|
||||||
if (OnRemoveLine is not null) OnRemoveLine.Invoke();
|
if (OnRemoveLine is not null) OnRemoveLine.Invoke();
|
||||||
}
|
}
|
||||||
Text = Text.Remove(Text.Length - 1, 1);
|
Text = Text.Remove(CursorLocation - 1, 1);
|
||||||
|
CursorLocation--;
|
||||||
|
var f = _label.GetCharLocation(CursorLocation);
|
||||||
|
Pointer.Location = _label.Location + new Vector3i(f.X, f.Y, 0);
|
||||||
|
Pointer.Visible = true;
|
||||||
|
}
|
||||||
|
if (obj.Key == Keys.Delete)
|
||||||
|
{
|
||||||
|
if (CursorLocation == Text.Length) return;
|
||||||
|
if (Text[CursorLocation] == '\n')
|
||||||
|
{
|
||||||
|
Size = new(Size.X, Size.Y - (int)_label.Font.PixelHeight);
|
||||||
|
if (OnRemoveLine is not null) OnRemoveLine.Invoke();
|
||||||
|
}
|
||||||
|
Text = Text.Remove(CursorLocation, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (obj.Key == Keys.Enter)
|
if (obj.Key == Keys.Enter)
|
||||||
|
31
Luski/GUI/MainScreen/UI/LuskiControls/UserView.cs
Normal file
31
Luski/GUI/MainScreen/UI/LuskiControls/UserView.cs
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
using GraphicsManager.Interfaces;
|
||||||
|
using GraphicsManager.Objects;
|
||||||
|
using Luski.net.Structures.Public;
|
||||||
|
|
||||||
|
namespace Luski.GUI.MainScreen.UI.LuskiControls;
|
||||||
|
|
||||||
|
public class UserView : UserControl
|
||||||
|
{
|
||||||
|
private UserView(IRenderObject user, SocketUser u, Role r)
|
||||||
|
{
|
||||||
|
base.Size = new(244.ScaleInt(), 44.ScaleInt());
|
||||||
|
base.BackgroundColor = new(43, 45, 49, 255);
|
||||||
|
user.Location = new(8.ScaleInt(), 6.ScaleInt(), 0);
|
||||||
|
user.ForceDistanceUpdate(this);
|
||||||
|
Label uname = new(Globals.DefaultFont)
|
||||||
|
{
|
||||||
|
Text = u.DisplayName,
|
||||||
|
Color = r.Color.ToColor4()
|
||||||
|
};
|
||||||
|
uname.Location = new(user.Location.X + user.Size.X + 8.ScaleInt(),
|
||||||
|
(user.Location.Y + (user.Size.Y / 2) - (uname.PostiveTrueHeight / 2) - uname.Size.Y + uname.TrueHeight), 0);
|
||||||
|
Controls.Add(uname);
|
||||||
|
Controls.Add(user);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static async Task<UserView> Make(SocketUser u, Role r)
|
||||||
|
{
|
||||||
|
UserView m = new(await u.MakeRct(new(32.ScaleInt()), true), u, r);
|
||||||
|
return m;
|
||||||
|
}
|
||||||
|
}
|
@ -23,8 +23,8 @@ public class AddChannel : UserControl
|
|||||||
Anchor = ObjectAnchor.All;
|
Anchor = ObjectAnchor.All;
|
||||||
FlowLayout fl = new()
|
FlowLayout fl = new()
|
||||||
{
|
{
|
||||||
SpaceBetweenObjects = (int)(5 * Globals.Settings.Scale),
|
SpaceBetweenObjects = 5.ScaleInt(),
|
||||||
Size = new((int)(350 * Globals.Settings.Scale), (int)(220 * Globals.Settings.Scale)),
|
Size = new(350.ScaleInt(), 220.ScaleInt()),
|
||||||
BackgroundColor = new(32,32,32,255),
|
BackgroundColor = new(32,32,32,255),
|
||||||
//Shader = Rectangle.DefaultAlphaShader[Globals.ms.Context],
|
//Shader = Rectangle.DefaultAlphaShader[Globals.ms.Context],
|
||||||
//TextureDisplay = TextureDisplay.Center
|
//TextureDisplay = TextureDisplay.Center
|
||||||
@ -34,7 +34,7 @@ public class AddChannel : UserControl
|
|||||||
fl.Controls.Add(cn =new TextBox()
|
fl.Controls.Add(cn =new TextBox()
|
||||||
{
|
{
|
||||||
WatermarkText = "Channel Name",
|
WatermarkText = "Channel Name",
|
||||||
Size = new((int)(34 * Globals.Settings.Scale)),
|
Size = new(34.ScaleInt()),
|
||||||
Anchor = ObjectAnchor.Bottom | ObjectAnchor.Left | ObjectAnchor.Right,
|
Anchor = ObjectAnchor.Bottom | ObjectAnchor.Left | ObjectAnchor.Right,
|
||||||
TextLocation = TextLocation.PostiveTureCenterLeft
|
TextLocation = TextLocation.PostiveTureCenterLeft
|
||||||
});
|
});
|
||||||
@ -42,14 +42,14 @@ public class AddChannel : UserControl
|
|||||||
fl.Controls.Add(cd =new TextBox()
|
fl.Controls.Add(cd =new TextBox()
|
||||||
{
|
{
|
||||||
WatermarkText = "Channel Description",
|
WatermarkText = "Channel Description",
|
||||||
Size = new((int)(34 * Globals.Settings.Scale)),
|
Size = cn.Size,
|
||||||
Anchor = ObjectAnchor.Bottom | ObjectAnchor.Left | ObjectAnchor.Right,
|
Anchor = ObjectAnchor.Bottom | ObjectAnchor.Left | ObjectAnchor.Right,
|
||||||
TextLocation = TextLocation.PostiveTureCenterLeft
|
TextLocation = TextLocation.PostiveTureCenterLeft
|
||||||
});
|
});
|
||||||
fl.Controls.Add(new Label(Globals.DefaultFont) {Text = "\n "});
|
fl.Controls.Add(new Label(Globals.DefaultFont) {Text = "\n "});
|
||||||
fl.Controls.Add(btn = new(Globals.ms.TextureManager.GetTextureResource("Textbox.png"))
|
fl.Controls.Add(btn = new(Globals.ms.TextureManager.GetTextureResource("Textbox.png"))
|
||||||
{
|
{
|
||||||
Size = new((int)(40 * Globals.Settings.Scale)),
|
Size = new(40.ScaleInt()),
|
||||||
TextureDisplay = TextureDisplay.Center
|
TextureDisplay = TextureDisplay.Center
|
||||||
});
|
});
|
||||||
Label sub = new(Globals.DefaultFont)
|
Label sub = new(Globals.DefaultFont)
|
||||||
|
@ -27,7 +27,7 @@ public class Category : UserControl, IChannelAdder
|
|||||||
c.CurrentCategory = cat;
|
c.CurrentCategory = cat;
|
||||||
c.CS = cs;
|
c.CS = cs;
|
||||||
c.Anchor = ObjectAnchor.All;
|
c.Anchor = ObjectAnchor.All;
|
||||||
c.Size = new((int)(307 * Globals.Settings.Scale), (int)(40* Globals.Settings.Scale));
|
c.Size = new(307.ScaleInt(), 40.ScaleInt());
|
||||||
c.tmp = new()
|
c.tmp = new()
|
||||||
{
|
{
|
||||||
Size = c.Size,
|
Size = c.Size,
|
||||||
@ -40,7 +40,7 @@ public class Category : UserControl, IChannelAdder
|
|||||||
c.tmp.Controls.Add(c.ee = new(Globals.DefaultFont)
|
c.tmp.Controls.Add(c.ee = new(Globals.DefaultFont)
|
||||||
{
|
{
|
||||||
Text = ">",
|
Text = ">",
|
||||||
Location = new((int)(5*Globals.Settings.Scale)),
|
Location = new(5.ScaleInt()),
|
||||||
Color = cat.Color.ToColor4(),
|
Color = cat.Color.ToColor4(),
|
||||||
DIR = new(1,0),
|
DIR = new(1,0),
|
||||||
IgnoreHover = true
|
IgnoreHover = true
|
||||||
@ -52,11 +52,11 @@ public class Category : UserControl, IChannelAdder
|
|||||||
IgnoreHover = true
|
IgnoreHover = true
|
||||||
});
|
});
|
||||||
c.Clicked += c.AllOnClicked;
|
c.Clicked += c.AllOnClicked;
|
||||||
c.Name.Location = new((int)(26 * Globals.Settings.Scale), ((c.Size.Y/2) - (c.Name.TrueHeight/ 2) - (c.Name.Size.Y - c.Name.TrueHeight)), 0);
|
c.Name.Location = new(26.ScaleInt(), ((c.Size.Y/2) - (c.Name.TrueHeight/ 2) - (c.Name.Size.Y - c.Name.TrueHeight)), 0);
|
||||||
c.Members = new()
|
c.Members = new()
|
||||||
{
|
{
|
||||||
Anchor = ObjectAnchor.All,
|
Anchor = ObjectAnchor.All,
|
||||||
Location = new((int)(20 * Globals.Settings.Scale), c.Size.Y, 0),
|
Location = new(20.ScaleInt(), c.Size.Y, 0),
|
||||||
IgnoreHover = true
|
IgnoreHover = true
|
||||||
};
|
};
|
||||||
c.ee.Location = new(c.ee.Location.X, c.Name.Location.Y, 0);
|
c.ee.Location = new(c.ee.Location.X, c.Name.Location.Y, 0);
|
||||||
|
@ -21,15 +21,15 @@ public class Channel : UserControl
|
|||||||
{
|
{
|
||||||
CS = cs;
|
CS = cs;
|
||||||
CurrentChannel = chan;
|
CurrentChannel = chan;
|
||||||
base.Size = new((int)(307 * Globals.Settings.Scale), (int)(40* Globals.Settings.Scale));
|
base.Size = new(307.ScaleInt(), 34.ScaleInt());
|
||||||
|
|
||||||
TextureDisplay = TextureDisplay.HorizontalCenter;
|
TextureDisplay = TextureDisplay.HorizontalCenter;
|
||||||
Shader = Rectangle.DefaultAlphaShader[Globals.ms.Context];
|
Shader = Rectangle.DefaultAlphaShader[Globals.ms.Context];
|
||||||
int i = (int)(4 * Globals.Settings.Scale);
|
int i = 4.ScaleInt();
|
||||||
r = new Rectangle(Globals.ms.TextureManager.GetAlphaCircle())
|
r = new Rectangle(Globals.ms.TextureManager.GetAlphaCircle())
|
||||||
{
|
{
|
||||||
Location = new(i,i,0),
|
Location = new(i,i,0),
|
||||||
Size = new ((int)(32 * Globals.Settings.Scale)),
|
Size = new (32.ScaleInt()),
|
||||||
IgnoreHover = true
|
IgnoreHover = true
|
||||||
};
|
};
|
||||||
Texture tex;
|
Texture tex;
|
||||||
@ -48,7 +48,7 @@ public class Channel : UserControl
|
|||||||
};
|
};
|
||||||
Controls.Add(ChannelName);
|
Controls.Add(ChannelName);
|
||||||
Clicked += AllOnClicked;
|
Clicked += AllOnClicked;
|
||||||
ChannelName.Location = new((int)(40 * Globals.Settings.Scale),
|
ChannelName.Location = new(40.ScaleInt(),
|
||||||
(base.Size.Y / 2) - ((int)ChannelName.Font.PixelHeight) + (ChannelName.PostiveTrueHeight / 2)
|
(base.Size.Y / 2) - ((int)ChannelName.Font.PixelHeight) + (ChannelName.PostiveTrueHeight / 2)
|
||||||
, 0);
|
, 0);
|
||||||
base.HoverMouse = MouseCursor.Hand;
|
base.HoverMouse = MouseCursor.Hand;
|
||||||
@ -59,11 +59,11 @@ public class Channel : UserControl
|
|||||||
{
|
{
|
||||||
CS = cs;
|
CS = cs;
|
||||||
CurrentChannel = chan;
|
CurrentChannel = chan;
|
||||||
base.Size = new((int)(307 * Globals.Settings.Scale), (int)(40* Globals.Settings.Scale));
|
base.Size = new(307.ScaleInt(), 34.ScaleInt());
|
||||||
|
|
||||||
TextureDisplay = TextureDisplay.HorizontalCenter;
|
TextureDisplay = TextureDisplay.HorizontalCenter;
|
||||||
Shader = Rectangle.DefaultAlphaShader[Globals.ms.Context];
|
Shader = Rectangle.DefaultAlphaShader[Globals.ms.Context];
|
||||||
int i = (int)(4 * Globals.Settings.Scale);
|
int i = 4.ScaleInt();
|
||||||
GC.Collect();
|
GC.Collect();
|
||||||
ChannelName = new Label(Globals.DefaultFont)
|
ChannelName = new Label(Globals.DefaultFont)
|
||||||
{
|
{
|
||||||
|
@ -1,10 +1,7 @@
|
|||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.Reflection;
|
|
||||||
using GraphicsManager;
|
|
||||||
using GraphicsManager.Enums;
|
using GraphicsManager.Enums;
|
||||||
using GraphicsManager.Interfaces;
|
using GraphicsManager.Interfaces;
|
||||||
using GraphicsManager.Objects;
|
using GraphicsManager.Objects;
|
||||||
using GraphicsManager.Objects.Core;
|
|
||||||
using Luski.net.Interfaces;
|
using Luski.net.Interfaces;
|
||||||
using Luski.net.Structures.Main;
|
using Luski.net.Structures.Main;
|
||||||
using Luski.net.Structures.Public;
|
using Luski.net.Structures.Public;
|
||||||
@ -16,7 +13,6 @@ namespace Luski.GUI.MainScreen.UI.PublicServers;
|
|||||||
|
|
||||||
public class ChatMessage : UserControl
|
public class ChatMessage : UserControl
|
||||||
{
|
{
|
||||||
//private static Font TimeFont;// = Font.MakeFontFromSystem(13);
|
|
||||||
private SocketMessage Msg { get; }
|
private SocketMessage Msg { get; }
|
||||||
private SocketChannel ch { get; }
|
private SocketChannel ch { get; }
|
||||||
|
|
||||||
@ -25,8 +21,8 @@ public class ChatMessage : UserControl
|
|||||||
private IRenderObject LastObject;
|
private IRenderObject LastObject;
|
||||||
private Label FirstL;
|
private Label FirstL;
|
||||||
|
|
||||||
private readonly double HorPadding = (12 * Globals.Settings.Scale),
|
private readonly double HorPadding = 12.ScaleDouble(),
|
||||||
VerticalPadding = (12 * Globals.Settings.Scale);
|
VerticalPadding = 0.ScaleDouble();
|
||||||
|
|
||||||
private static Dictionary<MainSocketRemoteUser, List<ChatMessage>> Messages = new();
|
private static Dictionary<MainSocketRemoteUser, List<ChatMessage>> Messages = new();
|
||||||
|
|
||||||
@ -35,7 +31,7 @@ public class ChatMessage : UserControl
|
|||||||
IUser auth = await message.GetAuthor(CancellationToken.None);
|
IUser auth = await message.GetAuthor(CancellationToken.None);
|
||||||
Color c = await auth.GetColor();
|
Color c = await auth.GetColor();
|
||||||
Color4 c4 = new(c.R, c.G, c.B, c.A);
|
Color4 c4 = new(c.R, c.G, c.B, c.A);
|
||||||
return new ChatMessage(p, message, await message.GetParent(CancellationToken.None), auth, await auth.MakeRct(new((int)(38 * Globals.Settings.Scale)), message.IsProfile), c4);
|
return new ChatMessage(p, message, await message.GetParent(CancellationToken.None), auth, await auth.MakeRct(new(40.ScaleInt()), message.IsProfile), c4);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -43,70 +39,70 @@ public class ChatMessage : UserControl
|
|||||||
{
|
{
|
||||||
pc = p;
|
pc = p;
|
||||||
Label label1;
|
Label label1;
|
||||||
Size = new((int)(723.5 * Globals.Settings.Scale), (int)(37 * Globals.Settings.Scale));
|
base.Size = new(723.5.ScaleInt(), 37.ScaleInt());
|
||||||
ch = chan;
|
ch = chan;
|
||||||
BackgroundColor = new(40, 40, 40, 255);
|
base.BackgroundColor = new(40, 40, 40, 255);
|
||||||
Msg = message;
|
Msg = message;
|
||||||
Anchor = ObjectAnchor.Left | ObjectAnchor.Right;
|
Anchor = ObjectAnchor.Left | ObjectAnchor.Right;
|
||||||
|
|
||||||
DateTime time = chan.Epoch.AddMilliseconds(Msg.ID >> 20).ToLocalTime();
|
DateTime time = chan.Epoch.AddMilliseconds(Msg.ID >> 20).ToLocalTime();
|
||||||
|
|
||||||
string timestr;
|
string time_str;
|
||||||
if (time.Date == DateTime.Now.ToLocalTime().Date)
|
if (time.Date == DateTime.Now.ToLocalTime().Date)
|
||||||
{
|
{
|
||||||
timestr = $"Today at {time.ToShortTimeString()}";
|
time_str = $"Today at {time.ToShortTimeString()}";
|
||||||
}
|
}
|
||||||
else if (time.Date == DateTime.Now.ToLocalTime().AddDays(-1).Date)
|
else if (time.Date == DateTime.Now.ToLocalTime().AddDays(-1).Date)
|
||||||
{
|
{
|
||||||
timestr = $"Yesterday at {time.ToShortTimeString()}";
|
time_str = $"Yesterday at {time.ToShortTimeString()}";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
timestr = $"{time:M/dd/yyyy h:mm tt}";
|
time_str = $"{time:M/dd/yyyy h:mm tt}";
|
||||||
}
|
}
|
||||||
|
|
||||||
UserIcon.Location = new((int)(10 * Globals.Settings.Scale), (int)(2 * Globals.Settings.Scale), 0);
|
UserIcon.Location = new(10.ScaleInt(), 2.ScaleInt(), 0);
|
||||||
Controls.Add(UserIcon);
|
Controls.Add(UserIcon);
|
||||||
Controls.Add(label1 = new Label(Globals.DefaultFont) { Color = UserNameColor, Text = Author.DisplayName });
|
Controls.Add(label1 = new Label(Globals.DefaultFont) { Color = UserNameColor, Text = Author.DisplayName });
|
||||||
label1.Location = new(
|
label1.Location = new(
|
||||||
(int)(54 * Globals.Settings.Scale),
|
54.ScaleInt(),
|
||||||
(int)(UserIcon.Location.Y + (UserIcon.Size.Y / 2) - (label1.Font.CurrentFonts[0].Face.Size.Metrics.NominalHeight / 2) - label1.Size.Y + label1.Font.PixelHeight), 0);
|
//(int)(UserIcon.Location.Y + (UserIcon.Size.Y / 2) - (label1.Font.CurrentFonts[0].Face.Size.Metrics.NominalHeight / 2) - label1.Size.Y + label1.Font.PixelHeight),
|
||||||
|
UserIcon.Location.Y,
|
||||||
|
0);
|
||||||
LastObject = label1;
|
LastObject = label1;
|
||||||
FirstL = label1;
|
FirstL = label1;
|
||||||
Controls.Add(new Label(Globals.TopTimeFont) { Location = new(label1.Location.X + label1.Size.X + (int)(8 * Globals.Settings.Scale), (int)(label1.Location.Y + label1.Font.PixelHeight - Globals.TopTimeFont.PixelHeight), 0), Text = timestr});
|
Controls.Add(new Label(Globals.TopTimeFont) { Location = new(label1.Location.X + label1.Size.X + 8.ScaleInt(), (int)(label1.Location.Y + label1.Font.PixelHeight - Globals.TopTimeFont.PixelHeight), 0), Text = time_str});
|
||||||
if (!string.IsNullOrWhiteSpace(Msg.Context))
|
if (!string.IsNullOrWhiteSpace(Msg.Context))
|
||||||
{
|
{
|
||||||
Label l;
|
Label l;
|
||||||
Controls.Add(l = new Label(Globals.MessageFont) { Location = new(LastObject.Location.X, (int)(LastObject.Location.Y + (LastObject as Label)!.Size.Y + VerticalPadding), 0), Text = message.Context});
|
Controls.Add(l = new Label(Globals.MessageFont) { Location = new(LastObject.Location.X, (int)(UserIcon.Location.Y + UserIcon.Size.Y - Globals.MessageFont.PixelHeight), 0), Text = message.Context});
|
||||||
LastObject = l;
|
LastObject = l;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Msg.Files.Count > 0)
|
if (Msg.Files.Count > 0)
|
||||||
{
|
{
|
||||||
int row = 1;
|
int row = 1;
|
||||||
int filesonrow = 0;
|
int files_on_row = 0;
|
||||||
for (int i = 0; i < Msg.Files.Count; i++)
|
for (int i = 0; i < Msg.Files.Count; i++)
|
||||||
{
|
{
|
||||||
double lx = (HorPadding * filesonrow) + LastObject.Location.X + (333 * (filesonrow + 1));
|
double lx = (HorPadding * files_on_row) + LastObject.Location.X + (333 * (files_on_row + 1));
|
||||||
if (lx > Size.X)
|
if (lx > base.Size.X)
|
||||||
{
|
{
|
||||||
row++;
|
row++;
|
||||||
filesonrow = 0;
|
files_on_row = 0;
|
||||||
lx = (HorPadding * filesonrow) + LastObject.Location.X + (333 * (filesonrow + 1));
|
lx = (HorPadding * files_on_row) + LastObject.Location.X + (333 * (files_on_row + 1));
|
||||||
}
|
}
|
||||||
|
|
||||||
filesonrow++;
|
files_on_row++;
|
||||||
IRenderObject cem = ContentEmbed.GetEmbed(this, Msg.Files[i], Msg.ChannelID).Result;
|
IRenderObject cem = ContentEmbed.GetEmbed(this, Msg.Files[i], Msg.ChannelID).Result;
|
||||||
cem.Location = new((int)(lx - 333), (int)(LastObject.Location.Y + 2 + LastObject.Size.Y + (HorPadding * row) + (66 * (row - 1))), 0);
|
cem.Location = new((int)(lx - 333), (int)(LastObject.Location.Y + 2 + LastObject.Size.Y + (HorPadding * row) + (66 * (row - 1))), 0);
|
||||||
LastObject = cem;
|
LastObject = cem;
|
||||||
//lo = cem.Location;
|
|
||||||
// si = cem.Size;
|
|
||||||
Controls.Add(cem);
|
Controls.Add(cem);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (LastObject is Label ll) Size = new(Size.X, (int)(ll.Location.Y + ll.Size.Y + VerticalPadding));
|
if (LastObject is Label ll) base.Size = new(base.Size.X, (int)(ll.Location.Y + ll.Size.Y + VerticalPadding));
|
||||||
else Size = new(Size.X ,(int)(LastObject.Location.Y + LastObject.Size.Y + VerticalPadding));
|
else base.Size = new(base.Size.X ,(int)(LastObject.Location.Y + LastObject.Size.Y + VerticalPadding));
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task AddMessage(SocketMessage msg)
|
public async Task AddMessage(SocketMessage msg)
|
||||||
@ -216,7 +212,7 @@ public class ChatMessage : UserControl
|
|||||||
Label m = new(Globals.DefaultFont)
|
Label m = new(Globals.DefaultFont)
|
||||||
{
|
{
|
||||||
Text = time.ToString("h:mm tt"),
|
Text = time.ToString("h:mm tt"),
|
||||||
Location = new((int)(7.5 * Globals.Settings.Scale), label.Location.Y - 13 + (int)label.Font.PixelHeight, 0),
|
Location = new(7.5.ScaleInt(), label.Location.Y - 13 + (int)label.Font.PixelHeight, 0),
|
||||||
};
|
};
|
||||||
|
|
||||||
Controls.Add(m);
|
Controls.Add(m);
|
||||||
|
@ -25,7 +25,7 @@ public class ContentEmbed : UserControl
|
|||||||
Texture t = Globals.ms.TextureManager.AddTexture(data);
|
Texture t = Globals.ms.TextureManager.AddTexture(data);
|
||||||
data.Dispose();
|
data.Dispose();
|
||||||
Rectangle r;
|
Rectangle r;
|
||||||
double s = (Globals.Settings.Scale * 322);
|
double s = 322.ScaleDouble();
|
||||||
double scale = s / t.RawSize!.Value.X;
|
double scale = s / t.RawSize!.Value.X;
|
||||||
m.Controls.Add(r = new Rectangle(t)
|
m.Controls.Add(r = new Rectangle(t)
|
||||||
{
|
{
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
using GraphicsManager;
|
using GraphicsManager;
|
||||||
using GraphicsManager.Enums;
|
using GraphicsManager.Enums;
|
||||||
|
using GraphicsManager.Interfaces;
|
||||||
using GraphicsManager.Objects;
|
using GraphicsManager.Objects;
|
||||||
using Luski.GUI.MainScreen.UI.LuskiControls;
|
using Luski.GUI.MainScreen.UI.LuskiControls;
|
||||||
using Luski.net.Structures.Public;
|
using Luski.net.Structures.Public;
|
||||||
@ -21,17 +22,18 @@ public class PublicChat : UserControl
|
|||||||
UserControl titlecon;
|
UserControl titlecon;
|
||||||
private Rectangle? UserCon;
|
private Rectangle? UserCon;
|
||||||
private SocketMessage? first;
|
private SocketMessage? first;
|
||||||
|
private FlowLayout? memberflow = null;
|
||||||
|
|
||||||
public PublicChat()
|
public PublicChat()
|
||||||
{
|
{
|
||||||
|
|
||||||
base.Size = new((int)(980 * Globals.Settings.Scale), (int)(866 * Globals.Settings.Scale));
|
base.Size = new(980.ScaleInt(), 866.ScaleInt());
|
||||||
BackgroundColor = new(40,40,40,255);
|
BackgroundColor = new(40,40,40,255);
|
||||||
Anchor = ObjectAnchor.All;
|
Anchor = ObjectAnchor.All;
|
||||||
Controls.Add(MessageFlow = new()
|
Controls.Add(MessageFlow = new()
|
||||||
{
|
{
|
||||||
Size = new(base.Size.X, (int)(761 * Globals.Settings.Scale)),
|
Size = new(base.Size.X, 761.ScaleInt()),
|
||||||
Location = new(0, (int)(52 * Globals.Settings.Scale), 0),
|
Location = new(0, 52.ScaleInt(), 0),
|
||||||
BackgroundColor = new(40,40,40,255),
|
BackgroundColor = new(40,40,40,255),
|
||||||
Anchor = ObjectAnchor.All,
|
Anchor = ObjectAnchor.All,
|
||||||
HScrollPixels = Globals.Settings.PerScrollPixels,
|
HScrollPixels = Globals.Settings.PerScrollPixels,
|
||||||
@ -41,7 +43,7 @@ public class PublicChat : UserControl
|
|||||||
Controls.Add(titlecon = new UserControl()
|
Controls.Add(titlecon = new UserControl()
|
||||||
{
|
{
|
||||||
Anchor = ObjectAnchor.Left | ObjectAnchor.Top | ObjectAnchor.Right,
|
Anchor = ObjectAnchor.Left | ObjectAnchor.Top | ObjectAnchor.Right,
|
||||||
Size = new((int)(980 * Globals.Settings.Scale), (int)(48 * Globals.Settings.Scale)),
|
Size = new(980.ScaleInt(), 48.ScaleInt()),
|
||||||
BackgroundColor = new(50,50,50,255),
|
BackgroundColor = new(50,50,50,255),
|
||||||
});
|
});
|
||||||
if (LuskiExperiments.ServerExperiments.MemberList.IsEnabled())
|
if (LuskiExperiments.ServerExperiments.MemberList.IsEnabled())
|
||||||
@ -49,12 +51,13 @@ public class PublicChat : UserControl
|
|||||||
UserCon =
|
UserCon =
|
||||||
new(Globals.ms.TextureManager.GetTextureResource("person.png"))
|
new(Globals.ms.TextureManager.GetTextureResource("person.png"))
|
||||||
{
|
{
|
||||||
Size = new((int)(24 * Globals.Settings.Scale)),
|
Size = new(24.ScaleInt()),
|
||||||
Location = new((int)(944 * Globals.Settings.Scale),(int)(12 * Globals.Settings.Scale),0),
|
Location = new(944.ScaleInt(), 12.ScaleInt(),0),
|
||||||
Anchor = ObjectAnchor.Right | ObjectAnchor.Top,
|
Anchor = ObjectAnchor.Right | ObjectAnchor.Top,
|
||||||
Shader = Rectangle.DefaultAlphaShader[Globals.ms.Context],
|
Shader = Rectangle.DefaultAlphaShader[Globals.ms.Context],
|
||||||
BackgroundColor = Color4.Red
|
BackgroundColor = Color4.Red
|
||||||
};
|
};
|
||||||
|
UserCon.Clicked += UserConOnClicked;
|
||||||
titlecon.Controls.Add(UserCon);
|
titlecon.Controls.Add(UserCon);
|
||||||
}
|
}
|
||||||
LuskiExperiments.ServerExperiments.MemberList.EventToggled += MemberListOnEventToggled;
|
LuskiExperiments.ServerExperiments.MemberList.EventToggled += MemberListOnEventToggled;
|
||||||
@ -63,8 +66,6 @@ public class PublicChat : UserControl
|
|||||||
titlecon.Controls.Add(title = new Label(Globals.DefaultFont)
|
titlecon.Controls.Add(title = new Label(Globals.DefaultFont)
|
||||||
{
|
{
|
||||||
//Location = new(
|
//Location = new(
|
||||||
// (int)((26 - (Globals.DefaultFont.PixelHeight / 2)) * Globals.Settings.Scale),
|
|
||||||
// (int)((26 * Globals.Settings.Scale) - (Globals.DefaultFont.PixelHeight/2.0)))
|
|
||||||
});
|
});
|
||||||
titlecon.Controls.Add(desc = new Label(Globals.DefaultFont)
|
titlecon.Controls.Add(desc = new Label(Globals.DefaultFont)
|
||||||
{
|
{
|
||||||
@ -76,8 +77,8 @@ public class PublicChat : UserControl
|
|||||||
{
|
{
|
||||||
// InsideColor = new(28, 28, 28, 255),
|
// InsideColor = new(28, 28, 28, 255),
|
||||||
//BorderColor = Color4.DarkCyan,
|
//BorderColor = Color4.DarkCyan,
|
||||||
Location = new((int)(10 * Globals.Settings.Scale), (int)(824 * Globals.Settings.Scale), 0),
|
Location = new(10.ScaleInt(), 824.ScaleInt(), 0),
|
||||||
Size = new((int)(960 * Globals.Settings.Scale), (int)(34 * Globals.Settings.Scale)),
|
Size = new(960.ScaleInt(), 34.ScaleInt()),
|
||||||
Anchor = ObjectAnchor.Bottom | ObjectAnchor.Left | ObjectAnchor.Right,
|
Anchor = ObjectAnchor.Bottom | ObjectAnchor.Left | ObjectAnchor.Right,
|
||||||
HoverMouse = MouseCursor.IBeam,
|
HoverMouse = MouseCursor.IBeam,
|
||||||
//Shader = Rectangle.DefaultAlphaShader[Globals.ms.Context],
|
//Shader = Rectangle.DefaultAlphaShader[Globals.ms.Context],
|
||||||
@ -118,6 +119,7 @@ public class PublicChat : UserControl
|
|||||||
{
|
{
|
||||||
await Channel!.SendMessage(tb.Text);
|
await Channel!.SendMessage(tb.Text);
|
||||||
tb.Text = string.Empty;
|
tb.Text = string.Empty;
|
||||||
|
tb.CursorLocation = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -139,28 +141,74 @@ public class PublicChat : UserControl
|
|||||||
return Task.CompletedTask;
|
return Task.CompletedTask;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Task MemberListOnEventToggled(bool arg)
|
private async Task MemberListOnEventToggled(bool arg)
|
||||||
{
|
{
|
||||||
if (arg)
|
if (arg)
|
||||||
{
|
{
|
||||||
UserCon =
|
UserCon =
|
||||||
new(Globals.ms.TextureManager.GetTextureResource("person.png"))
|
new(Globals.ms.TextureManager.GetTextureResource("person.png"))
|
||||||
{
|
{
|
||||||
Size = new((int)(24 * Globals.Settings.Scale)),
|
Size = new(24.ScaleInt()),
|
||||||
Location = new(base.Size.X - (int)(36 * Globals.Settings.Scale),(int)(12 * Globals.Settings.Scale),0),
|
Location = new(base.Size.X - 36.ScaleInt(), 12.ScaleInt(),0),
|
||||||
Anchor = ObjectAnchor.Right | ObjectAnchor.Top,
|
Anchor = ObjectAnchor.Right | ObjectAnchor.Top,
|
||||||
Shader = Rectangle.DefaultAlphaShader[Globals.ms.Context],
|
Shader = Rectangle.DefaultAlphaShader[Globals.ms.Context],
|
||||||
BackgroundColor = Color4.Red
|
BackgroundColor = Color4.Red
|
||||||
};
|
};
|
||||||
|
UserCon.Clicked += UserConOnClicked;
|
||||||
titlecon.Controls.Add(UserCon);
|
titlecon.Controls.Add(UserCon);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
if (um_open) await UserConOnClicked(UserCon!);
|
||||||
titlecon.Controls.Remove(UserCon!);
|
titlecon.Controls.Remove(UserCon!);
|
||||||
UserCon = null;
|
UserCon = null;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return Task.CompletedTask;
|
private bool um_open = false;
|
||||||
|
|
||||||
|
private async Task UserConOnClicked(IRenderObject arg)
|
||||||
|
{
|
||||||
|
um_open = !um_open;
|
||||||
|
if (um_open)
|
||||||
|
{
|
||||||
|
if (memberflow is null)
|
||||||
|
{
|
||||||
|
int x = 232.ScaleInt();
|
||||||
|
memberflow = new()
|
||||||
|
{
|
||||||
|
BackgroundColor = new(255, 0, 0, 255),
|
||||||
|
Size = new(x, Size.Y - titlecon.Size.Y),
|
||||||
|
Location = new(Size.X - x, titlecon.Size.Y, 0)
|
||||||
|
};
|
||||||
|
Controls.Add(memberflow);
|
||||||
|
Dictionary<long, RoleView> Roles = new();
|
||||||
|
|
||||||
|
foreach (var m in await Channel!.GetMembers())
|
||||||
|
{
|
||||||
|
Role top_role = (await m.GetRoles())[0];
|
||||||
|
if (!Roles.ContainsKey(top_role.ID))
|
||||||
|
{
|
||||||
|
Roles.Add(top_role.ID, new(top_role));
|
||||||
|
memberflow.Controls.Add(Roles[top_role.ID]);
|
||||||
|
}
|
||||||
|
Roles[top_role.ID].AddUser(m);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
memberflow.Visible = true;
|
||||||
|
|
||||||
|
MessageFlow.Size = new(MessageFlow.Size.X - memberflow.Size.X, MessageFlow.Size.Y);
|
||||||
|
tb.Size = new(tb.Size.X - memberflow.Size.X, tb.Size.Y);
|
||||||
|
tb.ForceDistanceUpdate();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
memberflow!.Visible = false;
|
||||||
|
MessageFlow.Size = new(MessageFlow.Size.X + memberflow.Size.X, MessageFlow.Size.Y);
|
||||||
|
tb.Size = new(tb.Size.X + memberflow.Size.X, tb.Size.Y);
|
||||||
|
tb.ForceDistanceUpdate();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private SocketMessage? lastm;
|
private SocketMessage? lastm;
|
||||||
@ -177,15 +225,21 @@ public class PublicChat : UserControl
|
|||||||
public async Task LoadChannel(SocketChannel channel)
|
public async Task LoadChannel(SocketChannel channel)
|
||||||
{
|
{
|
||||||
Channel = channel;
|
Channel = channel;
|
||||||
|
if (memberflow is not null)
|
||||||
|
{
|
||||||
|
memberflow.Controls.Clear();
|
||||||
|
}
|
||||||
title.Text = channel.Name;
|
title.Text = channel.Name;
|
||||||
desc.Text = channel.Description;
|
desc.Text = channel.Description;
|
||||||
desc.Location = new((int)(title.Location.X + title.Size.X + (5 * Globals.Settings.Scale)), desc.Location.Y, 0);
|
desc.Location = new((int)(title.Location.X + title.Size.X + 5.ScaleInt()), desc.Location.Y, 0);
|
||||||
if (Window is not null)
|
if (Window is not null)
|
||||||
{
|
{
|
||||||
Window.Title = $"{channel.Name} | {channel.Server.Name} - Luski";
|
Window.Title = $"{channel.Name} | {channel.Server.Name} - Luski";
|
||||||
}
|
}
|
||||||
tb.WatermarkText = $"Message {channel.Name}";
|
tb.WatermarkText = $"Message {channel.Name}";
|
||||||
tb.Text = "";
|
tb.Text = "";
|
||||||
|
tb.CursorLocation = 0;
|
||||||
|
tb.Focus();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ClearChat()
|
public void ClearChat()
|
||||||
|
@ -45,23 +45,23 @@ public class ServerIcon<TServer> : UserControl where TServer : Server
|
|||||||
{
|
{
|
||||||
Rectangle r = new(Globals.ms.TextureManager.GetTextureResource("rc.png"))
|
Rectangle r = new(Globals.ms.TextureManager.GetTextureResource("rc.png"))
|
||||||
{
|
{
|
||||||
Location = new((int)(18 * Globals.Settings.Scale), (int)(8 * Globals.Settings.Scale), 0),
|
Location = new(18.ScaleInt(), 8.ScaleInt(), 0),
|
||||||
Size = new((int)(32 * Globals.Settings.Scale)),
|
Size = new(32.ScaleInt()),
|
||||||
Shader = Rectangle.DefaultAlphaTextureShader[Globals.ms.Context],
|
Shader = Rectangle.DefaultAlphaTextureShader[Globals.ms.Context],
|
||||||
IgnoreHover = true
|
IgnoreHover = true
|
||||||
};
|
};
|
||||||
Rectangle rr = new(r.Textures[0])
|
Rectangle rr = new(r.Textures[0])
|
||||||
{
|
{
|
||||||
Location = new((int)(17 * Globals.Settings.Scale), (int)(7 * Globals.Settings.Scale), 0),
|
Location = new(17.ScaleInt(), 7.ScaleInt(), 0),
|
||||||
Size = new((int)(34 * Globals.Settings.Scale)),
|
Size = new(34.ScaleInt()),
|
||||||
Shader = Rectangle.DefaultAlphaShader[Globals.ms.Context],
|
Shader = Rectangle.DefaultAlphaShader[Globals.ms.Context],
|
||||||
BackgroundColor = new(26, 26, 26, 255),
|
BackgroundColor = new(26, 26, 26, 255),
|
||||||
IgnoreHover = true
|
IgnoreHover = true
|
||||||
};
|
};
|
||||||
SelectedRect = new(r.Textures[0])
|
SelectedRect = new(r.Textures[0])
|
||||||
{
|
{
|
||||||
Location = new((int)(14 * Globals.Settings.Scale), (int)(4 * Globals.Settings.Scale), 0),
|
Location = new(14.ScaleInt(), 4.ScaleInt(), 0),
|
||||||
Size = new((int)(40 * Globals.Settings.Scale)),
|
Size = new(40.ScaleInt()),
|
||||||
Shader = Rectangle.DefaultAlphaShader[Globals.ms.Context],
|
Shader = Rectangle.DefaultAlphaShader[Globals.ms.Context],
|
||||||
BackgroundColor = new(26, 26, 26, 255),
|
BackgroundColor = new(26, 26, 26, 255),
|
||||||
IgnoreHover = true
|
IgnoreHover = true
|
||||||
@ -75,7 +75,7 @@ public class ServerIcon<TServer> : UserControl where TServer : Server
|
|||||||
Controls.Add(r);
|
Controls.Add(r);
|
||||||
BackgroundColor = new(26, 26, 26, 255);
|
BackgroundColor = new(26, 26, 26, 255);
|
||||||
this.Clicked += OnClicked;
|
this.Clicked += OnClicked;
|
||||||
Size = new((int)(68 * Globals.Settings.Scale), (int)(48 * Globals.Settings.Scale));
|
Size = new(68.ScaleInt(), 48.ScaleInt());
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task OnClicked(IRenderObject arg)
|
private async Task OnClicked(IRenderObject arg)
|
||||||
|
@ -34,7 +34,7 @@ public class ServerLoginOverlay : UserControl, IServerOverlay
|
|||||||
|
|
||||||
Form = new(Globals.ms.TextureManager.GetTextureResource("RoundedRectangle.png"))
|
Form = new(Globals.ms.TextureManager.GetTextureResource("RoundedRectangle.png"))
|
||||||
{
|
{
|
||||||
Size = new((int)(350 * Globals.Settings.Scale), (int)(347 * Globals.Settings.Scale)),
|
Size = new(350.ScaleInt(), 347.ScaleInt()),
|
||||||
BackgroundColor = new(32,32,32,255),
|
BackgroundColor = new(32,32,32,255),
|
||||||
Shader = Rectangle.DefaultAlphaShader[Globals.ms.Context],
|
Shader = Rectangle.DefaultAlphaShader[Globals.ms.Context],
|
||||||
TextureDisplay = TextureDisplay.Center
|
TextureDisplay = TextureDisplay.Center
|
||||||
@ -50,18 +50,18 @@ public class ServerLoginOverlay : UserControl, IServerOverlay
|
|||||||
Color = Color4.DarkGray,
|
Color = Color4.DarkGray,
|
||||||
IgnoreHover = true
|
IgnoreHover = true
|
||||||
};
|
};
|
||||||
Vector2i s =new((int)(ll.Size.X * 1.6f),(int)(27 * Globals.Settings.Scale));
|
Vector2i s =new((int)(ll.Size.X * 1.6f),27.ScaleInt());
|
||||||
ll = null;
|
ll = null;
|
||||||
|
|
||||||
Rectangle line = new Rectangle()
|
Rectangle line = new Rectangle()
|
||||||
{
|
{
|
||||||
Size = new Vector2i((int)Globals.Settings.Scale),
|
Size = new Vector2i(1.ScaleInt()),
|
||||||
BackgroundColor = Globals.DodgerBlue
|
BackgroundColor = Globals.DodgerBlue
|
||||||
};
|
};
|
||||||
|
|
||||||
tb = new()
|
tb = new()
|
||||||
{
|
{
|
||||||
Location = new((int)(10*Globals.Settings.Scale),(int)(50 * Globals.Settings.Scale), 0),
|
Location = new(10.ScaleInt(),50.ScaleInt(), 0),
|
||||||
Size = s,
|
Size = s,
|
||||||
Text = address,
|
Text = address,
|
||||||
WatermarkText = "Server Address",
|
WatermarkText = "Server Address",
|
||||||
@ -196,8 +196,8 @@ public class ServerLoginOverlay : UserControl, IServerOverlay
|
|||||||
btn.Textures[0] = Globals.ms.TextureManager.GetTextureResource("BadTextbox.png");
|
btn.Textures[0] = Globals.ms.TextureManager.GetTextureResource("BadTextbox.png");
|
||||||
page!.Controls.Add(UserName = new()
|
page!.Controls.Add(UserName = new()
|
||||||
{
|
{
|
||||||
Location = new(0, (int)(10* Globals.Settings.Scale), 0),
|
Location = new(0, 10.ScaleInt(), 0),
|
||||||
Size = new(page.Size.X, (int)(30* Globals.Settings.Scale)),
|
Size = new(page.Size.X, 30.ScaleInt()),
|
||||||
WatermarkText = "Username",
|
WatermarkText = "Username",
|
||||||
TextLocation = TextLocation.PostiveTureCenterLeft,
|
TextLocation = TextLocation.PostiveTureCenterLeft,
|
||||||
AllowMultiLine = false
|
AllowMultiLine = false
|
||||||
@ -284,7 +284,7 @@ public class ServerLoginOverlay : UserControl, IServerOverlay
|
|||||||
|
|
||||||
page.Controls.Add(rec = new(Globals.ms.TextureManager.GetAlphaCircle())
|
page.Controls.Add(rec = new(Globals.ms.TextureManager.GetAlphaCircle())
|
||||||
{
|
{
|
||||||
Size = new((int)(50 * Globals.Settings.Scale)),
|
Size = new(50.ScaleInt()),
|
||||||
BackgroundColor = Color4.Red,
|
BackgroundColor = Color4.Red,
|
||||||
Shader = Rectangle.DefaultAlphaShader[Globals.ms.Context],
|
Shader = Rectangle.DefaultAlphaShader[Globals.ms.Context],
|
||||||
IgnoreHover = false
|
IgnoreHover = false
|
||||||
@ -356,8 +356,8 @@ public class ServerLoginOverlay : UserControl, IServerOverlay
|
|||||||
btn!.Textures[0] = Globals.ms.TextureManager.GetTextureResource("BadTextbox.png");
|
btn!.Textures[0] = Globals.ms.TextureManager.GetTextureResource("BadTextbox.png");
|
||||||
page!.Controls.Add(UserName = new()
|
page!.Controls.Add(UserName = new()
|
||||||
{
|
{
|
||||||
Location = new(0, (int)(22* Globals.Settings.Scale), 0),
|
Location = new(0, 22.ScaleInt(), 0),
|
||||||
Size = new(page.Size.X, (int)(31* Globals.Settings.Scale)),
|
Size = new(page.Size.X, 31.ScaleInt()),
|
||||||
WatermarkText = "Username",
|
WatermarkText = "Username",
|
||||||
TextLocation = TextLocation.PostiveTureCenterLeft,
|
TextLocation = TextLocation.PostiveTureCenterLeft,
|
||||||
AllowMultiLine = false
|
AllowMultiLine = false
|
||||||
@ -466,8 +466,6 @@ public class ServerLoginOverlay : UserControl, IServerOverlay
|
|||||||
BackgroundColor = Form.BackgroundColor
|
BackgroundColor = Form.BackgroundColor
|
||||||
};
|
};
|
||||||
page.Size = new(Form.Size.X - tb.Location.X - tb.Location.X, Form.Size.Y - tb.Location.X - page.Location.Y - ca.Size.Y - tb.Location.X);
|
page.Size = new(Form.Size.X - tb.Location.X - tb.Location.X, Form.Size.Y - tb.Location.X - page.Location.Y - ca.Size.Y - tb.Location.X);
|
||||||
Console.Write(page.Size.Y - tb.Location.X - tb.Location.X - (50*2*3));
|
|
||||||
Console.WriteLine(page.Size);
|
|
||||||
Form.Controls.Add(page);
|
Form.Controls.Add(page);
|
||||||
|
|
||||||
btn = new(Globals.ms.TextureManager.GetTextureResource("BadTextbox.png"))
|
btn = new(Globals.ms.TextureManager.GetTextureResource("BadTextbox.png"))
|
||||||
|
@ -33,7 +33,7 @@ public class SettingsMenu : UserControl
|
|||||||
fl = new()
|
fl = new()
|
||||||
{
|
{
|
||||||
BackgroundColor = new(20, 20, 20, 255),
|
BackgroundColor = new(20, 20, 20, 255),
|
||||||
Size = new((int)(307 * Globals.Settings.Scale), base.Size.Y),
|
Size = new(307.ScaleInt(), base.Size.Y),
|
||||||
Anchor = ObjectAnchor.Top | ObjectAnchor.Left | ObjectAnchor.Bottom
|
Anchor = ObjectAnchor.Top | ObjectAnchor.Left | ObjectAnchor.Bottom
|
||||||
};
|
};
|
||||||
f = Globals.DefaultFont.Clone();
|
f = Globals.DefaultFont.Clone();
|
||||||
@ -46,7 +46,7 @@ public class SettingsMenu : UserControl
|
|||||||
AppSettings = new("APP SETTINGS");
|
AppSettings = new("APP SETTINGS");
|
||||||
Label Top = new(Globals.DefaultFont)
|
Label Top = new(Globals.DefaultFont)
|
||||||
{
|
{
|
||||||
Location = new((int)(5 * Globals.Settings.Scale), (int)(5 * Globals.Settings.Scale), 0),
|
Location = new(5.ScaleInt(), 5.ScaleInt(), 0),
|
||||||
Text = LuskiThemes.Dark.Name
|
Text = LuskiThemes.Dark.Name
|
||||||
};
|
};
|
||||||
CategoryButton cb2 = new("Appearance", this)
|
CategoryButton cb2 = new("Appearance", this)
|
||||||
@ -60,9 +60,9 @@ public class SettingsMenu : UserControl
|
|||||||
ThemeDropButton LightDD;
|
ThemeDropButton LightDD;
|
||||||
ThemeDrop = new(CategoryButton.seltec!,new Rectangle()
|
ThemeDrop = new(CategoryButton.seltec!,new Rectangle()
|
||||||
{
|
{
|
||||||
Size = new(base.Size.X - 2, (int)Globals.Settings.Scale),
|
Size = new(base.Size.X - 2, 1.ScaleInt()),
|
||||||
BackgroundColor = Color4.Gray,
|
BackgroundColor = Color4.Gray,
|
||||||
Location = new(1, base.Size.Y - (int)Globals.Settings.Scale, 0),
|
Location = new(1, base.Size.Y - 1.ScaleInt(), 0),
|
||||||
Anchor = ObjectAnchor.Left | ObjectAnchor.Right | ObjectAnchor.Bottom
|
Anchor = ObjectAnchor.Left | ObjectAnchor.Right | ObjectAnchor.Bottom
|
||||||
}, LightDD = new(LuskiThemes.Light)
|
}, LightDD = new(LuskiThemes.Light)
|
||||||
{
|
{
|
||||||
@ -74,13 +74,13 @@ public class SettingsMenu : UserControl
|
|||||||
Color = Color4.DarkGray,
|
Color = Color4.DarkGray,
|
||||||
IgnoreHover = true
|
IgnoreHover = true
|
||||||
};
|
};
|
||||||
ll.Location = new((int)(10 * Globals.Settings.Scale),
|
ll.Location = new(10.ScaleInt(),
|
||||||
(ThemeDrop!.Size.Y / 2) - ((int)ll.Font.PixelHeight) + (ll.PostiveTrueHeight / 2)
|
(ThemeDrop!.Size.Y / 2) - ((int)ll.Font.PixelHeight) + (ll.PostiveTrueHeight / 2)
|
||||||
, 0);
|
, 0);
|
||||||
ThemeDrop.Controls.Add(ll);
|
ThemeDrop.Controls.Add(ll);
|
||||||
},
|
},
|
||||||
Size = new((int)(297 * Globals.Settings.Scale), (int)(40* Globals.Settings.Scale)),
|
Size = new(297.ScaleInt(), 40.ScaleInt()),
|
||||||
}){DropDownParentOverride = Globals.ms,Size = new((int)(40 * Globals.Settings.Scale)),
|
}){DropDownParentOverride = Globals.ms,Size = new(40.ScaleInt()),
|
||||||
Location = new(Top.Location.X, Top.Location.Y, 0),
|
Location = new(Top.Location.X, Top.Location.Y, 0),
|
||||||
BackgroundColor = new(40, 40, 40, 255),
|
BackgroundColor = new(40, 40, 40, 255),
|
||||||
Anchor = ObjectAnchor.Right | ObjectAnchor.Left,};
|
Anchor = ObjectAnchor.Right | ObjectAnchor.Left,};
|
||||||
@ -98,12 +98,12 @@ public class SettingsMenu : UserControl
|
|||||||
Color = Color4.DarkGray,
|
Color = Color4.DarkGray,
|
||||||
IgnoreHover = true
|
IgnoreHover = true
|
||||||
};
|
};
|
||||||
ll.Location = new((int)(10 * Globals.Settings.Scale),
|
ll.Location = new(10.ScaleInt(),
|
||||||
(ThemeDrop!.Size.Y / 2) - ((int)ll.Font.PixelHeight) + (ll.PostiveTrueHeight / 2)
|
(ThemeDrop!.Size.Y / 2) - ((int)ll.Font.PixelHeight) + (ll.PostiveTrueHeight / 2)
|
||||||
, 0);
|
, 0);
|
||||||
ThemeDrop.Controls.Add(ll);
|
ThemeDrop.Controls.Add(ll);
|
||||||
},
|
},
|
||||||
Size = new((int)(297 * Globals.Settings.Scale), (int)(40* Globals.Settings.Scale)),
|
Size = new(297.ScaleInt(), 40.ScaleInt()),
|
||||||
});
|
});
|
||||||
if (themeStart.Name == Globals.Settings.Theme) ThemeDrop.SetSelected(tdb);
|
if (themeStart.Name == Globals.Settings.Theme) ThemeDrop.SetSelected(tdb);
|
||||||
}
|
}
|
||||||
@ -113,9 +113,9 @@ public class SettingsMenu : UserControl
|
|||||||
ThemeDrop.DropDownContainer.BackgroundColor = ThemeDrop.BackgroundColor;
|
ThemeDrop.DropDownContainer.BackgroundColor = ThemeDrop.BackgroundColor;
|
||||||
Rectangle line = new()
|
Rectangle line = new()
|
||||||
{
|
{
|
||||||
Size = new(base.Size.X - 2, (int)Globals.Settings.Scale),
|
Size = new(base.Size.X - 2, 1.ScaleInt()),
|
||||||
BackgroundColor = Color4.Gray,
|
BackgroundColor = Color4.Gray,
|
||||||
Location = new(1, base.Size.Y - (int)Globals.Settings.Scale, 0),
|
Location = new(1, base.Size.Y - 1.ScaleInt(), 0),
|
||||||
Anchor = ObjectAnchor.Left | ObjectAnchor.Right | ObjectAnchor.Bottom
|
Anchor = ObjectAnchor.Left | ObjectAnchor.Right | ObjectAnchor.Bottom
|
||||||
};
|
};
|
||||||
ThemeDrop.OpenStatusChanged += b =>
|
ThemeDrop.OpenStatusChanged += b =>
|
||||||
@ -192,7 +192,7 @@ public class SettingsMenu : UserControl
|
|||||||
Text = Globals.UpdaterSettings.Updater!,
|
Text = Globals.UpdaterSettings.Updater!,
|
||||||
WatermarkText = "Updater File",
|
WatermarkText = "Updater File",
|
||||||
TextureDisplay = TextureDisplay.Center,
|
TextureDisplay = TextureDisplay.Center,
|
||||||
Size = new(page.Size.X, (int)(34 * Globals.Settings.Scale)),
|
Size = new(page.Size.X, 34.ScaleInt()),
|
||||||
TextLocation = TextLocation.PostiveTureCenterLeft,
|
TextLocation = TextLocation.PostiveTureCenterLeft,
|
||||||
AllowMultiLine = false
|
AllowMultiLine = false
|
||||||
});
|
});
|
||||||
@ -210,8 +210,8 @@ public class SettingsMenu : UserControl
|
|||||||
page = new()
|
page = new()
|
||||||
{
|
{
|
||||||
BackgroundColor = this.BackgroundColor,
|
BackgroundColor = this.BackgroundColor,
|
||||||
Location = new(fl.Size.X + (int)(40 * Globals.Settings.Scale), 0, 0),
|
Location = new(fl.Size.X + 40.ScaleInt(), 0, 0),
|
||||||
Size = new(Globals.ms.Size.X - fl.Size.X - ((int)(80 * Globals.Settings.Scale)), Globals.ms.Size.Y),
|
Size = new(Globals.ms.Size.X - fl.Size.X - 80.ScaleInt(), Globals.ms.Size.Y),
|
||||||
AllowHoverFromBehind = true,
|
AllowHoverFromBehind = true,
|
||||||
Anchor = ObjectAnchor.All,
|
Anchor = ObjectAnchor.All,
|
||||||
HScrollPixels = Globals.Settings.PerScrollPixels
|
HScrollPixels = Globals.Settings.PerScrollPixels
|
||||||
@ -222,8 +222,8 @@ public class SettingsMenu : UserControl
|
|||||||
|
|
||||||
Rectangle closebtn = new(Globals.ms.TextureManager.GetTextureResource("close.png"))
|
Rectangle closebtn = new(Globals.ms.TextureManager.GetTextureResource("close.png"))
|
||||||
{
|
{
|
||||||
Location = new(Globals.ms.Size.X - (int)(40 * Globals.Settings.Scale), (int)(8 * Globals.Settings.Scale),0),
|
Location = new(Globals.ms.Size.X - 40.ScaleInt(), 8.ScaleInt(),0),
|
||||||
Size = new((int)(32 * Globals.Settings.Scale)),
|
Size = new(32.ScaleInt()),
|
||||||
Shader = Rectangle.DefaultAlphaShader[Globals.ms.Context],
|
Shader = Rectangle.DefaultAlphaShader[Globals.ms.Context],
|
||||||
BackgroundColor = Color4.Gray,
|
BackgroundColor = Color4.Gray,
|
||||||
Anchor = ObjectAnchor.Top | ObjectAnchor.Right
|
Anchor = ObjectAnchor.Top | ObjectAnchor.Right
|
||||||
|
@ -24,17 +24,17 @@ public class Category : UserControl
|
|||||||
}
|
}
|
||||||
Top = new(fi)
|
Top = new(fi)
|
||||||
{
|
{
|
||||||
Location = new((int)(5 * Globals.Settings.Scale), (int)(5 * Globals.Settings.Scale), 0),
|
Location = new(5.ScaleInt(), 5.ScaleInt(), 0),
|
||||||
Text = Name
|
Text = Name
|
||||||
};
|
};
|
||||||
BackgroundColor = new(255, 255, 255, 0);
|
BackgroundColor = new(255, 255, 255, 0);
|
||||||
base.Size = new((int)(307 * Globals.Settings.Scale), (int)(20 * Globals.Settings.Scale) + Top.Size.Y);
|
base.Size = new(307.ScaleInt(), 20.ScaleInt() + Top.Size.Y);
|
||||||
Top.Location = new((base.Size.X - Top.Size.X) / 2, Top.Location.Y, 0);
|
Top.Location = new((base.Size.X - Top.Size.X) / 2, Top.Location.Y, 0);
|
||||||
line = new()
|
line = new()
|
||||||
{
|
{
|
||||||
Size = new(base.Size.X, (int)Globals.Settings.Scale),
|
Size = new(base.Size.X, 1.ScaleInt()),
|
||||||
BackgroundColor = Color4.Gray,
|
BackgroundColor = Color4.Gray,
|
||||||
Location = new(0, base.Size.Y - (int)Globals.Settings.Scale, 0)
|
Location = new(0, base.Size.Y - 1.ScaleInt(), 0)
|
||||||
};
|
};
|
||||||
line.ForceDistanceUpdate(this);
|
line.ForceDistanceUpdate(this);
|
||||||
Controls.Add(line);
|
Controls.Add(line);
|
||||||
@ -44,7 +44,7 @@ public class Category : UserControl
|
|||||||
public void AddButton(CategoryButton cb)
|
public void AddButton(CategoryButton cb)
|
||||||
{
|
{
|
||||||
Controls.Add(cb);
|
Controls.Add(cb);
|
||||||
int f = (int)(5 * Globals.Settings.Scale);
|
int f = 5.ScaleInt();
|
||||||
cb.Location = new (line.Location.X + f, line.Location.Y - f, 0);
|
cb.Location = new (line.Location.X + f, line.Location.Y - f, 0);
|
||||||
line.Location = new(line.Location.X, line.Location.Y + cb.Size.Y + f, 0);
|
line.Location = new(line.Location.X, line.Location.Y + cb.Size.Y + f, 0);
|
||||||
Size = new(Size.X, Size.Y + cb.Size.Y + f);
|
Size = new(Size.X, Size.Y + cb.Size.Y + f);
|
||||||
|
@ -17,7 +17,7 @@ public class CategoryButton : UserControl
|
|||||||
:base(seltec)
|
:base(seltec)
|
||||||
{
|
{
|
||||||
this.SM = SM;
|
this.SM = SM;
|
||||||
base.Size = new((int)(297 * Globals.Settings.Scale), (int)(40* Globals.Settings.Scale));
|
base.Size = new(297.ScaleInt(), 40.ScaleInt());
|
||||||
TextureDisplay = TextureDisplay.HorizontalCenter;
|
TextureDisplay = TextureDisplay.HorizontalCenter;
|
||||||
Shader = Rectangle.DefaultAlphaShader[Globals.ms.Context];
|
Shader = Rectangle.DefaultAlphaShader[Globals.ms.Context];
|
||||||
l = new Label(Globals.DefaultFont)
|
l = new Label(Globals.DefaultFont)
|
||||||
@ -26,7 +26,7 @@ public class CategoryButton : UserControl
|
|||||||
Color = Color4.Gray,
|
Color = Color4.Gray,
|
||||||
IgnoreHover = true
|
IgnoreHover = true
|
||||||
};
|
};
|
||||||
l.Location = new((int)(5 * Globals.Settings.Scale),
|
l.Location = new(5.ScaleInt(),
|
||||||
(base.Size.Y / 2) - ((int)l.Font.PixelHeight) + (l.PostiveTrueHeight / 2)
|
(base.Size.Y / 2) - ((int)l.Font.PixelHeight) + (l.PostiveTrueHeight / 2)
|
||||||
, 0);
|
, 0);
|
||||||
Controls.Add(l);
|
Controls.Add(l);
|
||||||
|
@ -17,7 +17,7 @@ public class ExperimentDropButton : DropDownOption
|
|||||||
:base(CategoryButton.seltec!)
|
:base(CategoryButton.seltec!)
|
||||||
{
|
{
|
||||||
ESI = esi;
|
ESI = esi;
|
||||||
base.Size = new((int)(297 * Globals.Settings.Scale), (int)(40* Globals.Settings.Scale));
|
base.Size = new(297.ScaleInt(), 40.ScaleInt());
|
||||||
TextureDisplay = TextureDisplay.HorizontalCenter;
|
TextureDisplay = TextureDisplay.HorizontalCenter;
|
||||||
Shader = Rectangle.DefaultAlphaShader[Globals.ms.Context];
|
Shader = Rectangle.DefaultAlphaShader[Globals.ms.Context];
|
||||||
l = new Label(Globals.DefaultFont)
|
l = new Label(Globals.DefaultFont)
|
||||||
@ -26,7 +26,7 @@ public class ExperimentDropButton : DropDownOption
|
|||||||
Color = Color4.DarkGray,
|
Color = Color4.DarkGray,
|
||||||
IgnoreHover = true
|
IgnoreHover = true
|
||||||
};
|
};
|
||||||
l.Location = new((int)(10 * Globals.Settings.Scale),
|
l.Location = new(10.ScaleInt(),
|
||||||
(base.Size.Y / 2) - ((int)l.Font.PixelHeight) + (l.PostiveTrueHeight / 2)
|
(base.Size.Y / 2) - ((int)l.Font.PixelHeight) + (l.PostiveTrueHeight / 2)
|
||||||
, 0);
|
, 0);
|
||||||
d = new(Globals.MessageFont)
|
d = new(Globals.MessageFont)
|
||||||
|
@ -38,7 +38,7 @@ public class ExperimentGUI : UserControl
|
|||||||
}
|
}
|
||||||
Top = new(Globals.DefaultFont)
|
Top = new(Globals.DefaultFont)
|
||||||
{
|
{
|
||||||
Location = new((int)(5 * Globals.Settings.Scale), (int)(5 * Globals.Settings.Scale), 0),
|
Location = new(5.ScaleInt(), 5.ScaleInt(), 0),
|
||||||
Text = ei.DisplayName
|
Text = ei.DisplayName
|
||||||
};
|
};
|
||||||
Label n = new(Globals.MessageFont)
|
Label n = new(Globals.MessageFont)
|
||||||
@ -59,20 +59,20 @@ public class ExperimentGUI : UserControl
|
|||||||
Color = Color4.DarkGray,
|
Color = Color4.DarkGray,
|
||||||
IgnoreHover = true
|
IgnoreHover = true
|
||||||
};
|
};
|
||||||
ll.Location = new((int)(10 * Globals.Settings.Scale),
|
ll.Location = new(10.ScaleInt(),
|
||||||
(dd!.Size.Y / 2) - ((int)ll.Font.PixelHeight) + (ll.PostiveTrueHeight / 2)
|
(dd!.Size.Y / 2) - ((int)ll.Font.PixelHeight) + (ll.PostiveTrueHeight / 2)
|
||||||
, 0);
|
, 0);
|
||||||
dd.Controls.Add(ll);
|
dd.Controls.Add(ll);
|
||||||
},
|
},
|
||||||
Size = new((int)(297 * Globals.Settings.Scale), (int)(40* Globals.Settings.Scale))
|
Size = new(297.ScaleInt(), 40.ScaleInt())
|
||||||
};
|
};
|
||||||
dd = new(CategoryButton.seltec!, new Rectangle()
|
dd = new(CategoryButton.seltec!, new Rectangle()
|
||||||
{
|
{
|
||||||
Size = new((int)Globals.Settings.Scale),
|
Size = new(1.ScaleInt()),
|
||||||
BackgroundColor = Color4.Gray
|
BackgroundColor = Color4.Gray
|
||||||
}, Disabled)
|
}, Disabled)
|
||||||
{
|
{
|
||||||
Size = new((int)(40 * Globals.Settings.Scale)),
|
Size = new(40.ScaleInt()),
|
||||||
Location = new(Top.Location.X, n.Location.Y + n.Size.Y + Top.Location.Y, 0),
|
Location = new(Top.Location.X, n.Location.Y + n.Size.Y + Top.Location.Y, 0),
|
||||||
BackgroundColor = new(40, 40, 40, 255),
|
BackgroundColor = new(40, 40, 40, 255),
|
||||||
Anchor = ObjectAnchor.Right | ObjectAnchor.Left,
|
Anchor = ObjectAnchor.Right | ObjectAnchor.Left,
|
||||||
@ -115,7 +115,7 @@ public class ExperimentGUI : UserControl
|
|||||||
Color = Color4.DarkGray,
|
Color = Color4.DarkGray,
|
||||||
IgnoreHover = true
|
IgnoreHover = true
|
||||||
};
|
};
|
||||||
ll.Location = new((int)(10 * Globals.Settings.Scale),
|
ll.Location = new(10.ScaleInt(),
|
||||||
(dd.Size.Y / 2) - ((int)ll.Font.PixelHeight) + (ll.PostiveTrueHeight / 2)
|
(dd.Size.Y / 2) - ((int)ll.Font.PixelHeight) + (ll.PostiveTrueHeight / 2)
|
||||||
, 0);
|
, 0);
|
||||||
dd.Controls.Add(ll);
|
dd.Controls.Add(ll);
|
||||||
@ -130,15 +130,15 @@ public class ExperimentGUI : UserControl
|
|||||||
}
|
}
|
||||||
dd.OptionSelected += DdOnOptionSelected;
|
dd.OptionSelected += DdOnOptionSelected;
|
||||||
Controls.Add(dd);
|
Controls.Add(dd);
|
||||||
base.Size = new(Globals.ms.Size.X - (int)(307 * Globals.Settings.Scale) - (int)(80 * Globals.Settings.Scale), (int)(15 * Globals.Settings.Scale) + dd.Size.Y + dd.Location.Y );
|
base.Size = new(Globals.ms.Size.X - 307.ScaleInt() - 80.ScaleInt(), 15.ScaleInt() + dd.Size.Y + dd.Location.Y );
|
||||||
dd.Size = new(base.Size.X - Top.Location.X - Top.Location.X, dd.Size.Y);
|
dd.Size = new(base.Size.X - Top.Location.X - Top.Location.X, dd.Size.Y);
|
||||||
dd.ForceDistanceUpdate(this);
|
dd.ForceDistanceUpdate(this);
|
||||||
|
|
||||||
line = new()
|
line = new()
|
||||||
{
|
{
|
||||||
Size = new(base.Size.X - 2, (int)Globals.Settings.Scale),
|
Size = new(base.Size.X - 2, 1.ScaleInt()),
|
||||||
BackgroundColor = Color4.Gray,
|
BackgroundColor = Color4.Gray,
|
||||||
Location = new(1, base.Size.Y - (int)Globals.Settings.Scale, 0),
|
Location = new(1, base.Size.Y - 1.ScaleInt(), 0),
|
||||||
Anchor = ObjectAnchor.Left | ObjectAnchor.Right | ObjectAnchor.Bottom
|
Anchor = ObjectAnchor.Left | ObjectAnchor.Right | ObjectAnchor.Bottom
|
||||||
};
|
};
|
||||||
line.ForceDistanceUpdate(this);
|
line.ForceDistanceUpdate(this);
|
||||||
|
@ -17,7 +17,7 @@ public class ThemeDropButton : DropDownOption
|
|||||||
:base(CategoryButton.seltec!)
|
:base(CategoryButton.seltec!)
|
||||||
{
|
{
|
||||||
ESI = esi;
|
ESI = esi;
|
||||||
base.Size = new((int)(297 * Globals.Settings.Scale), (int)(40* Globals.Settings.Scale));
|
base.Size = new(297.ScaleInt(), 40.ScaleInt());
|
||||||
TextureDisplay = TextureDisplay.HorizontalCenter;
|
TextureDisplay = TextureDisplay.HorizontalCenter;
|
||||||
Shader = Rectangle.DefaultAlphaShader[Globals.ms.Context];
|
Shader = Rectangle.DefaultAlphaShader[Globals.ms.Context];
|
||||||
l = new Label(Globals.DefaultFont)
|
l = new Label(Globals.DefaultFont)
|
||||||
@ -26,7 +26,7 @@ public class ThemeDropButton : DropDownOption
|
|||||||
Color = Color4.DarkGray,
|
Color = Color4.DarkGray,
|
||||||
IgnoreHover = true
|
IgnoreHover = true
|
||||||
};
|
};
|
||||||
l.Location = new((int)(10 * Globals.Settings.Scale),
|
l.Location = new(10.ScaleInt(),
|
||||||
(base.Size.Y / 2) - ((int)l.Font.PixelHeight) + (l.PostiveTrueHeight / 2)
|
(base.Size.Y / 2) - ((int)l.Font.PixelHeight) + (l.PostiveTrueHeight / 2)
|
||||||
, 0);
|
, 0);
|
||||||
d = new(Globals.MessageFont)
|
d = new(Globals.MessageFont)
|
||||||
|
@ -8,7 +8,6 @@ using GraphicsManager.Objects;
|
|||||||
using GraphicsManager.Objects.Core;
|
using GraphicsManager.Objects.Core;
|
||||||
using Luski.GUI.MainScreen.UI;
|
using Luski.GUI.MainScreen.UI;
|
||||||
using Luski.GUI.MainScreen.UI.PublicServers;
|
using Luski.GUI.MainScreen.UI.PublicServers;
|
||||||
using Luski.GUI.StartPage.UI;
|
|
||||||
using Luski.net;
|
using Luski.net;
|
||||||
using Luski.net.Structures.Public;
|
using Luski.net.Structures.Public;
|
||||||
using OpenTK.Graphics.OpenGL4;
|
using OpenTK.Graphics.OpenGL4;
|
||||||
@ -28,7 +27,7 @@ public class MainScreenWindow : Window
|
|||||||
APIVersion = new Version(3, 2),
|
APIVersion = new Version(3, 2),
|
||||||
API = ContextAPI.OpenGL,
|
API = ContextAPI.OpenGL,
|
||||||
StartFocused = true,
|
StartFocused = true,
|
||||||
Size = new Vector2i((int)(312 * Globals.Settings.Scale), (int)(545 * Globals.Settings.Scale)),
|
Size = new Vector2i(624, 1090),
|
||||||
Icon = Globals.Icon,
|
Icon = Globals.Icon,
|
||||||
SharedContext = null,
|
SharedContext = null,
|
||||||
};
|
};
|
||||||
@ -36,8 +35,6 @@ public class MainScreenWindow : Window
|
|||||||
public TabControl? tc;
|
public TabControl? tc;
|
||||||
private FlowLayout? channelpicker, friends, friend_request;
|
private FlowLayout? channelpicker, friends, friend_request;
|
||||||
private RoundedButton? FriendManagerBtn;
|
private RoundedButton? FriendManagerBtn;
|
||||||
Login login;
|
|
||||||
CreateAccount ca;
|
|
||||||
private static DebugProc DebugMessageDelegate = OnDebugMessage;
|
private static DebugProc DebugMessageDelegate = OnDebugMessage;
|
||||||
|
|
||||||
private static void OnDebugMessage(
|
private static void OnDebugMessage(
|
||||||
@ -49,14 +46,8 @@ public class MainScreenWindow : Window
|
|||||||
IntPtr pMessage, // Pointer to message string.
|
IntPtr pMessage, // Pointer to message string.
|
||||||
IntPtr pUserParam) // The pointer you gave to OpenGL, explained later.
|
IntPtr pUserParam) // The pointer you gave to OpenGL, explained later.
|
||||||
{
|
{
|
||||||
// In order to access the string pointed to by pMessage, you can use Marshal
|
|
||||||
// class to copy its contents to a C# string without unsafe code. You can
|
|
||||||
// also use the new function Marshal.PtrToStringUTF8 since .NET Core 1.1.
|
|
||||||
string message = Marshal.PtrToStringAnsi(pMessage, length);
|
string message = Marshal.PtrToStringAnsi(pMessage, length);
|
||||||
|
|
||||||
// The rest of the function is up to you to implement, however a debug output
|
|
||||||
// is always useful.
|
|
||||||
|
|
||||||
switch (severity)
|
switch (severity)
|
||||||
{
|
{
|
||||||
case DebugSeverity.DebugSeverityHigh:
|
case DebugSeverity.DebugSeverityHigh:
|
||||||
@ -98,25 +89,33 @@ public class MainScreenWindow : Window
|
|||||||
|
|
||||||
public MainScreenWindow() : base(Settings)
|
public MainScreenWindow() : base(Settings)
|
||||||
{
|
{
|
||||||
|
Globals.ms = this;
|
||||||
ShowMissingChar = true;
|
ShowMissingChar = true;
|
||||||
LogFrames = ((Globals.Settings.Logs & ConsoleLog.DrawFrames) == ConsoleLog.DrawFrames);
|
LogFrames = ((Globals.Settings.Logs & ConsoleLog.DrawFrames) == ConsoleLog.DrawFrames);
|
||||||
VSync = VSyncMode.On;
|
VSync = VSyncMode.On;
|
||||||
this.TryGetCurrentMonitorScale(out var h, out var v);
|
|
||||||
GL.DebugMessageCallback(DebugMessageDelegate, IntPtr.Zero);
|
GL.DebugMessageCallback(DebugMessageDelegate, IntPtr.Zero);
|
||||||
GL.Enable(EnableCap.DebugOutput);
|
GL.Enable(EnableCap.DebugOutput);
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
Globals.DefaultFontFamly = FontFamily.LoadFontFamily(Globals.GetResource("Fonts.OpenSans.zip"), "OpenSans");
|
Globals.DefaultFontFamly = FontFamily.LoadFontFamily(Globals.GetResource("Fonts.OpenSans.zip"), "OpenSans");
|
||||||
Globals.DefaultFont = FontInteraction.Load(Globals.DefaultFontFamly);
|
Globals.DefaultFont = FontInteraction.Load(Globals.DefaultFontFamly);
|
||||||
//Globals.DefaultFont.AddFamily(FontFamily.LoadFontFamily(Globals.GetResource("Fonts.Exo.zip"), "Exo"));
|
string fams = Path.Combine(Globals.LuskiPath, "FontFamilies");
|
||||||
//Globals.DefaultFont.AddFamily(FontFamily.LoadFontFamily(Globals.GetResource("Fonts.Roboto.zip"), "Roboto"));
|
if (!Directory.Exists(fams)) Directory.CreateDirectory(fams);
|
||||||
Globals.DefaultFont.AddFamily(FontFamily.LoadFontFamily(Globals.GetResource("Fonts.Noto_Sans_JP.zip"), "Noto_Sans_JP"));
|
DirectoryInfo di = new DirectoryInfo(fams);
|
||||||
string t = "";
|
|
||||||
for (int i = 9199; i < 9205; i++)
|
foreach (FileInfo fam in di.GetFiles())
|
||||||
{
|
{
|
||||||
t += (char)i;
|
try
|
||||||
|
{
|
||||||
|
if (fam.FullName.ToLower().EndsWith(".zip"))
|
||||||
|
Globals.DefaultFont.AddFamily(FontFamily.LoadFontFamily(File.Open(fam.FullName, FileMode.Open), fam.Name));
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
Console.WriteLine(e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
//Console.WriteLine(t);
|
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
@ -124,15 +123,14 @@ public class MainScreenWindow : Window
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Globals.DefaultFont.PixelHeight = Globals.Settings.DefaultFontPX.ScaleFont();
|
||||||
Globals.DefaultFont.PixelHeight = (uint)(20 * Globals.Settings.Scale);
|
|
||||||
Globals.DefaultFont.FontSize = FontSize.Regular;
|
Globals.DefaultFont.FontSize = FontSize.Regular;
|
||||||
Globals.TopTimeFont = Globals.DefaultFont.Clone();
|
Globals.TopTimeFont = Globals.DefaultFont.Clone();
|
||||||
Globals.TopTimeFont.PixelHeight = (uint)(12 * Globals.Settings.Scale);
|
Globals.TopTimeFont.PixelHeight = Globals.Settings.TopTimeFonttPX.ScaleFont();
|
||||||
Globals.TopTimeFont.FontSize = FontSize.Regular;
|
Globals.TopTimeFont.FontSize = FontSize.Regular;
|
||||||
Globals.MessageFont = Globals.DefaultFont.Clone();
|
Globals.MessageFont = Globals.DefaultFont.Clone();
|
||||||
Globals.MessageFont.PixelHeight = (uint)(17 * Globals.Settings.Scale);
|
Globals.MessageFont.PixelHeight = Globals.Settings.MessageFontPX.ScaleFont();
|
||||||
Globals.MessageFont.ExtraLinePixels = (uint)(5 * Globals.Settings.Scale);
|
Globals.MessageFont.ExtraLinePixels = Globals.Settings.MessageFontLineSpacePX.ScaleFont();
|
||||||
Globals.MessageFont.FontSize = FontSize.Regular;
|
Globals.MessageFont.FontSize = FontSize.Regular;
|
||||||
Globals.SmallTimeFont = Globals.DefaultFont.Clone();
|
Globals.SmallTimeFont = Globals.DefaultFont.Clone();
|
||||||
Globals.LuskiTexture = TextureManager.GetTextureResource("Luski.png");
|
Globals.LuskiTexture = TextureManager.GetTextureResource("Luski.png");
|
||||||
@ -174,6 +172,7 @@ public class MainScreenWindow : Window
|
|||||||
public async Task LoadPublicServer(PublicServer? Server)
|
public async Task LoadPublicServer(PublicServer? Server)
|
||||||
{
|
{
|
||||||
GL.Enable(EnableCap.DepthTest);
|
GL.Enable(EnableCap.DepthTest);
|
||||||
|
GL.Enable(EnableCap.Multisample);
|
||||||
GL.DepthFunc(DepthFunction.Always);
|
GL.DepthFunc(DepthFunction.Always);
|
||||||
if (Server is null) return;
|
if (Server is null) return;
|
||||||
if (!Server.IsLogedIn)
|
if (!Server.IsLogedIn)
|
||||||
@ -218,7 +217,7 @@ public class MainScreenWindow : Window
|
|||||||
parents.Reverse();
|
parents.Reverse();
|
||||||
ChannelSelector cs = await ChannelSelector.MakeSelector(parents[0]);
|
ChannelSelector cs = await ChannelSelector.MakeSelector(parents[0]);
|
||||||
cs.BackgroundColor = new(34, 34, 34, 255);
|
cs.BackgroundColor = new(34, 34, 34, 255);
|
||||||
cs.Size = new((int)(307 * Globals.Settings.Scale), SerBox.Size.Y - (int)(54 * Globals.Settings.Scale));
|
cs.Size = new(307.ScaleInt(), SerBox.Size.Y - 54.ScaleInt());
|
||||||
cs.Anchor = ObjectAnchor.Top | ObjectAnchor.Left | ObjectAnchor.Bottom;
|
cs.Anchor = ObjectAnchor.Top | ObjectAnchor.Left | ObjectAnchor.Bottom;
|
||||||
|
|
||||||
parents.RemoveAt(0);
|
parents.RemoveAt(0);
|
||||||
@ -251,8 +250,8 @@ public class MainScreenWindow : Window
|
|||||||
Role[] ra = await Server.User.GetRoles();
|
Role[] ra = await Server.User.GetRoles();
|
||||||
Color c = ra[0].Color;
|
Color c = ra[0].Color;
|
||||||
Color4 c4 = new(c.R, c.G, c.B, c.A);
|
Color4 c4 = new(c.R, c.G, c.B, c.A);
|
||||||
IRenderObject u = await Server.User.MakeRct(new((int)(46 * Globals.Settings.Scale)), false);
|
IRenderObject u = await Server.User.MakeRct(new(46.ScaleInt()), false);
|
||||||
int ii = (int)(4 * Globals.Settings.Scale);
|
int ii = 4.ScaleInt();
|
||||||
u.Location = new(ii, cs.Size.Y + ii, 0);
|
u.Location = new(ii, cs.Size.Y + ii, 0);
|
||||||
u.Anchor = ObjectAnchor.Bottom | ObjectAnchor.Left;
|
u.Anchor = ObjectAnchor.Bottom | ObjectAnchor.Left;
|
||||||
SerBox.Controls.Add(u);
|
SerBox.Controls.Add(u);
|
||||||
@ -265,13 +264,13 @@ public class MainScreenWindow : Window
|
|||||||
Color = c4
|
Color = c4
|
||||||
};
|
};
|
||||||
|
|
||||||
ul.Location = new(u.Location.X + u.Size.X + (int)(5 * Globals.Settings.Scale),
|
ul.Location = new(u.Location.X + u.Size.X + 5.ScaleInt(),
|
||||||
(u.Location.Y + (u.Size.Y / 2) - (ul.PostiveTrueHeight / 2) - ul.Size.Y + ul.TrueHeight), 0);
|
(u.Location.Y + (u.Size.Y / 2) - (ul.PostiveTrueHeight / 2) - ul.Size.Y + ul.TrueHeight), 0);
|
||||||
SerBox.Controls.Add(ul);
|
SerBox.Controls.Add(ul);
|
||||||
Rectangle setting = new(TextureManager.GetTextureResource("settings.png"))
|
Rectangle setting = new(TextureManager.GetTextureResource("settings.png"))
|
||||||
{
|
{
|
||||||
Location = new(cs.Size.X - (int)(40 * Globals.Settings.Scale), cs.Size.Y + (int)(Globals.Settings.Scale * 11),0),
|
Location = new(cs.Size.X - 40.ScaleInt(), cs.Size.Y + 11.ScaleInt(),0),
|
||||||
Size = new((int)(32 * Globals.Settings.Scale)),
|
Size = new(32.ScaleInt()),
|
||||||
Shader = Rectangle.DefaultAlphaShader[Context],
|
Shader = Rectangle.DefaultAlphaShader[Context],
|
||||||
BackgroundColor = Color4.Gray,
|
BackgroundColor = Color4.Gray,
|
||||||
Anchor = ObjectAnchor.Bottom | ObjectAnchor.Left
|
Anchor = ObjectAnchor.Bottom | ObjectAnchor.Left
|
||||||
@ -328,7 +327,7 @@ public class MainScreenWindow : Window
|
|||||||
Controls.Clear();
|
Controls.Clear();
|
||||||
BlockDraw = true;
|
BlockDraw = true;
|
||||||
Title = "Luski";
|
Title = "Luski";
|
||||||
Size = new((int)(1332 * Globals.Settings.Scale), (int)(866 * Globals.Settings.Scale));
|
Size = new(1332.ScaleInt(), 866.ScaleInt());
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
CenterWindow(Globals.Settings.Display);
|
CenterWindow(Globals.Settings.Display);
|
||||||
@ -343,7 +342,7 @@ public class MainScreenWindow : Window
|
|||||||
Controls.Add(ser = new FlowLayout()
|
Controls.Add(ser = new FlowLayout()
|
||||||
{
|
{
|
||||||
BackgroundColor = new(26, 26, 26, 255),
|
BackgroundColor = new(26, 26, 26, 255),
|
||||||
Size = new((int)(68 * Globals.Settings.Scale), (int)(868 * Globals.Settings.Scale)),
|
Size = new(68.ScaleInt(), 868.ScaleInt()),
|
||||||
Anchor = ObjectAnchor.Top | ObjectAnchor.Left | ObjectAnchor.Bottom,
|
Anchor = ObjectAnchor.Top | ObjectAnchor.Left | ObjectAnchor.Bottom,
|
||||||
Location = new(0,0,0)
|
Location = new(0,0,0)
|
||||||
});
|
});
|
||||||
|
@ -1,124 +0,0 @@
|
|||||||
using System.Reflection;
|
|
||||||
using GraphicsManager;
|
|
||||||
using GraphicsManager.Enums;
|
|
||||||
using GraphicsManager.Interfaces;
|
|
||||||
using GraphicsManager.Objects;
|
|
||||||
using GraphicsManager.Objects.Core;
|
|
||||||
using Luski.net;
|
|
||||||
using OpenTK.Graphics.OpenGL4;
|
|
||||||
using OpenTK.Mathematics;
|
|
||||||
using OpenTK.Windowing.Common;
|
|
||||||
using OpenTK.Windowing.GraphicsLibraryFramework;
|
|
||||||
|
|
||||||
namespace Luski.GUI.StartPage.UI;
|
|
||||||
|
|
||||||
public class CreateAccount : UserControl
|
|
||||||
{
|
|
||||||
private RoundedButton button;
|
|
||||||
private TexturedTextBox Password, UsernameTextbox, DisplaynameTextBox;
|
|
||||||
private Rectangle rec;
|
|
||||||
private string? pfp;
|
|
||||||
|
|
||||||
public event Func<Task>? ChangeToApp;
|
|
||||||
|
|
||||||
public CreateAccount()
|
|
||||||
{
|
|
||||||
Size = new((int)(312 * Globals.Settings.Scale), (int)(545 * Globals.Settings.Scale));
|
|
||||||
Rectangle tt;
|
|
||||||
Controls.Add(tt=new Rectangle(Globals.LuskiTexture) { Size = new((int)(179*Globals.Settings.Scale), (int)(189*Globals.Settings.Scale))});
|
|
||||||
Label t;
|
|
||||||
Controls.Add(t=new Label(Globals.DefaultFont) { Scale = 1.6f * (float)Globals.Settings.Scale, Location = new((int)(199*Globals.Settings.Scale)), Text = "Luski", Color = new(243, 119, 53, 255) });
|
|
||||||
t.Location = new((Size.X / 2) - (t.Size.X / 2), t.Location.Y, 0);
|
|
||||||
tt.Location = new((Size.X / 2) - (tt.Size.X / 2), tt.Location.Y, 0);
|
|
||||||
Controls.Add(UsernameTextbox = new(Globals.LuskiTexture, Globals.DefaultFont, Globals.DefaultFont) { TextLocation = TextLocation.TrueCenterLeft, WatermarkText = "Username", Location = new((int)(27 * Globals.Settings.Scale),(int)(280 * Globals.Settings.Scale), 0), Size = new((int)(261 * Globals.Settings.Scale),(int)(27 * Globals.Settings.Scale)),});
|
|
||||||
Controls.Add(Password = new(Globals.LuskiTexture, Globals.DefaultFont, Globals.DefaultFont) { TextLocation = TextLocation.TrueCenterLeft, WatermarkText = "Password", PasswordChar = '●', Location = new(UsernameTextbox.Location.X,(int)(346 * Globals.Settings.Scale), 0), Size = new(UsernameTextbox.Size.X, UsernameTextbox.Location.X), });
|
|
||||||
Controls.Add(DisplaynameTextBox = new(Globals.LuskiTexture, Globals.DefaultFont, Globals.DefaultFont) { TextLocation = TextLocation.TrueCenterLeft, WatermarkText = "Displayname", Location = new(UsernameTextbox.Location.X,(int)(400 * Globals.Settings.Scale), 0), Size = new((int)(196 * Globals.Settings.Scale), UsernameTextbox.Location.X), });
|
|
||||||
Controls.Add(button = new(Globals.LuskiTexture, Globals.DefaultFont) { Text = "Create Account", Location = new(UsernameTextbox.Location.X, (int)(456 * Globals.Settings.Scale), 0), Size = new(UsernameTextbox.Size.X, (int)(46 * Globals.Settings.Scale)),});
|
|
||||||
Controls.Add(rec = new Rectangle(){ Location = new((int)(228 * Globals.Settings.Scale), (int)(384 * Globals.Settings.Scale), 0), Size = new((int)(50 * Globals.Settings.Scale)), BackgroundColor = Color4.Red});
|
|
||||||
Password.KeyPress += PasswordOnKeyPress;
|
|
||||||
UsernameTextbox.KeyPress += UsernameTextboxOnKeyPress;
|
|
||||||
button.Clicked += ButtonOnClicked;
|
|
||||||
DisplaynameTextBox.KeyPress += DisplaynameTextBoxOnKeyPress;
|
|
||||||
rec.FilesDroped += RecOnFilesDroped;
|
|
||||||
}
|
|
||||||
|
|
||||||
private Task DisplaynameTextBoxOnKeyPress(KeyboardKeyEventArgs arg)
|
|
||||||
{
|
|
||||||
if (arg.Key != Keys.Enter && arg.Key != Keys.KeyPadEnter && arg.Key != Keys.Tab) return Task.CompletedTask;
|
|
||||||
if (arg.Key == Keys.Tab && arg.Shift) { Password.Focus(); return Task.CompletedTask; }
|
|
||||||
if (arg.Key == Keys.Enter || arg.Key == Keys.KeyPadEnter) ButtonOnClicked(DisplaynameTextBox);
|
|
||||||
return Task.CompletedTask;
|
|
||||||
}
|
|
||||||
|
|
||||||
private Task RecOnFilesDroped(string[] arg)
|
|
||||||
{
|
|
||||||
if (!arg[0].ToLower().EndsWith("png")) return Task.CompletedTask;
|
|
||||||
|
|
||||||
pfp = arg[0];
|
|
||||||
if (!rec.Textures.Any())
|
|
||||||
{
|
|
||||||
Controls.Remove(rec);
|
|
||||||
Vector3i oldl = rec.Location;
|
|
||||||
Vector2i olds = rec.Size;
|
|
||||||
rec = new Rectangle(Globals.ms.TextureManager.AddTexture(Tools.GetResourceStream(Assembly.GetExecutingAssembly(),
|
|
||||||
"Luski.Resources.Textures.Status.png"))) { Location = oldl, Size = olds };
|
|
||||||
Texture tex = Globals.ms.TextureManager.AddTexture(File.OpenRead(arg[0]));
|
|
||||||
tex.Unit = TextureUnit.Texture1;
|
|
||||||
rec.Shader = Rectangle.DefaultAlphaTextureShader[Globals.ms.Context];
|
|
||||||
rec.Textures.Add(tex);
|
|
||||||
Controls.Add(rec);
|
|
||||||
//rec = new(Globals.ms.TextureManager.AddTexture(File.ReadAllBytes(arg[0]), true)){ Location = new(350, 585), Size = new(100) };Controls.Add(rec);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
rec.Textures[1] = Globals.ms.TextureManager.AddTexture(File.OpenRead(arg[0]));
|
|
||||||
rec.Textures[1].Unit = TextureUnit.Texture1;
|
|
||||||
}
|
|
||||||
|
|
||||||
Window!.TryDraw();
|
|
||||||
return Task.CompletedTask;
|
|
||||||
}
|
|
||||||
|
|
||||||
private bool tab;
|
|
||||||
private Task UsernameTextboxOnKeyPress(KeyboardKeyEventArgs arg)
|
|
||||||
{
|
|
||||||
if (arg.Key != Keys.Tab) return Task.CompletedTask;
|
|
||||||
if (arg.Key == Keys.Tab){ Password.Focus(); tab = true;}
|
|
||||||
return Task.CompletedTask;
|
|
||||||
}
|
|
||||||
|
|
||||||
private Task PasswordOnKeyPress(KeyboardKeyEventArgs arg)
|
|
||||||
{
|
|
||||||
if (tab)
|
|
||||||
{
|
|
||||||
tab = false;
|
|
||||||
return Task.CompletedTask;
|
|
||||||
};
|
|
||||||
if (arg.Key != Keys.Enter && arg.Key != Keys.KeyPadEnter && arg.Key != Keys.Tab) return Task.CompletedTask;
|
|
||||||
if (arg.Key == Keys.Tab && arg.Shift) { UsernameTextbox.Focus(); return Task.CompletedTask; }
|
|
||||||
if (arg.Key == Keys.Tab ){ DisplaynameTextBox.Focus(); return Task.CompletedTask; }
|
|
||||||
return Task.CompletedTask;
|
|
||||||
}
|
|
||||||
|
|
||||||
private Task ButtonOnClicked(IRenderObject arg)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
string[] arr = new string[]
|
|
||||||
{
|
|
||||||
UsernameTextbox.Text,
|
|
||||||
Password.Text,
|
|
||||||
DisplaynameTextBox.Text,
|
|
||||||
pfp!
|
|
||||||
};
|
|
||||||
if (arr.Any(s => string.IsNullOrEmpty(s))) return Task.CompletedTask;
|
|
||||||
Globals.Luski.MainServer.CreateAccount(UsernameTextbox.Text, Password.Text, DisplaynameTextBox.Text, pfp!, CancellationToken.None);
|
|
||||||
ChangeToApp!.Invoke();
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
Console.WriteLine(e);
|
|
||||||
}
|
|
||||||
return Task.CompletedTask;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,84 +0,0 @@
|
|||||||
using GraphicsManager.Enums;
|
|
||||||
using GraphicsManager.Interfaces;
|
|
||||||
using GraphicsManager.Objects;
|
|
||||||
using Luski.net;
|
|
||||||
using OpenTK.Mathematics;
|
|
||||||
using OpenTK.Windowing.Common;
|
|
||||||
using OpenTK.Windowing.GraphicsLibraryFramework;
|
|
||||||
|
|
||||||
namespace Luski.GUI.StartPage.UI;
|
|
||||||
|
|
||||||
public class Login : UserControl
|
|
||||||
{
|
|
||||||
private RoundedButton button;
|
|
||||||
private TexturedTextBox Password, UsernameTextbox;
|
|
||||||
private Label ca;
|
|
||||||
public event Func<Task>? ChangeToApp;
|
|
||||||
public event Func<Task>? ChangeToCa;
|
|
||||||
public Login()
|
|
||||||
{
|
|
||||||
Size = new((int)(312 * Globals.Settings.Scale), (int)(545 * Globals.Settings.Scale));
|
|
||||||
Rectangle tt;
|
|
||||||
Controls.Add(tt=new Rectangle(Globals.LuskiTexture) { Size = new((int)(179*Globals.Settings.Scale), (int)(189*Globals.Settings.Scale))});
|
|
||||||
Label t;
|
|
||||||
Controls.Add(t=new Label(Globals.DefaultFont) { Scale = 1.6f, Location = new((int)(199*Globals.Settings.Scale)), Text = "Luski", Color = new(243, 119, 53, 255) });
|
|
||||||
t.Location = new((Size.X / 2) - (t.Size.X / 2), t.Location.Y, 0);
|
|
||||||
tt.Location = new((Size.X / 2) - (tt.Size.X / 2), tt.Location.Y, 0);
|
|
||||||
Controls.Add(UsernameTextbox = new(Globals.LuskiTexture, Globals.DefaultFont, Globals.DefaultFont) { TextLocation = TextLocation.TrueCenterLeft, WatermarkText = "Username", Location = new((int)(27*Globals.Settings.Scale),(int)(280 * Globals.Settings.Scale), 0), Size = new((int)(261 * Globals.Settings.Scale),(int)(27 * Globals.Settings.Scale))});
|
|
||||||
Controls.Add(Password = new(Globals.LuskiTexture, Globals.DefaultFont, Globals.DefaultFont) { TextLocation = TextLocation.TrueCenterLeft, WatermarkText = "Password", PasswordChar = '●', Location = new(UsernameTextbox.Location.X,(int)(365 * Globals.Settings.Scale), 0), Size = UsernameTextbox.Size, });
|
|
||||||
Controls.Add(ca = new Label(Globals.DefaultFont) { Location = new(UsernameTextbox.Location.X,(int)(419 * Globals.Settings.Scale), 0), Text = "Create Account" });
|
|
||||||
Controls.Add(button = new(Globals.LuskiTexture, Globals.DefaultFont) {Text = "Login", Location = new(UsernameTextbox.Location.X, (int)(455 * Globals.Settings.Scale), 0), Size = new(UsernameTextbox.Size.X,(int)(46 * Globals.Settings.Scale)),});
|
|
||||||
Password.KeyPress += PasswordOnKeyPress;
|
|
||||||
UsernameTextbox.KeyPress += UsernameTextboxOnKeyPress;
|
|
||||||
button.Clicked += ButtonOnClicked;
|
|
||||||
ca.Clicked += CaOnClicked;
|
|
||||||
this.WindowLoaded += OnWindowLoaded;
|
|
||||||
}
|
|
||||||
|
|
||||||
private Task OnWindowLoaded(IRenderObject arg)
|
|
||||||
{
|
|
||||||
UsernameTextbox.Focus();
|
|
||||||
return Task.CompletedTask;
|
|
||||||
}
|
|
||||||
|
|
||||||
private Task CaOnClicked(IRenderObject arg)
|
|
||||||
{
|
|
||||||
ChangeToCa!.Invoke();
|
|
||||||
return Task.CompletedTask;
|
|
||||||
}
|
|
||||||
|
|
||||||
private Task UsernameTextboxOnKeyPress(KeyboardKeyEventArgs arg)
|
|
||||||
{
|
|
||||||
if (arg.Key != Keys.Tab) return Task.CompletedTask;
|
|
||||||
Password.Focus();
|
|
||||||
return Task.CompletedTask;
|
|
||||||
}
|
|
||||||
|
|
||||||
private Task PasswordOnKeyPress(KeyboardKeyEventArgs arg)
|
|
||||||
{
|
|
||||||
if (arg.Key != Keys.Enter && arg.Key != Keys.KeyPadEnter && arg.Key != Keys.Tab) return Task.CompletedTask;
|
|
||||||
if (arg.Key == Keys.Tab && arg.Shift) UsernameTextbox.Focus();
|
|
||||||
if (arg.Key != Keys.Tab ) ButtonOnClicked(Password);
|
|
||||||
return Task.CompletedTask;
|
|
||||||
}
|
|
||||||
|
|
||||||
private Task ButtonOnClicked(IRenderObject arg)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
Globals.Luski.MainServer.Login(UsernameTextbox.Text, Password.Text, CancellationToken.None);
|
|
||||||
ChangeToApp!.Invoke();
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
if (e.Message.Contains("Invaled Login"))
|
|
||||||
{
|
|
||||||
BlockDraw = true;
|
|
||||||
BlockDraw = false;
|
|
||||||
TryDraw();
|
|
||||||
}
|
|
||||||
else Console.WriteLine(e);
|
|
||||||
}
|
|
||||||
return Task.CompletedTask;
|
|
||||||
}
|
|
||||||
}
|
|
@ -33,7 +33,7 @@ public class UpdateWindow : Window
|
|||||||
public UpdateWindow() : base(Settings)
|
public UpdateWindow() : base(Settings)
|
||||||
{
|
{
|
||||||
Label t;
|
Label t;
|
||||||
Controls.Add(t = new Label(Globals.DefaultFont) { Scale = 1.2f, Location = new((int)(17.5*Globals.Settings.Scale)), Text = "Luski has detected that your\nclient is on an older version\nfor your branch."});
|
Controls.Add(t = new Label(Globals.DefaultFont) { Scale = 1.2f, Location = new(17.5.ScaleInt()), Text = "Luski has detected that your\nclient is on an older version\nfor your branch."});
|
||||||
if (!Globals.Empty(Globals.UpdaterSettings.Updater))
|
if (!Globals.Empty(Globals.UpdaterSettings.Updater))
|
||||||
{
|
{
|
||||||
t.Text += "\n\nWould you like to update?";
|
t.Text += "\n\nWould you like to update?";
|
||||||
@ -41,12 +41,12 @@ public class UpdateWindow : Window
|
|||||||
{
|
{
|
||||||
Text = "Yes",
|
Text = "Yes",
|
||||||
Location = new(t.Location.X, t.Location.Y + t.Size.Y + (int)(t.Scale * t.Font.PixelHeight), 0),
|
Location = new(t.Location.X, t.Location.Y + t.Size.Y + (int)(t.Scale * t.Font.PixelHeight), 0),
|
||||||
Size = new(t.Size.X, (int)(35.5 * Globals.Settings.Scale))
|
Size = new(t.Size.X, 33.5.ScaleInt())
|
||||||
});
|
});
|
||||||
Controls.Add(no = new(Globals.LuskiTexture, Globals.DefaultFont)
|
Controls.Add(no = new(Globals.LuskiTexture, Globals.DefaultFont)
|
||||||
{
|
{
|
||||||
Text = "No", Location = new(t.Location.X, yes.Location.Y + yes.Size.Y + 20, 0),
|
Text = "No", Location = new(t.Location.X, yes.Location.Y + yes.Size.Y + 20, 0),
|
||||||
Size = new(yes.Size.X, (int)(35.5 * Globals.Settings.Scale))
|
Size = new(yes.Size.X, 35.5.ScaleInt())
|
||||||
});
|
});
|
||||||
Size = new(t.Location.X + t.Location.X + t.Size.X, no.Location.Y + no.Size.Y + t.Location.X);
|
Size = new(t.Location.X + t.Location.X + t.Size.X, no.Location.Y + no.Size.Y + t.Location.X);
|
||||||
yes.Clicked += YesOnClicked;
|
yes.Clicked += YesOnClicked;
|
||||||
@ -59,7 +59,7 @@ public class UpdateWindow : Window
|
|||||||
{
|
{
|
||||||
Text = "Ok",
|
Text = "Ok",
|
||||||
Location = new(t.Location.X, t.Location.Y + t.Size.Y + (int)(t.Scale * t.Font.PixelHeight), 0),
|
Location = new(t.Location.X, t.Location.Y + t.Size.Y + (int)(t.Scale * t.Font.PixelHeight), 0),
|
||||||
Size = new(t.Size.X, (int)(35.5 * Globals.Settings.Scale)),
|
Size = new(t.Size.X, 35.5.ScaleInt()),
|
||||||
});
|
});
|
||||||
Size = new(t.Location.X + t.Location.X + t.Size.X, no.Location.Y + no.Size.Y + t.Location.X);
|
Size = new(t.Location.X + t.Location.X + t.Size.X, no.Location.Y + no.Size.Y + t.Location.X);
|
||||||
no.Clicked += NoOnClicked;
|
no.Clicked += NoOnClicked;
|
||||||
|
@ -18,6 +18,7 @@ using Luski.Shared.PublicServers.V1.Enums;
|
|||||||
using OpenTK.Graphics.OpenGL4;
|
using OpenTK.Graphics.OpenGL4;
|
||||||
using OpenTK.Mathematics;
|
using OpenTK.Mathematics;
|
||||||
using OpenTK.Windowing.Common.Input;
|
using OpenTK.Windowing.Common.Input;
|
||||||
|
using OpenTK.Windowing.Desktop;
|
||||||
|
|
||||||
namespace Luski;
|
namespace Luski;
|
||||||
|
|
||||||
@ -54,6 +55,33 @@ public static class Globals
|
|||||||
|
|
||||||
public static Color4 DodgerBlue = new Color4(30, 144, 255, 255);
|
public static Color4 DodgerBlue = new Color4(30, 144, 255, 255);
|
||||||
|
|
||||||
|
public static double GetScale()
|
||||||
|
{
|
||||||
|
if (Settings.Scale is not null) return Settings.Scale.Value;
|
||||||
|
return Monitors.GetMonitorFromWindow(ms).HorizontalScale;
|
||||||
|
}
|
||||||
|
public static int ScaleInt(this int i)
|
||||||
|
{
|
||||||
|
return (int)(GetScale() * i);
|
||||||
|
}
|
||||||
|
public static int ScaleInt(this double i)
|
||||||
|
{
|
||||||
|
return (int)(GetScale() * i);
|
||||||
|
}
|
||||||
|
public static double ScaleDouble(this int i)
|
||||||
|
{
|
||||||
|
return (GetScale() * i);
|
||||||
|
}
|
||||||
|
public static double ScaleDouble(this double i)
|
||||||
|
{
|
||||||
|
return (GetScale() * i);
|
||||||
|
}
|
||||||
|
public static uint ScaleFont(this uint i)
|
||||||
|
{
|
||||||
|
if (Globals.Settings.ScaleFonts) return (uint)(GetScale() * i);
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
|
||||||
public static void PrintParent(IParent par)
|
public static void PrintParent(IParent par)
|
||||||
{
|
{
|
||||||
void PrintP(int index, IParent p, Vector3i l)
|
void PrintP(int index, IParent p, Vector3i l)
|
||||||
|
@ -21,8 +21,8 @@
|
|||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="GraphicsManager" Version="1.0.8-alpha82" />
|
<PackageReference Include="GraphicsManager" Version="1.0.9-alpha07" />
|
||||||
<PackageReference Include="Luski.net" Version="2.0.0-alpha69" />
|
<PackageReference Include="Luski.net" Version="2.0.0-alpha76" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
@ -1,10 +1,7 @@
|
|||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.Reflection;
|
|
||||||
using GraphicsManager;
|
|
||||||
using Luski;
|
using Luski;
|
||||||
using Luski.Classes;
|
using Luski.Classes;
|
||||||
using Luski.GUI;
|
using Luski.GUI;
|
||||||
using Luski.net;
|
|
||||||
using OpenTK.Windowing.Common.Input;
|
using OpenTK.Windowing.Common.Input;
|
||||||
using SixLabors.ImageSharp;
|
using SixLabors.ImageSharp;
|
||||||
using SixLabors.ImageSharp.PixelFormats;
|
using SixLabors.ImageSharp.PixelFormats;
|
||||||
|
BIN
Luski/Resources/Textures/Context.png
Normal file
BIN
Luski/Resources/Textures/Context.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.9 KiB |
BIN
Luski/Resources/Textures/ContextBetter.jpg
Normal file
BIN
Luski/Resources/Textures/ContextBetter.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.1 KiB |
BIN
Luski/Resources/Textures/ContextBetter.png
Normal file
BIN
Luski/Resources/Textures/ContextBetter.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.1 KiB |
BIN
Luski/Resources/Textures/TextboxOutline.png
Normal file
BIN
Luski/Resources/Textures/TextboxOutline.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.2 KiB |
Loading…
Reference in New Issue
Block a user