From 52d8efdfdec6477c2ec320b4c26db2fa42ca990d Mon Sep 17 00:00:00 2001 From: BannZay Date: Sun, 21 Aug 2016 02:47:39 +0300 Subject: [PATCH] editor searchBar added --- src/game/editor/editor.cpp | 29 +++++++++++++++++++++++++++-- src/game/editor/editor.h | 1 + 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/src/game/editor/editor.cpp b/src/game/editor/editor.cpp index de448ee29..64810d926 100644 --- a/src/game/editor/editor.cpp +++ b/src/game/editor/editor.cpp @@ -3818,10 +3818,10 @@ void CEditor::RenderFileDialog() aPath[0] = 0; str_format(aBuf, sizeof(aBuf), "Current path: %s", aPath); UI()->DoLabel(&PathBox, aBuf, 10.0f, -1, -1); - - // filebox + if(m_FileDialogStorageType == IStorage::TYPE_SAVE) { + // filebox static float s_FileBoxID = 0; UI()->DoLabel(&FileBoxLabel, "Filename:", 10.0f, -1, -1); if(DoEditBox(&s_FileBoxID, &FileBox, m_aFileDialogFileName, sizeof(m_aFileDialogFileName), 10.0f, &s_FileBoxID)) @@ -3833,6 +3833,29 @@ void CEditor::RenderFileDialog() m_FilesSelectedIndex = -1; } } + else + { + //searchbox + FileBox.VSplitRight(250, &FileBox, 0); + CUIRect ClearBox; + FileBox.VSplitRight(15, &FileBox, &ClearBox); + + static float s_SearchBoxID = 0; + UI()->DoLabel(&FileBoxLabel, "Search:", 10.0f, -1, -1); + DoEditBox(&s_SearchBoxID, &FileBox, m_aFileDialogSearchText, sizeof(m_aFileDialogSearchText), 10.0f, &s_SearchBoxID,false,CUI::CORNER_L); + + // clearSearchbox button + { + static int s_ClearButton = 0; + RenderTools()->DrawUIRect(&ClearBox, vec4(1, 1, 1, 0.33f)*ButtonColorMul(&s_ClearButton), CUI::CORNER_R, 3.0f); + UI()->DoLabel(&ClearBox, "×", 10.0f, 0); + if (UI()->DoButtonLogic(&s_ClearButton, "×", 0, &ClearBox)) + { + m_aFileDialogSearchText[0] = 0; + UI()->SetActiveItem(&s_SearchBoxID); + } + } + } int Num = (int)(View.h/17.0f)+1; static int ScrollBar = 0; @@ -3945,6 +3968,7 @@ void CEditor::RenderFileDialog() UI()->ClipEnable(&View); for(int i = 0; i < m_FileList.size(); i++) + if (!m_aFileDialogSearchText[0] || str_find_nocase (m_FileList[i].m_aName, m_aFileDialogSearchText)) AddFileDialogEntry(i, &View); // disable clipping again @@ -4082,6 +4106,7 @@ void CEditor::InvokeFileDialog(int StorageType, int FileType, const char *pTitle m_pfnFileDialogFunc = pfnFunc; m_pFileDialogUser = pUser; m_aFileDialogFileName[0] = 0; + m_aFileDialogSearchText[0] = 0; m_aFileDialogCurrentFolder[0] = 0; m_aFileDialogCurrentLink[0] = 0; m_pFileDialogPath = m_aFileDialogCurrentFolder; diff --git a/src/game/editor/editor.h b/src/game/editor/editor.h index 479ac168b..66c5b10de 100644 --- a/src/game/editor/editor.h +++ b/src/game/editor/editor.h @@ -810,6 +810,7 @@ public: char m_aFileDialogFileName[MAX_PATH_LENGTH]; char m_aFileDialogCurrentFolder[MAX_PATH_LENGTH]; char m_aFileDialogCurrentLink[MAX_PATH_LENGTH]; + char m_aFileDialogSearchText[64]; char *m_pFileDialogPath; bool m_aFileDialogActivate; int m_FileDialogFileType;