Enhance ClickableText function to improve hover effects and add color management; update Theme struct to include clickable text colors

This commit is contained in:
scawful
2025-03-10 11:42:33 -04:00
parent 5607ef7702
commit c8ce2843b1
3 changed files with 7 additions and 6 deletions

View File

@@ -189,13 +189,12 @@ void Paragraph(const std::string& text) {
}
bool ClickableText(const std::string& text) {
static auto color = ImGui::GetStyleColorVec4(ImGuiCol_Text);
ImGui::TextColored(color, "%s", text.c_str());
if (ImGui::IsItemHovered()) {
ImGui::SetMouseCursor(ImGuiMouseCursor_Hand);
auto color = ImGui::GetStyleColorVec4(ImGuiCol_TabHovered);
ImGui::TextColored(color, "%s", text.c_str());
color = ImGui::GetStyleColorVec4(ImGuiCol_TabHovered);
} else {
auto color = ImGui::GetStyleColorVec4(ImGuiCol_Tab);
ImGui::TextColored(color, "%s", text.c_str());
color = ImGui::GetStyleColorVec4(ImGuiCol_Text);
}
return ImGui::IsItemClicked();
}

View File

@@ -43,7 +43,6 @@ absl::Status ParseThemeContents(const std::string &key,
}
return absl::OkStatus();
}
} // namespace
absl::StatusOr<Theme> LoadTheme(const std::string &filename) {

View File

@@ -33,6 +33,9 @@ struct Theme {
Color button;
Color button_hovered;
Color button_active;
Color clickable_text;
Color clickable_text_hovered;
};
absl::StatusOr<Theme> LoadTheme(const std::string &filename);