Skip to content

Commit

Permalink
Merge pull request #8 from Adham084/master
Browse files Browse the repository at this point in the history
Some fixes on Mouse and other enhancements
  • Loading branch information
dovker authored Aug 2, 2023
2 parents 772a93d + eb5d335 commit 60d0975
Show file tree
Hide file tree
Showing 3 changed files with 319 additions and 2 deletions.
26 changes: 25 additions & 1 deletion MonoGame.ImGui/Data/InputData.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,10 @@ public InputData() {
KeyMap = new List<int>();
}

public void Update(GraphicsDevice device) {
public void Update(Game game) {
if (!game.IsActive)
return;

var io = ImGuiNET.ImGui.GetIO();
var mouse = Mouse.GetState();
var keyboard = Keyboard.GetState();
Expand All @@ -43,6 +46,27 @@ public void Update(GraphicsDevice device) {
var scrollDelta = mouse.ScrollWheelValue - Scrollwheel;
io.MouseWheel = scrollDelta > 0 ? 1 : scrollDelta < 0 ? -1 : 0;
Scrollwheel = mouse.ScrollWheelValue;

UpdateCursor();
}

private void UpdateCursor() {
MouseCursor mouseCursor = ImGui.GetMouseCursor() switch {
ImGuiMouseCursor.None => MouseCursor.Arrow,
ImGuiMouseCursor.Arrow => MouseCursor.Arrow,
ImGuiMouseCursor.TextInput => MouseCursor.IBeam,
ImGuiMouseCursor.ResizeAll => MouseCursor.SizeAll,
ImGuiMouseCursor.ResizeNS => MouseCursor.SizeNS,
ImGuiMouseCursor.ResizeEW => MouseCursor.SizeWE,
ImGuiMouseCursor.ResizeNESW => MouseCursor.SizeNESW,
ImGuiMouseCursor.ResizeNWSE => MouseCursor.SizeNWSE,
ImGuiMouseCursor.Hand => MouseCursor.Hand,
ImGuiMouseCursor.NotAllowed => MouseCursor.No,
ImGuiMouseCursor.COUNT => MouseCursor.Wait,
_ => throw new ArgumentOutOfRangeException()
};

Mouse.PlatformSetCursor(mouseCursor);
}

public InputData Initialize(Game game) {
Expand Down
2 changes: 1 addition & 1 deletion MonoGame.ImGui/ImGUIRenderer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ public ImGuiRenderer(Game owner) {

public virtual void BeginLayout(GameTime gameTime) {
ImGuiNET.ImGui.GetIO().DeltaTime = (float) gameTime.ElapsedGameTime.TotalSeconds;
_inputData.Update(GraphicsDevice);
_inputData.Update(Owner);

ImGuiNET.ImGui.NewFrame();
}
Expand Down
293 changes: 293 additions & 0 deletions MonoGame.ImGui/ImGuiColor.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,293 @@
using System.Numerics;

namespace MonoGame.ImGui;

public static class ImGuiColor {
static ImGuiColor() {
Transparent = new Vector4(0f);
AliceBlue = new Vector4(0.9411765f, 0.972549f, 1f, 1f);
AntiqueWhite = new Vector4(0.98039216f, 0.92156863f, 0.84313726f, 1f);
Aqua = new Vector4(0f, 1f, 1f, 1f);
Aquamarine = new Vector4(0.49803922f, 1f, 0.83137256f, 1f);
Azure = new Vector4(0.9411765f, 1f, 1f, 1f);
Beige = new Vector4(0.9607843f, 0.9607843f, 0.8627451f, 1f);
Bisque = new Vector4(1f, 0.89411765f, 0.76862746f, 1f);
Black = new Vector4(0f, 0f, 0f, 1f);
BlanchedAlmond = new Vector4(1f, 0.92156863f, 0.8039216f, 1f);
Blue = new Vector4(0f, 0f, 1f, 1f);
BlueViolet = new Vector4(0.5411765f, 0.16862746f, 0.8862745f, 1f);
Brown = new Vector4(0.64705884f, 0.16470589f, 0.16470589f, 1f);
BurlyWood = new Vector4(0.87058824f, 0.72156864f, 0.5294118f, 1f);
CadetBlue = new Vector4(0.37254903f, 0.61960787f, 0.627451f, 1f);
Chartreuse = new Vector4(0.49803922f, 1f, 0f, 1f);
Chocolate = new Vector4(0.8235294f, 0.4117647f, 0.11764706f, 1f);
Coral = new Vector4(1f, 0.49803922f, 0.3137255f, 1f);
CornflowerBlue = new Vector4(0.39215687f, 0.58431375f, 0.92941177f, 1f);
Cornsilk = new Vector4(1f, 0.972549f, 0.8627451f, 1f);
Crimson = new Vector4(0.8627451f, 0.078431375f, 0.23529412f, 1f);
Cyan = new Vector4(0f, 1f, 1f, 1f);
DarkBlue = new Vector4(0f, 0f, 0.54509807f, 1f);
DarkCyan = new Vector4(0f, 0.54509807f, 0.54509807f, 1f);
DarkGoldenrod = new Vector4(0.72156864f, 0.5254902f, 0.043137256f, 1f);
DarkGray = new Vector4(0.6627451f, 0.6627451f, 0.6627451f, 1f);
DarkGreen = new Vector4(0f, 0.39215687f, 0f, 1f);
DarkKhaki = new Vector4(0.7411765f, 0.7176471f, 0.41960785f, 1f);
DarkMagenta = new Vector4(0.54509807f, 0f, 0.54509807f, 1f);
DarkOliveGreen = new Vector4(0.33333334f, 0.41960785f, 0.18431373f, 1f);
DarkOrange = new Vector4(1f, 0.54901963f, 0f, 1f);
DarkOrchid = new Vector4(0.6f, 0.19607843f, 0.8f, 1f);
DarkRed = new Vector4(0.54509807f, 0f, 0f, 1f);
DarkSalmon = new Vector4(0.9137255f, 0.5882353f, 0.47843137f, 1f);
DarkSeaGreen = new Vector4(0.56078434f, 0.7372549f, 0.54509807f, 1f);
DarkSlateBlue = new Vector4(0.28235295f, 0.23921569f, 0.54509807f, 1f);
DarkSlateGray = new Vector4(0.18431373f, 0.30980393f, 0.30980393f, 1f);
DarkTurquoise = new Vector4(0f, 0.80784315f, 0.81960785f, 1f);
DarkViolet = new Vector4(0.5803922f, 0f, 0.827451f, 1f);
DeepPink = new Vector4(1f, 0.078431375f, 0.5764706f, 1f);
DeepSkyBlue = new Vector4(0f, 0.7490196f, 1f, 1f);
DimGray = new Vector4(0.4117647f, 0.4117647f, 0.4117647f, 1f);
DodgerBlue = new Vector4(0.11764706f, 0.5647059f, 1f, 1f);
Firebrick = new Vector4(0.69803923f, 0.13333334f, 0.13333334f, 1f);
FloralWhite = new Vector4(1f, 0.98039216f, 0.9411765f, 1f);
ForestGreen = new Vector4(0.13333334f, 0.54509807f, 0.13333334f, 1f);
Fuchsia = new Vector4(1f, 0f, 1f, 1f);
Gainsboro = new Vector4(0.8627451f, 0.8627451f, 0.8627451f, 1f);
GhostWhite = new Vector4(0.972549f, 0.972549f, 1f, 1f);
Gold = new Vector4(1f, 0.84313726f, 0f, 1f);
Goldenrod = new Vector4(0.85490197f, 0.64705884f, 0.1254902f, 1f);
Gray = new Vector4(0.5019608f, 0.5019608f, 0.5019608f, 1f);
Green = new Vector4(0f, 0.5019608f, 0f, 1f);
GreenYellow = new Vector4(0.6784314f, 1f, 0.18431373f, 1f);
Honeydew = new Vector4(0.9411765f, 1f, 0.9411765f, 1f);
HotPink = new Vector4(1f, 0.4117647f, 0.7058824f, 1f);
IndianRed = new Vector4(0.8039216f, 0.36078432f, 0.36078432f, 1f);
Indigo = new Vector4(0.29411766f, 0f, 0.50980395f, 1f);
Ivory = new Vector4(1f, 1f, 0.9411765f, 1f);
Khaki = new Vector4(0.9411765f, 0.9019608f, 0.54901963f, 1f);
Lavender = new Vector4(0.9019608f, 0.9019608f, 0.98039216f, 1f);
LavenderBlush = new Vector4(1f, 0.9411765f, 0.9607843f, 1f);
LawnGreen = new Vector4(0.4862745f, 0.9882353f, 0f, 1f);
LemonChiffon = new Vector4(1f, 0.98039216f, 0.8039216f, 1f);
LightBlue = new Vector4(0.6784314f, 0.84705883f, 0.9019608f, 1f);
LightCoral = new Vector4(0.9411765f, 0.5019608f, 0.5019608f, 1f);
LightCyan = new Vector4(0.8784314f, 1f, 1f, 1f);
LightGoldenrodYellow = new Vector4(0.98039216f, 0.98039216f, 0.8235294f, 1f);
LightGray = new Vector4(0.827451f, 0.827451f, 0.827451f, 1f);
LightGreen = new Vector4(0.5647059f, 0.93333334f, 0.5647059f, 1f);
LightPink = new Vector4(1f, 0.7137255f, 0.75686276f, 1f);
LightSalmon = new Vector4(1f, 0.627451f, 0.47843137f, 1f);
LightSeaGreen = new Vector4(0.1254902f, 0.69803923f, 0.6666667f, 1f);
LightSkyBlue = new Vector4(0.5294118f, 0.80784315f, 0.98039216f, 1f);
LightSlateGray = new Vector4(0.46666667f, 0.53333336f, 0.6f, 1f);
LightSteelBlue = new Vector4(0.6901961f, 0.76862746f, 0.87058824f, 1f);
LightYellow = new Vector4(1f, 1f, 0.8784314f, 1f);
Lime = new Vector4(0f, 1f, 0f, 1f);
LimeGreen = new Vector4(0.19607843f, 0.8039216f, 0.19607843f, 1f);
Linen = new Vector4(0.98039216f, 0.9411765f, 0.9019608f, 1f);
Magenta = new Vector4(1f, 0f, 1f, 1f);
Maroon = new Vector4(0.5019608f, 0f, 0f, 1f);
MediumAquamarine = new Vector4(0.4f, 0.8039216f, 0.6666667f, 1f);
MediumBlue = new Vector4(0f, 0f, 0.8039216f, 1f);
MediumOrchid = new Vector4(0.7294118f, 0.33333334f, 0.827451f, 1f);
MediumPurple = new Vector4(0.5764706f, 0.4392157f, 0.85882354f, 1f);
MediumSeaGreen = new Vector4(0.23529412f, 0.7019608f, 0.44313726f, 1f);
MediumSlateBlue = new Vector4(0.48235294f, 0.40784314f, 0.93333334f, 1f);
MediumSpringGreen = new Vector4(0f, 0.98039216f, 0.6039216f, 1f);
MediumTurquoise = new Vector4(0.28235295f, 0.81960785f, 0.8f, 1f);
MediumVioletRed = new Vector4(0.78039217f, 0.08235294f, 0.52156866f, 1f);
MidnightBlue = new Vector4(0.09803922f, 0.09803922f, 0.4392157f, 1f);
MintCream = new Vector4(0.9607843f, 1f, 0.98039216f, 1f);
MistyRose = new Vector4(1f, 0.89411765f, 0.88235295f, 1f);
Moccasin = new Vector4(1f, 0.89411765f, 0.70980394f, 1f);
MonoGameOrange = new Vector4(0.90588236f, 0.23529412f, 0f, 1f);
NavajoWhite = new Vector4(1f, 0.87058824f, 0.6784314f, 1f);
Navy = new Vector4(0f, 0f, 0.5019608f, 1f);
OldLace = new Vector4(0.99215686f, 0.9607843f, 0.9019608f, 1f);
Olive = new Vector4(0.5019608f, 0.5019608f, 0f, 1f);
OliveDrab = new Vector4(0.41960785f, 0.5568628f, 0.13725491f, 1f);
Orange = new Vector4(1f, 0.64705884f, 0f, 1f);
OrangeRed = new Vector4(1f, 0.27058825f, 0f, 1f);
Orchid = new Vector4(0.85490197f, 0.4392157f, 0.8392157f, 1f);
PaleGoldenrod = new Vector4(0.93333334f, 0.9098039f, 0.6666667f, 1f);
PaleGreen = new Vector4(0.59607846f, 0.9843137f, 0.59607846f, 1f);
PaleTurquoise = new Vector4(0.6862745f, 0.93333334f, 0.93333334f, 1f);
PaleVioletRed = new Vector4(0.85882354f, 0.4392157f, 0.5764706f, 1f);
PapayaWhip = new Vector4(1f, 0.9372549f, 0.8352941f, 1f);
PeachPuff = new Vector4(1f, 0.85490197f, 0.7254902f, 1f);
Peru = new Vector4(0.8039216f, 0.52156866f, 0.24705882f, 1f);
Pink = new Vector4(1f, 0.7529412f, 0.79607844f, 1f);
Plum = new Vector4(0.8666667f, 0.627451f, 0.8666667f, 1f);
PowderBlue = new Vector4(0.6901961f, 0.8784314f, 0.9019608f, 1f);
Purple = new Vector4(0.5019608f, 0f, 0.5019608f, 1f);
Red = new Vector4(1f, 0f, 0f, 1f);
RosyBrown = new Vector4(0.7372549f, 0.56078434f, 0.56078434f, 1f);
RoyalBlue = new Vector4(0.25490198f, 0.4117647f, 0.88235295f, 1f);
SaddleBrown = new Vector4(0.54509807f, 0.27058825f, 0.07450981f, 1f);
Salmon = new Vector4(0.98039216f, 0.5019608f, 0.44705883f, 1f);
SandyBrown = new Vector4(0.95686275f, 0.6431373f, 0.3764706f, 1f);
SeaGreen = new Vector4(0.18039216f, 0.54509807f, 0.34117648f, 1f);
SeaShell = new Vector4(1f, 0.9607843f, 0.93333334f, 1f);
Sienna = new Vector4(0.627451f, 0.32156864f, 0.1764706f, 1f);
Silver = new Vector4(0.7529412f, 0.7529412f, 0.7529412f, 1f);
SkyBlue = new Vector4(0.5294118f, 0.80784315f, 0.92156863f, 1f);
SlateBlue = new Vector4(0.41568628f, 0.3529412f, 0.8039216f, 1f);
SlateGray = new Vector4(0.4392157f, 0.5019608f, 0.5647059f, 1f);
Snow = new Vector4(1f, 0.98039216f, 0.98039216f, 1f);
SpringGreen = new Vector4(0f, 1f, 0.49803922f, 1f);
SteelBlue = new Vector4(0.27450982f, 0.50980395f, 0.7058824f, 1f);
Tan = new Vector4(0.8235294f, 0.7058824f, 0.54901963f, 1f);
Teal = new Vector4(0f, 0.5019608f, 0.5019608f, 1f);
Thistle = new Vector4(0.84705883f, 0.7490196f, 0.84705883f, 1f);
Tomato = new Vector4(1f, 0.3882353f, 0.2784314f, 1f);
Turquoise = new Vector4(0.2509804f, 0.8784314f, 0.8156863f, 1f);
Violet = new Vector4(0.93333334f, 0.50980395f, 0.93333334f, 1f);
Wheat = new Vector4(0.9607843f, 0.87058824f, 0.7019608f, 1f);
White = new Vector4(1f, 1f, 1f, 1f);
WhiteSmoke = new Vector4(0.9607843f, 0.9607843f, 0.9607843f, 1f);
Yellow = new Vector4(1f, 1f, 0f, 1f);
YellowGreen = new Vector4(0.6039216f, 0.8039216f, 0.19607843f, 1f);
}

public static readonly Vector4 Transparent;
public static readonly Vector4 AliceBlue;
public static readonly Vector4 AntiqueWhite;
public static readonly Vector4 Aqua;
public static readonly Vector4 Aquamarine;
public static readonly Vector4 Azure;
public static readonly Vector4 Beige;
public static readonly Vector4 Bisque;
public static readonly Vector4 Black;
public static readonly Vector4 BlanchedAlmond;
public static readonly Vector4 Blue;
public static readonly Vector4 BlueViolet;
public static readonly Vector4 Brown;
public static readonly Vector4 BurlyWood;
public static readonly Vector4 CadetBlue;
public static readonly Vector4 Chartreuse;
public static readonly Vector4 Chocolate;
public static readonly Vector4 Coral;
public static readonly Vector4 CornflowerBlue;
public static readonly Vector4 Cornsilk;
public static readonly Vector4 Crimson;
public static readonly Vector4 Cyan;
public static readonly Vector4 DarkBlue;
public static readonly Vector4 DarkCyan;
public static readonly Vector4 DarkGoldenrod;
public static readonly Vector4 DarkGray;
public static readonly Vector4 DarkGreen;
public static readonly Vector4 DarkKhaki;
public static readonly Vector4 DarkMagenta;
public static readonly Vector4 DarkOliveGreen;
public static readonly Vector4 DarkOrange;
public static readonly Vector4 DarkOrchid;
public static readonly Vector4 DarkRed;
public static readonly Vector4 DarkSalmon;
public static readonly Vector4 DarkSeaGreen;
public static readonly Vector4 DarkSlateBlue;
public static readonly Vector4 DarkSlateGray;
public static readonly Vector4 DarkTurquoise;
public static readonly Vector4 DarkViolet;
public static readonly Vector4 DeepPink;
public static readonly Vector4 DeepSkyBlue;
public static readonly Vector4 DimGray;
public static readonly Vector4 DodgerBlue;
public static readonly Vector4 Firebrick;
public static readonly Vector4 FloralWhite;
public static readonly Vector4 ForestGreen;
public static readonly Vector4 Fuchsia;
public static readonly Vector4 Gainsboro;
public static readonly Vector4 GhostWhite;
public static readonly Vector4 Gold;
public static readonly Vector4 Goldenrod;
public static readonly Vector4 Gray;
public static readonly Vector4 Green;
public static readonly Vector4 GreenYellow;
public static readonly Vector4 Honeydew;
public static readonly Vector4 HotPink;
public static readonly Vector4 IndianRed;
public static readonly Vector4 Indigo;
public static readonly Vector4 Ivory;
public static readonly Vector4 Khaki;
public static readonly Vector4 Lavender;
public static readonly Vector4 LavenderBlush;
public static readonly Vector4 LawnGreen;
public static readonly Vector4 LemonChiffon;
public static readonly Vector4 LightBlue;
public static readonly Vector4 LightCoral;
public static readonly Vector4 LightCyan;
public static readonly Vector4 LightGoldenrodYellow;
public static readonly Vector4 LightGray;
public static readonly Vector4 LightGreen;
public static readonly Vector4 LightPink;
public static readonly Vector4 LightSalmon;
public static readonly Vector4 LightSeaGreen;
public static readonly Vector4 LightSkyBlue;
public static readonly Vector4 LightSlateGray;
public static readonly Vector4 LightSteelBlue;
public static readonly Vector4 LightYellow;
public static readonly Vector4 Lime;
public static readonly Vector4 LimeGreen;
public static readonly Vector4 Linen;
public static readonly Vector4 Magenta;
public static readonly Vector4 Maroon;
public static readonly Vector4 MediumAquamarine;
public static readonly Vector4 MediumBlue;
public static readonly Vector4 MediumOrchid;
public static readonly Vector4 MediumPurple;
public static readonly Vector4 MediumSeaGreen;
public static readonly Vector4 MediumSlateBlue;
public static readonly Vector4 MediumSpringGreen;
public static readonly Vector4 MediumTurquoise;
public static readonly Vector4 MediumVioletRed;
public static readonly Vector4 MidnightBlue;
public static readonly Vector4 MintCream;
public static readonly Vector4 MistyRose;
public static readonly Vector4 Moccasin;
public static readonly Vector4 MonoGameOrange;
public static readonly Vector4 NavajoWhite;
public static readonly Vector4 Navy;
public static readonly Vector4 OldLace;
public static readonly Vector4 Olive;
public static readonly Vector4 OliveDrab;
public static readonly Vector4 Orange;
public static readonly Vector4 OrangeRed;
public static readonly Vector4 Orchid;
public static readonly Vector4 PaleGoldenrod;
public static readonly Vector4 PaleGreen;
public static readonly Vector4 PaleTurquoise;
public static readonly Vector4 PaleVioletRed;
public static readonly Vector4 PapayaWhip;
public static readonly Vector4 PeachPuff;
public static readonly Vector4 Peru;
public static readonly Vector4 Pink;
public static readonly Vector4 Plum;
public static readonly Vector4 PowderBlue;
public static readonly Vector4 Purple;
public static readonly Vector4 Red;
public static readonly Vector4 RosyBrown;
public static readonly Vector4 RoyalBlue;
public static readonly Vector4 SaddleBrown;
public static readonly Vector4 Salmon;
public static readonly Vector4 SandyBrown;
public static readonly Vector4 SeaGreen;
public static readonly Vector4 SeaShell;
public static readonly Vector4 Sienna;
public static readonly Vector4 Silver;
public static readonly Vector4 SkyBlue;
public static readonly Vector4 SlateBlue;
public static readonly Vector4 SlateGray;
public static readonly Vector4 Snow;
public static readonly Vector4 SpringGreen;
public static readonly Vector4 SteelBlue;
public static readonly Vector4 Tan;
public static readonly Vector4 Teal;
public static readonly Vector4 Thistle;
public static readonly Vector4 Tomato;
public static readonly Vector4 Turquoise;
public static readonly Vector4 Violet;
public static readonly Vector4 Wheat;
public static readonly Vector4 White;
public static readonly Vector4 WhiteSmoke;
public static readonly Vector4 Yellow;
public static readonly Vector4 YellowGreen;
}

0 comments on commit 60d0975

Please sign in to comment.