diff --git a/MareSynchronos/UI/CompactUI.cs b/MareSynchronos/UI/CompactUI.cs index 93ddad4..010df66 100644 --- a/MareSynchronos/UI/CompactUI.cs +++ b/MareSynchronos/UI/CompactUI.cs @@ -145,6 +145,7 @@ namespace MareSynchronos.UI var trashButtonSize = GetIconButtonSize(FontAwesomeIcon.Trash); var textSize = ImGui.CalcTextSize(entry.OtherUID); var originalY = ImGui.GetCursorPosY(); + var buttonSizes = buttonSize.Y + trashButtonSize.Y; var textPos = originalY + buttonSize.Y / 2 - textSize.Y / 2; ImGui.SetCursorPosY(textPos); @@ -226,14 +227,19 @@ namespace MareSynchronos.UI { ImGui.SetCursorPosY(originalY); - ImGui.InputTextWithHint("", "Nick/Notes", ref _editCharComment, 255); - if (ImGui.GetIO().KeysDown[(int)ImGuiKey.Enter]) + ImGui.SetNextItemWidth(ImGui.GetWindowContentRegionWidth() - ImGui.GetCursorPosX() - buttonSizes - ImGui.GetStyle().ItemSpacing.X * 2); + if (ImGui.InputTextWithHint("", "Nick/Notes", ref _editCharComment, 255, ImGuiInputTextFlags.EnterReturnsTrue)) { _configuration.SetCurrentServerUidComment(entry.OtherUID, _editCharComment); _configuration.Save(); _editNickEntry = string.Empty; } - AttachToolTip("Hit ENTER to save"); + + if (ImGui.IsItemClicked(ImGuiMouseButton.Right)) + { + _editNickEntry = string.Empty; + } + AttachToolTip("Hit ENTER to save\nRight click to cancel"); } ImGui.SameLine(ImGui.GetWindowContentRegionMin().X + ImGui.GetWindowContentRegionWidth() - buttonSize.X); @@ -369,7 +375,7 @@ namespace MareSynchronos.UI ImGui.PushFont(UiBuilder.IconFont); ImGui.Text(FontAwesomeIcon.Upload.ToIconString()); ImGui.PopFont(); - ImGui.SameLine(35); + ImGui.SameLine(35 * ImGuiHelpers.GlobalScale); if (currentUploads.Any()) { @@ -394,7 +400,7 @@ namespace MareSynchronos.UI ImGui.PushFont(UiBuilder.IconFont); ImGui.Text(FontAwesomeIcon.Download.ToIconString()); ImGui.PopFont(); - ImGui.SameLine(35); + ImGui.SameLine(35 * ImGuiHelpers.GlobalScale); if (currentDownloads.Any()) { @@ -423,17 +429,31 @@ namespace MareSynchronos.UI { ImGui.PushID("header"); var uidText = GetUidText(); + var buttonSizeX = 0f; if (_uiShared.UidFontBuilt) ImGui.PushFont(_uiShared.UidFont); var uidTextSize = ImGui.CalcTextSize(uidText); if (_uiShared.UidFontBuilt) ImGui.PopFont(); - var originalPos = ImGui.GetCursorPosY(); + var originalPos = ImGui.GetCursorPos(); ImGui.SetWindowFontScale(1.5f); var buttonSize = GetIconButtonSize(FontAwesomeIcon.Cog); + buttonSizeX -= buttonSize.X - ImGui.GetStyle().ItemSpacing.X * 2; + ImGui.SameLine(ImGui.GetWindowContentRegionMin().X + ImGui.GetWindowContentRegionWidth() - buttonSize.X); + ImGui.SetCursorPosY(originalPos.Y + uidTextSize.Y / 2 - buttonSize.Y / 2); + if (ImGuiComponents.IconButton(FontAwesomeIcon.Cog)) + { + OpenSettingsUi?.Invoke(); + } + AttachToolTip("Open the Mare Synchronos Settings"); + + ImGui.SameLine(); //Important to draw the uidText consistently + ImGui.SetCursorPos(originalPos); + if (_apiController.ServerState is ServerState.Connected) { - ImGui.SetCursorPosY(originalPos + uidTextSize.Y / 2 - buttonSize.Y / 2); + buttonSizeX += GetIconButtonSize(FontAwesomeIcon.Copy).X - ImGui.GetStyle().ItemSpacing.X * 2; + ImGui.SetCursorPosY(originalPos.Y + uidTextSize.Y / 2 - buttonSize.Y / 2); if (ImGuiComponents.IconButton(FontAwesomeIcon.Copy)) { ImGui.SetClipboardText(_apiController.UID); @@ -443,23 +463,12 @@ namespace MareSynchronos.UI } ImGui.SetWindowFontScale(1f); - ImGui.SetCursorPosY(originalPos - uidTextSize.Y / 8); + ImGui.SetCursorPosY(originalPos.Y + buttonSize.Y / 2 - uidTextSize.Y / 2 - ImGui.GetStyle().ItemSpacing.Y / 2); + ImGui.SetCursorPosX((ImGui.GetWindowContentRegionMax().X + ImGui.GetWindowContentRegionMin().X) / 2 + buttonSizeX - uidTextSize.X / 2); if (_uiShared.UidFontBuilt) ImGui.PushFont(_uiShared.UidFont); ImGui.TextColored(GetUidColor(), uidText); if (_uiShared.UidFontBuilt) ImGui.PopFont(); - ImGui.SetWindowFontScale(1.5f); - - ImGui.SameLine(ImGui.GetWindowContentRegionMin().X + ImGui.GetWindowContentRegionWidth() - buttonSize.X); - ImGui.SetCursorPosY(originalPos + uidTextSize.Y / 2 - buttonSize.Y / 2); - if (ImGuiComponents.IconButton(FontAwesomeIcon.Cog)) - { - OpenSettingsUi?.Invoke(); - } - AttachToolTip("Open the Mare Synchronos Settings"); - - ImGui.SetWindowFontScale(1f); - if (_apiController.ServerState is not ServerState.Connected) { UiShared.ColorTextWrapped(GetServerError(), GetUidColor());