public static bool ButtonGradient(string strId, Vector2 buttonSizeVector) { String[] strIdArray = strId.Split("###"); Vector2 p = ImGuiNET.ImGui.GetCursorScreenPos(); Vector2 sizeText = ImGui.CalcTextSize(strIdArray[0]); ImDrawListPtr drawList = ImGuiNET.ImGui.GetWindowDrawList(); //ButtonHeight += ImGuiNET.ImGui.GetFrameHeight(); //Dynamically Allocated Height //float ButtonWidth = sizeText.X + ButtonHeight; //Dynamically Allocated Width float buttonHeight = buttonSizeVector.Y; //Fixed Height float buttonWidth = buttonSizeVector.X; //Dynamically Allocated Width if (buttonWidth < sizeText.X) { buttonWidth = sizeText.X + sizeText.X * 0.20f; } Vector2 buttonSize = new Vector2(p.X + buttonWidth, p.Y + buttonHeight); uint colTop; uint colBottom; if (strIdArray.Length > 1) { if (ImGuiNET.ImGui.InvisibleButton(strIdArray[1], new Vector2(buttonWidth, buttonHeight))) { return(true); } } else { if (ImGuiNET.ImGui.InvisibleButton(strIdArray[0], new Vector2(buttonWidth, buttonHeight))) { return(true); } } if (ImGuiNET.ImGui.IsItemHovered()) { colTop = ImGuiNET.ImGui.GetColorU32(ImGuiCol.ButtonActive); colBottom = ImGuiNET.ImGui.GetColorU32(ImGuiCol.ButtonHovered); } else { colTop = ImGuiNET.ImGui.GetColorU32(ImGuiCol.ButtonHovered); colBottom = ImGuiNET.ImGui.GetColorU32(ImGuiCol.Button); } drawList.AddRectFilledMultiColor(p, buttonSize, colTop, colTop, colBottom, colBottom); drawList.AddRect(p, buttonSize, ImGuiNET.ImGui.GetColorU32(ImGuiCol.ButtonActive)); drawList.AddText(new Vector2(p.X + (buttonWidth / 2) - (sizeText.X / 2), p.Y + (buttonHeight / 2) - (sizeText.Y / 2)), ImGui.GetColorU32(ImGuiCol.Text), strIdArray[0]); return(false); }
public static bool ButtonGradient(string strId) { String[] strIdArray = strId.Split("##"); Vector2 p = ImGuiNET.ImGui.GetCursorScreenPos(); Vector2 sizeText = ImGui.CalcTextSize(strIdArray[0]); ImDrawListPtr drawList = ImGuiNET.ImGui.GetWindowDrawList(); float buttonHeight = ImGuiNET.ImGui.GetFrameHeight(); float buttonWidth = sizeText.X + sizeText.X * 0.20f; Vector2 buttonSize = new Vector2(p.X + buttonWidth, p.Y + buttonHeight); uint colTop; uint colBottom; if (strIdArray.Length > 1) { if (ImGuiNET.ImGui.InvisibleButton(strIdArray[1], new Vector2(buttonWidth, buttonHeight))) { return(true); } } else { if (ImGuiNET.ImGui.InvisibleButton(strIdArray[0], new Vector2(buttonWidth, buttonHeight))) { return(true); } } if (ImGuiNET.ImGui.IsItemHovered()) { colTop = ImGuiNET.ImGui.GetColorU32(ImGuiCol.ButtonHovered, 1.50f); colBottom = ImGuiNET.ImGui.GetColorU32(ImGuiCol.Button, 0.50f); } else { colTop = ImGuiNET.ImGui.GetColorU32(ImGuiCol.ButtonHovered); colBottom = ImGuiNET.ImGui.GetColorU32(ImGuiCol.Button, 0.20f); } drawList.AddRectFilledMultiColor(p, buttonSize, colTop, colTop, colBottom, colBottom); drawList.AddRect(p, buttonSize, ImGuiNET.ImGui.GetColorU32(ImGuiCol.Separator)); drawList.AddText(new Vector2(p.X + (buttonWidth / 2) - (sizeText.X / 2), p.Y + (buttonHeight / 2) - (sizeText.Y / 2)), ImGui.GetColorU32(ImGuiCol.Text), strIdArray[0]); return(false); }