From 5419633c52c884ace2ff70a850b6387937d45182 Mon Sep 17 00:00:00 2001 From: scawful Date: Fri, 3 Oct 2025 21:11:51 -0400 Subject: [PATCH] refactor: Improve code readability by applying consistent formatting and using absl::StrContains for string checks --- src/app/core/controller.h | 11 ++-- src/app/editor/code/assembly_editor.cc | 9 +-- src/app/editor/message/message_data.h | 4 +- src/app/gui/input.cc | 81 +++++++++++++++++--------- 4 files changed, 67 insertions(+), 38 deletions(-) diff --git a/src/app/core/controller.h b/src/app/core/controller.h index d0ecb077..332fd9ad 100644 --- a/src/app/core/controller.h +++ b/src/app/core/controller.h @@ -9,7 +9,7 @@ #include "app/core/window.h" #include "app/editor/editor_manager.h" -int main(int argc, char **argv); +int main(int argc, char** argv); namespace yaze { namespace core { @@ -29,13 +29,16 @@ class Controller { void DoRender() const; void OnExit(); - auto window() -> SDL_Window * { return window_.window_.get(); } + auto window() -> SDL_Window* { return window_.window_.get(); } void set_active(bool active) { active_ = active; } auto active() const { return active_; } - auto overworld() -> yaze::zelda3::Overworld* { return editor_manager_.overworld(); } + auto overworld() -> yaze::zelda3::Overworld* { + return editor_manager_.overworld(); + } + auto GetCurrentRom() -> Rom* { return editor_manager_.GetCurrentRom(); } private: - friend int ::main(int argc, char **argv); + friend int ::main(int argc, char** argv); bool active_ = false; core::Window window_; diff --git a/src/app/editor/code/assembly_editor.cc b/src/app/editor/code/assembly_editor.cc index 38f64ec0..44b1fd7f 100644 --- a/src/app/editor/code/assembly_editor.cc +++ b/src/app/editor/code/assembly_editor.cc @@ -5,6 +5,7 @@ #include #include "absl/strings/str_cat.h" +#include "absl/strings/match.h" #include "app/core/platform/file_dialog.h" #include "app/gui/icons.h" #include "app/gui/modules/text_editor.h" @@ -21,11 +22,11 @@ std::vector RemoveIgnoredFiles( std::vector filtered_files; for (const auto& file : files) { // Remove subdirectory files - if (file.contains('/')) { + if (absl::StrContains(file, '/')) { continue; } // Make sure the file has an extension - if (!file.contains('.')) { + if (!absl::StrContains(file, '.')) { continue; } if (std::ranges::find(ignored_files, file) == ignored_files.end()) { @@ -66,11 +67,11 @@ FolderItem LoadFolder(const std::string& folder) { auto folder_files = FileDialogWrapper::GetFilesInFolder(full_folder); for (const auto& files : folder_files) { // Remove subdirectory files - if (files.contains('/')) { + if (absl::StrContains(files, '/')) { continue; } // Make sure the file has an extension - if (!files.contains('.')) { + if (!absl::StrContains(files, '.')) { continue; } if (std::ranges::find(ignored_files, files) != ignored_files.end()) { diff --git a/src/app/editor/message/message_data.h b/src/app/editor/message/message_data.h index 4eee1880..5a8f1591 100644 --- a/src/app/editor/message/message_data.h +++ b/src/app/editor/message/message_data.h @@ -6,9 +6,11 @@ #include #include #include +#include #include "absl/strings/str_format.h" #include "absl/strings/str_replace.h" +#include "absl/strings/match.h" #include "app/rom.h" namespace yaze { @@ -59,7 +61,7 @@ struct DictionaryEntry { } bool ContainedInString(std::string_view s) const { - return s.contains(Contents); + return absl::StrContains(s, Contents); } std::string ReplaceInstancesOfIn(std::string_view s) const { diff --git a/src/app/gui/input.cc b/src/app/gui/input.cc index 06e7a49b..c2115358 100644 --- a/src/app/gui/input.cc +++ b/src/app/gui/input.cc @@ -33,12 +33,14 @@ bool InputScalarLeft(const char* label, ImGuiDataType data_type, void* p_data, const char* format, float input_width, ImGuiInputTextFlags flags, bool no_step = false) { ImGuiWindow* window = ImGui::GetCurrentWindow(); - if (window->SkipItems) return false; + if (window->SkipItems) + return false; ImGuiContext& g = *GImGui; ImGuiStyle& style = g.Style; - if (format == NULL) format = DataTypeGetInfo(data_type)->PrintFmt; + if (format == NULL) + format = DataTypeGetInfo(data_type)->PrintFmt; char buf[64]; DataTypeFormatString(buf, IM_ARRAYSIZE(buf), data_type, p_data, format); @@ -106,7 +108,8 @@ bool InputScalarLeft(const char* label, ImGuiDataType data_type, void* p_data, const ImVec2 backup_frame_padding = style.FramePadding; style.FramePadding.x = style.FramePadding.y; ImGuiButtonFlags button_flags = ImGuiButtonFlags_PressedOnClick; - if (flags & ImGuiInputTextFlags_ReadOnly) BeginDisabled(); + if (flags & ImGuiInputTextFlags_ReadOnly) + BeginDisabled(); SameLine(0, style.ItemInnerSpacing.x); if (ButtonEx("-", ImVec2(button_size, button_size), button_flags)) { DataTypeApplyOp(data_type, '-', p_data, p_data, @@ -120,7 +123,8 @@ bool InputScalarLeft(const char* label, ImGuiDataType data_type, void* p_data, value_changed = true; } - if (flags & ImGuiInputTextFlags_ReadOnly) EndDisabled(); + if (flags & ImGuiInputTextFlags_ReadOnly) + EndDisabled(); style.FramePadding = backup_frame_padding; } @@ -128,7 +132,8 @@ bool InputScalarLeft(const char* label, ImGuiDataType data_type, void* p_data, EndGroup(); ImGui::PopStyleVar(2); - if (value_changed) MarkItemEdited(g.LastItemData.ID); + if (value_changed) + MarkItemEdited(g.LastItemData.ID); return value_changed; } @@ -219,29 +224,24 @@ bool ClickableText(const std::string& text) { // Render text with high-contrast appropriate color ImVec4 link_color = ImGui::GetStyleColorVec4(ImGuiCol_TextLink); ImVec4 bg_color = ImGui::GetStyleColorVec4(ImGuiCol_WindowBg); - + // Ensure good contrast against background - float contrast_factor = (bg_color.x + bg_color.y + bg_color.z) < 1.5f ? 1.0f : 0.3f; - + float contrast_factor = + (bg_color.x + bg_color.y + bg_color.z) < 1.5f ? 1.0f : 0.3f; + ImVec4 color; if (hovered) { // Brighter color on hover for better visibility - color = ImVec4( - std::min(1.0f, link_color.x + 0.3f), - std::min(1.0f, link_color.y + 0.3f), - std::min(1.0f, link_color.z + 0.3f), - 1.0f - ); + color = ImVec4(std::min(1.0f, link_color.x + 0.3f), + std::min(1.0f, link_color.y + 0.3f), + std::min(1.0f, link_color.z + 0.3f), 1.0f); } else { // Ensure link color has good contrast - color = ImVec4( - std::max(contrast_factor, link_color.x), - std::max(contrast_factor, link_color.y), - std::max(contrast_factor, link_color.z), - 1.0f - ); + color = ImVec4(std::max(contrast_factor, link_color.x), + std::max(contrast_factor, link_color.y), + std::max(contrast_factor, link_color.z), 1.0f); } - + ImGui::GetWindowDrawList()->AddText( pos, ImGui::ColorConvertFloat4ToU32(color), text.c_str()); @@ -263,10 +263,12 @@ void ItemLabel(absl::string_view title, ItemLabelFlags flags) { const ImGuiStyle& style = ImGui::GetStyle(); float fullWidth = ImGui::GetContentRegionAvail().x; float itemWidth = ImGui::CalcItemWidth() + style.ItemSpacing.x; - ImVec2 textSize = ImGui::CalcTextSize(title.data(), title.data() + title.size()); + ImVec2 textSize = + ImGui::CalcTextSize(title.data(), title.data() + title.size()); ImRect textRect; textRect.Min = ImGui::GetCursorScreenPos(); - if (flags & ItemLabelFlag::Right) textRect.Min.x = textRect.Min.x + itemWidth; + if (flags & ItemLabelFlag::Right) + textRect.Min.x = textRect.Min.x + itemWidth; textRect.Max = textRect.Min; textRect.Max.x += fullWidth - itemWidth; textRect.Max.y += textSize.y; @@ -326,7 +328,9 @@ bool InputTileInfo(const char* label, gfx::TileInfo* tile_info) { return changed; } -ImGuiID GetID(const std::string& id) { return ImGui::GetID(id.c_str()); } +ImGuiID GetID(const std::string& id) { + return ImGui::GetID(id.c_str()); +} ImGuiKey MapKeyToImGuiKey(char key) { switch (key) { @@ -429,7 +433,8 @@ void DrawMenu(Menu& menu) { ImGui::Separator(); } else if (ImGui::MenuItem(each_subitem.name.c_str(), each_subitem.shortcut.c_str())) { - if (each_subitem.callback) each_subitem.callback(); + if (each_subitem.callback) + each_subitem.callback(); } } ImGui::EndMenu(); @@ -438,9 +443,10 @@ void DrawMenu(Menu& menu) { if (each_item.name == kSeparator) { ImGui::Separator(); } else if (ImGui::MenuItem(each_item.name.c_str(), - each_item.shortcut.c_str(), - each_item.enabled_condition())) { - if (each_item.callback) each_item.callback(); + each_item.shortcut.c_str(), + each_item.enabled_condition())) { + if (each_item.callback) + each_item.callback(); } } } @@ -450,8 +456,25 @@ void DrawMenu(Menu& menu) { } bool OpenUrl(const std::string& url) { - // Open the url in the default browser + // if iOS +#ifdef __APPLE__ +#if TARGET_OS_IPHONE || TARGET_IPHONE_SIMULATOR +// no system call on iOS + return false; +#else return system(("open " + url).c_str()) == 0; +#endif +#endif + +#ifdef __linux__ + return system(("xdg-open " + url).c_str()) == 0; +#endif + +#ifdef __windows__ + return system(("start " + url).c_str()) == 0; +#endif + + return false; } void RenderLayout(const Layout& layout) {