Implemented Files app (#33)

- Created Files app to browse PC and ESP32 files.
- Refactored toolbars so it's now a proper widget and allows for changing its properties from the app
- Toolbar now has extra action buttons
- Settings app now has a proper icon
- Minor cleanup in Desktop app
This commit is contained in:
Ken Van Hoeylandt
2024-02-06 23:18:34 +01:00
committed by GitHub
parent 93e4378a9e
commit 5880e841a3
31 changed files with 689 additions and 117 deletions
+26
View File
@@ -0,0 +1,26 @@
#include "string_utils.h"
#include <string.h>
int tt_string_find_last_index(const char* text, size_t from_index, char find) {
for (size_t i = from_index; i >= 0; i--) {
if (text[i] == find) {
return (int)i;
}
}
return -1;
}
bool tt_string_get_path_parent(const char* path, char* output) {
int index = tt_string_find_last_index(path, strlen(path) - 1, '/');
if (index == -1) {
return false;
} else if (index == 0) {
output[0] = '/';
output[1] = 0x00;
return true;
} else {
memcpy(output, path, index);
output[index] = 0x00;
return true;
}
}
+29
View File
@@ -0,0 +1,29 @@
#pragma once
#include <stdbool.h>
#include <stdio.h>
#ifdef __cplusplus
extern "C" {
#endif
/**
* Find the last occurrence of a character.
* @param[in] text the text to search in
* @param[in] from_index the index to search from (searching from right to left)
* @param[in] find the character to search for
* @return the index of the found character, or -1 if none found
*/
int tt_string_find_last_index(const char* text, size_t from_index, char find);
/**
* Given a filesystem path as input, try and get the parent path.
* @param[in] path input path
* @param[out] output an output buffer that is allocated to at least the size of "current"
* @return true when successful
*/
bool tt_string_get_path_parent(const char* path, char* output);
#ifdef __cplusplus
}
#endif