summaryrefslogtreecommitdiff
path: root/src/main.cpp
diff options
context:
space:
mode:
authorAldrik Ramaekers <aldrikboy@gmail.com>2024-03-03 16:58:05 +0100
committerAldrik Ramaekers <aldrikboy@gmail.com>2024-03-03 16:58:05 +0100
commit8494de283949d640f6e9da7d44edaeefc3bfd930 (patch)
tree18a94e85e9f993c943e4a96ce4958f6331bfaf5f /src/main.cpp
parentb8d8eaa8b2c46f79e8a580a402ec7c472075d073 (diff)
loading spinner while searching
Diffstat (limited to 'src/main.cpp')
-rw-r--r--src/main.cpp26
1 files changed, 16 insertions, 10 deletions
diff --git a/src/main.cpp b/src/main.cpp
index 4046004..4a26ceb 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -1,6 +1,7 @@
#include "../imgui/imgui.h"
#include "../imgui/imgui_spectrum.h"
#include "../imgui/imgui_impl_opengl3_loader.h"
+#include "../imgui/imspinner.h"
#include "../utf8.h"
#include "definitions.h"
#include "search.h"
@@ -9,11 +10,9 @@
#include <stdio.h>
-#define SEARCH_BUFFER_SIZE 2048
-
-utf8_int8_t path_buffer[SEARCH_BUFFER_SIZE];
-utf8_int8_t filter_buffer[SEARCH_BUFFER_SIZE];
-utf8_int8_t query_buffer[SEARCH_BUFFER_SIZE];
+utf8_int8_t path_buffer[MAX_INPUT_LENGTH];
+utf8_int8_t filter_buffer[MAX_INPUT_LENGTH];
+utf8_int8_t query_buffer[MAX_INPUT_LENGTH];
bool open_settings_window = false;
bool open_about_window = false;
@@ -123,6 +122,15 @@ void ts_init() {
snprintf(query_buffer, MAX_INPUT_LENGTH, "%s", "test");
}
+int _tb_query_input_cb(ImGuiInputTextCallbackData* data) {
+ if (data->EventFlag == ImGuiInputTextFlags_CallbackEdit) {
+ utf8ncpy(query_buffer, data->Buf, MAX_INPUT_LENGTH);
+ ts_start_search(path_buffer, filter_buffer, query_buffer);
+ }
+
+ return 0;
+}
+
void ts_create_gui(int window_w, int window_h) {
static float f = 0.0f;
static int counter = 0;
@@ -161,7 +169,7 @@ void ts_create_gui(int window_w, int window_h) {
ImGui::PopItemWidth();
ImGui::PushItemWidth(-1);
- ImGui::InputTextWithHint("query", "Query", query_buffer, 4000);
+ ImGui::InputTextWithHint("query", "Query", query_buffer, 4000, ImGuiInputTextFlags_CallbackEdit, _tb_query_input_cb);
ImGui::PopItemWidth();
ImGui::PopStyleVar();
}
@@ -176,11 +184,9 @@ void ts_create_gui(int window_w, int window_h) {
ImGui::PopItemWidth();
ImGui::PopStyleVar();
- ImGui::PushStyleVar(ImGuiStyleVar_FrameBorderSize, 1.0f);
- if (ImGui::Button("Search")) {
- ts_start_search(path_buffer, filter_buffer, query_buffer);
+ if (current_search_result && !current_search_result->search_completed) {
+ ImSpinner::SpinnerIncScaleDots("Spinner", 10.0f, 2.0f, ImColor(70,70,70), 5.0f);
}
- ImGui::PopStyleVar();
}
ImGui::EndChild();