From 5ca56b47dfe3d79fedf1ab119f4ea34db1fbe163 Mon Sep 17 00:00:00 2001 From: Chee Yee Date: Mon, 13 Mar 2023 04:56:04 -0700 Subject: [PATCH] add copy/paste function in text editor --- CMakeLists.txt | 2 +- data/assets/fonts/OpenFontIcons.ttf | Bin 0 -> 26864 bytes data/assets/langs/English.ini | 2 ++ source/OpenFontIcons.h | 4 ++++ source/imgui/imgui_internal.h | 2 +- source/lang.cpp | 2 ++ source/lang.h | 6 ++++-- source/main.cpp | 12 +++++++++--- source/windows.cpp | 14 +++++++++++++- 9 files changed, 36 insertions(+), 8 deletions(-) create mode 100644 data/assets/fonts/OpenFontIcons.ttf create mode 100644 source/OpenFontIcons.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 0878477..472cc66 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -58,7 +58,7 @@ add_executable(ezremote_client add_self(ezremote_client) -add_pkg(ezremote_client ${CMAKE_SOURCE_DIR}/data "RMTC00001" "ezRemote Client" "01.04" 32 0) +add_pkg(ezremote_client ${CMAKE_SOURCE_DIR}/data "RMTC00001" "ezRemote Client" "01.05" 32 0) target_link_libraries(ezremote_client c diff --git a/data/assets/fonts/OpenFontIcons.ttf b/data/assets/fonts/OpenFontIcons.ttf new file mode 100644 index 0000000000000000000000000000000000000000..804fbc1cdc8d3c7440c7d10b0df6ef77b8957468 GIT binary patch literal 26864 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 ImBitAr #define ImGuiKey_NavGamepadTweakFast ImGuiKey_GamepadR1 #define ImGuiKey_NavGamepadActivate ImGuiKey_GamepadFaceDown #define ImGuiKey_NavGamepadCancel ImGuiKey_GamepadFaceRight -#define ImGuiKey_NavGamepadMenu ImGuiKey_GamepadFaceLeft +#define ImGuiKey_NavGamepadMenu ImGuiKey_Keypad0 #define ImGuiKey_NavGamepadInput ImGuiKey_GamepadFaceUp enum ImGuiInputEventType diff --git a/source/lang.cpp b/source/lang.cpp index 23b0925..a0a2231 100644 --- a/source/lang.cpp +++ b/source/lang.cpp @@ -150,6 +150,8 @@ char lang_strings[LANG_STRINGS_NUM][LANG_STR_SIZE] = { "Client Secret", // STR_CLIENT_SECRET "Global", // STR_GLOBAL "Google", // STR_GOOGLE + "Copy selected line", // STR_COPY_LINE + "Paste into selected line", // STR_PASTE_LINE }; bool needs_extended_font = false; diff --git a/source/lang.h b/source/lang.h index bf0a2aa..9c80513 100644 --- a/source/lang.h +++ b/source/lang.h @@ -141,7 +141,9 @@ FUNC(STR_CLIENT_ID) \ FUNC(STR_CLIENT_SECRET) \ FUNC(STR_GLOBAL) \ - FUNC(STR_GOOGLE) + FUNC(STR_GOOGLE) \ + FUNC(STR_COPY_LINE) \ + FUNC(STR_PASTE_LINE) #define GET_VALUE(x) x, #define GET_STRING(x) #x, @@ -151,7 +153,7 @@ enum FOREACH_STR(GET_VALUE) }; -#define LANG_STRINGS_NUM 138 +#define LANG_STRINGS_NUM 140 #define LANG_ID_SIZE 64 #define LANG_STR_SIZE 384 extern char lang_identifiers[LANG_STRINGS_NUM][LANG_ID_SIZE]; diff --git a/source/main.cpp b/source/main.cpp index 14c380a..62e58a0 100644 --- a/source/main.cpp +++ b/source/main.cpp @@ -99,7 +99,7 @@ void InitImgui() 0, }; - static const ImWchar icons[] { + static const ImWchar fa_icons[] { 0xF07B, 0xF07B, // folder 0xF65E, 0xF65E, // new folder 0xF15B, 0xF15B, // file @@ -127,6 +127,12 @@ void InitImgui() 0, }; + static const ImWchar of_icons[] { + 0xE0CB, 0xE0CB, // square + 0xE0DE, 0xE0DE, // triangle + 0, + }; + std::string lang = std::string(language); int32_t lang_idx; sceSystemServiceParamGetInt( ORBIS_SYSTEM_SERVICE_PARAM_ID_LANG, &lang_idx ); @@ -177,7 +183,8 @@ void InitImgui() ImFontConfig config; config.MergeMode = true; config.GlyphMinAdvanceX = 13.0f; // Use if you want to make the icon monospaced - io.Fonts->AddFontFromFileTTF("/app0/assets/fonts/fa-solid-900.ttf", 20.0f, &config, icons); + io.Fonts->AddFontFromFileTTF("/app0/assets/fonts/fa-solid-900.ttf", 20.0f, &config, fa_icons); + io.Fonts->AddFontFromFileTTF("/app0/assets/fonts/OpenFontIcons.ttf", 20.0f, &config, of_icons); io.Fonts->Flags |= ImFontAtlasFlags_NoPowerOfTwoHeight; io.Fonts->Build(); @@ -307,7 +314,6 @@ int main() ImGui_ImplSDL2_InitForSDLRenderer(window, renderer); ImGui_ImplSDLRenderer_Init(renderer); ImGui_ImplSDLRenderer_CreateFontsTexture(); - ImGui_ImplSDL2_DisableButton(SDL_CONTROLLER_BUTTON_X, true); if (!initialize_jbc()) { diff --git a/source/windows.cpp b/source/windows.cpp index 385174f..b244292 100644 --- a/source/windows.cpp +++ b/source/windows.cpp @@ -13,6 +13,7 @@ #include "lang.h" #include "ime_dialog.h" #include "IconsFontAwesome6.h" +#include "OpenFontIcons.h" #include "server/http_server.h" #include "clients/gdrive.h" @@ -77,6 +78,7 @@ char label[256]; bool editor_modified = false; char edit_file[256]; int edit_line_to_select = -1; +std::string copy_text; // Overwrite dialog variables bool dont_prompt_overwrite = false; @@ -1519,6 +1521,15 @@ namespace Windows editor_modified = true; edit_line_to_select = j; } + else if (ImGui::IsKeyPressed(ImGuiKey_GamepadFaceLeft, false)) + { + copy_text = std::string(it->c_str()); + } + else if (ImGui::IsKeyPressed(ImGuiKey_GamepadFaceUp, false)) + { + it->clear(); + it->append(copy_text); + } } j++; } @@ -1534,7 +1545,8 @@ namespace Windows ImGui::Text("%s%s", (editor_modified ? "**" : ""), edit_file); ImGui::Separator(); - ImGui::Text("L1 - %s R1 - %s", lang_strings[STR_DELETE_LINE], lang_strings[STR_INSERT_LINE]); + ImGui::Text("L1 - %s R1 - %s %s - %s %s - %s", lang_strings[STR_DELETE_LINE], lang_strings[STR_INSERT_LINE], + ICON_OF_SQUARE, lang_strings[STR_COPY_LINE], ICON_OF_TRIANGLE, lang_strings[STR_PASTE_LINE]); ImGui::EndPopup(); } }