Add text editor, misc changes
This commit is contained in:
162
build_file.cpp
162
build_file.cpp
@@ -1,75 +1,131 @@
|
|||||||
#include "src/build_tool/library.cpp"
|
#include "src/build_tool/library.cpp"
|
||||||
|
|
||||||
|
struct Library {
|
||||||
|
Array<S8_String> sources;
|
||||||
|
Array<S8_String> objects;
|
||||||
|
S8_String include_path;
|
||||||
|
};
|
||||||
|
|
||||||
|
Library BuildZLib() {
|
||||||
|
Library l = {};
|
||||||
|
|
||||||
|
l.sources.add("../src/external/zlib-1.3.1/adler32.c");
|
||||||
|
l.sources.add("../src/external/zlib-1.3.1/compress.c");
|
||||||
|
l.sources.add("../src/external/zlib-1.3.1/crc32.c");
|
||||||
|
l.sources.add("../src/external/zlib-1.3.1/deflate.c");
|
||||||
|
l.sources.add("../src/external/zlib-1.3.1/gzclose.c");
|
||||||
|
l.sources.add("../src/external/zlib-1.3.1/gzlib.c");
|
||||||
|
l.sources.add("../src/external/zlib-1.3.1/gzread.c");
|
||||||
|
l.sources.add("../src/external/zlib-1.3.1/gzwrite.c");
|
||||||
|
l.sources.add("../src/external/zlib-1.3.1/inflate.c");
|
||||||
|
l.sources.add("../src/external/zlib-1.3.1/infback.c");
|
||||||
|
l.sources.add("../src/external/zlib-1.3.1/inftrees.c");
|
||||||
|
l.sources.add("../src/external/zlib-1.3.1/inffast.c");
|
||||||
|
l.sources.add("../src/external/zlib-1.3.1/trees.c");
|
||||||
|
l.sources.add("../src/external/zlib-1.3.1/uncompr.c");
|
||||||
|
l.sources.add("../src/external/zlib-1.3.1/zutil.c");
|
||||||
|
|
||||||
|
l.include_path = "../src/external/zlib-1.3.1/";
|
||||||
|
l.objects.add("adler32.obj");
|
||||||
|
l.objects.add("compress.obj");
|
||||||
|
l.objects.add("crc32.obj");
|
||||||
|
l.objects.add("deflate.obj");
|
||||||
|
l.objects.add("gzclose.obj");
|
||||||
|
l.objects.add("gzlib.obj");
|
||||||
|
l.objects.add("gzread.obj");
|
||||||
|
l.objects.add("gzwrite.obj");
|
||||||
|
l.objects.add("inflate.obj");
|
||||||
|
l.objects.add("infback.obj");
|
||||||
|
l.objects.add("inftrees.obj");
|
||||||
|
l.objects.add("inffast.obj");
|
||||||
|
l.objects.add("trees.obj");
|
||||||
|
l.objects.add("uncompr.obj");
|
||||||
|
l.objects.add("zutil.obj");
|
||||||
|
|
||||||
|
if (!OS_FileExists(l.objects[0])) {
|
||||||
|
Array<S8_String> cmd = {};
|
||||||
|
cmd.add("cl.exe -c -nologo -Zi -MP -FC ");
|
||||||
|
cmd.add(S8_Format(Perm, "-I %.*s ", S8_Expand(l.include_path)));
|
||||||
|
cmd += l.sources;
|
||||||
|
Run(cmd);
|
||||||
|
}
|
||||||
|
|
||||||
|
return l;
|
||||||
|
}
|
||||||
|
|
||||||
int main() {
|
int main() {
|
||||||
MA_InitScratch();
|
MA_InitScratch();
|
||||||
SRC_InitCache(Perm, "pdf_browser.cache");
|
SRC_InitCache(Perm, "pdf_browser.cache");
|
||||||
|
|
||||||
Array<S8_String> zlib_source = {};
|
|
||||||
zlib_source.add("../src/external/zlib-1.3.1/adler32.c");
|
|
||||||
zlib_source.add("../src/external/zlib-1.3.1/compress.c");
|
|
||||||
zlib_source.add("../src/external/zlib-1.3.1/crc32.c");
|
|
||||||
zlib_source.add("../src/external/zlib-1.3.1/deflate.c");
|
|
||||||
zlib_source.add("../src/external/zlib-1.3.1/gzclose.c");
|
|
||||||
zlib_source.add("../src/external/zlib-1.3.1/gzlib.c");
|
|
||||||
zlib_source.add("../src/external/zlib-1.3.1/gzread.c");
|
|
||||||
zlib_source.add("../src/external/zlib-1.3.1/gzwrite.c");
|
|
||||||
zlib_source.add("../src/external/zlib-1.3.1/inflate.c");
|
|
||||||
zlib_source.add("../src/external/zlib-1.3.1/infback.c");
|
|
||||||
zlib_source.add("../src/external/zlib-1.3.1/inftrees.c");
|
|
||||||
zlib_source.add("../src/external/zlib-1.3.1/inffast.c");
|
|
||||||
zlib_source.add("../src/external/zlib-1.3.1/trees.c");
|
|
||||||
zlib_source.add("../src/external/zlib-1.3.1/uncompr.c");
|
|
||||||
zlib_source.add("../src/external/zlib-1.3.1/zutil.c");
|
|
||||||
|
|
||||||
S8_String zlib_include = "../src/external/zlib-1.3.1/";
|
|
||||||
Array<S8_String> zlib_objects = {};
|
|
||||||
zlib_objects.add("adler32.obj");
|
|
||||||
zlib_objects.add("compress.obj");
|
|
||||||
zlib_objects.add("crc32.obj");
|
|
||||||
zlib_objects.add("deflate.obj");
|
|
||||||
zlib_objects.add("gzclose.obj");
|
|
||||||
zlib_objects.add("gzlib.obj");
|
|
||||||
zlib_objects.add("gzread.obj");
|
|
||||||
zlib_objects.add("gzwrite.obj");
|
|
||||||
zlib_objects.add("inflate.obj");
|
|
||||||
zlib_objects.add("infback.obj");
|
|
||||||
zlib_objects.add("inftrees.obj");
|
|
||||||
zlib_objects.add("inffast.obj");
|
|
||||||
zlib_objects.add("trees.obj");
|
|
||||||
zlib_objects.add("uncompr.obj");
|
|
||||||
zlib_objects.add("zutil.obj");
|
|
||||||
|
|
||||||
if (!OS_FileExists(zlib_objects[0])) {
|
|
||||||
Array<S8_String> cmd = {};
|
|
||||||
cmd.add("cl.exe -c -nologo -Zi -MP -FC ");
|
|
||||||
cmd.add(S8_Format(Perm, "-I %.*s ", S8_Expand(zlib_include)));
|
|
||||||
cmd += zlib_source;
|
|
||||||
Run(cmd);
|
|
||||||
}
|
|
||||||
|
|
||||||
int result = 0;
|
int result = 0;
|
||||||
|
|
||||||
if (0) {
|
if (0) {
|
||||||
Array<S8_String> cmd = {};
|
Array<S8_String> cmd = {};
|
||||||
cmd.add("cl.exe -nologo -Zi -MP -FC -Fe:pdf_browser.exe");
|
cmd.add("cl.exe");
|
||||||
cmd.add(S8_Format(Perm, "-I %.*s ", S8_Expand(zlib_include)));
|
cmd.add("-Fe:transcript_browser.exe");
|
||||||
cmd += zlib_objects;
|
cmd.add("-Fd:transcript_browser.pdb");
|
||||||
cmd += "Advapi32.lib";
|
cmd.add("/MP /Zi /FC /nologo");
|
||||||
cmd.add("../src/pdf_browser/main.cpp");
|
cmd.add("/WX /W3 /wd4200 /diagnostics:column");
|
||||||
cmd.add("../src/pdf_browser/win32.cpp");
|
cmd.add("/Oi");
|
||||||
|
cmd.add("-std:c++20"); // semaphore
|
||||||
|
|
||||||
|
cmd.add("-D_CRT_SECURE_NO_WARNINGS");
|
||||||
|
if (1) {
|
||||||
|
cmd.add("-DDEBUG_BUILD=1");
|
||||||
|
cmd.add("-DRELEASE_BUILD=0");
|
||||||
|
// cmd.add("-D_DEBUG /MDd");
|
||||||
|
} else {
|
||||||
|
cmd.add("-DDEBUG_BUILD=0");
|
||||||
|
cmd.add("-DRELEASE_BUILD=1");
|
||||||
|
cmd.add("/O2 /MT /DNDEBUG /GL");
|
||||||
|
}
|
||||||
|
|
||||||
|
cmd.add("-I ../src/external/raylib/include");
|
||||||
|
cmd.add("../src/transcript_browser/main.cpp");
|
||||||
|
cmd.add("../src/transcript_browser/win32.cpp");
|
||||||
|
|
||||||
|
cmd.add("/link");
|
||||||
|
cmd.add("../src/external/raylib/lib/raylib.lib");
|
||||||
|
cmd.add("opengl32.lib kernel32.lib user32.lib gdi32.lib winmm.lib msvcrt.lib shell32.lib");
|
||||||
|
cmd.add("/NODEFAULTLIB:LIBCMT");
|
||||||
|
cmd.add("/incremental:no");
|
||||||
|
|
||||||
|
OS_DeleteFile("transcript_browser.pdb");
|
||||||
result += Run(cmd);
|
result += Run(cmd);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (1) {
|
if (1) {
|
||||||
Array<S8_String> cmd = {};
|
Array<S8_String> cmd = {};
|
||||||
cmd.add("cl.exe -nologo -Zi -MP -FC -Fe:transcript_browser.exe");
|
cmd.add("cl.exe");
|
||||||
|
cmd.add("-Fe:text_editor.exe");
|
||||||
|
cmd.add("-Fd:text_editor.pdb");
|
||||||
|
cmd.add("/MP /Zi /FC /nologo");
|
||||||
|
cmd.add("/WX /W3 /wd4200 /diagnostics:column");
|
||||||
|
cmd.add("/Oi");
|
||||||
|
cmd.add("-std:c++20"); // semaphore
|
||||||
|
|
||||||
|
cmd.add("-D_CRT_SECURE_NO_WARNINGS");
|
||||||
|
if (1) {
|
||||||
|
cmd.add("-DDEBUG_BUILD=1");
|
||||||
|
cmd.add("-DRELEASE_BUILD=0");
|
||||||
|
// cmd.add("-D_DEBUG /MDd");
|
||||||
|
} else {
|
||||||
|
cmd.add("-DDEBUG_BUILD=0");
|
||||||
|
cmd.add("-DRELEASE_BUILD=1");
|
||||||
|
cmd.add("/O2 /MT /DNDEBUG /GL");
|
||||||
|
}
|
||||||
|
|
||||||
cmd.add("-I ../src/external/raylib/include");
|
cmd.add("-I ../src/external/raylib/include");
|
||||||
cmd.add("-std:c++20");
|
cmd.add("../src/text_editor/main.cpp");
|
||||||
cmd.add("../src/transcript_browser/main.cpp");
|
|
||||||
cmd.add("../src/transcript_browser/win32.cpp");
|
cmd.add("../src/transcript_browser/win32.cpp");
|
||||||
|
|
||||||
|
cmd.add("/link");
|
||||||
cmd.add("../src/external/raylib/lib/raylib.lib");
|
cmd.add("../src/external/raylib/lib/raylib.lib");
|
||||||
cmd.add("opengl32.lib kernel32.lib user32.lib gdi32.lib winmm.lib msvcrt.lib shell32.lib");
|
cmd.add("opengl32.lib kernel32.lib user32.lib gdi32.lib winmm.lib msvcrt.lib shell32.lib");
|
||||||
cmd.add("/link /NODEFAULTLIB:LIBCMT");
|
cmd.add("/NODEFAULTLIB:LIBCMT");
|
||||||
|
cmd.add("/incremental:no");
|
||||||
|
|
||||||
|
OS_DeleteFile("text_editor.pdb");
|
||||||
result += Run(cmd);
|
result += Run(cmd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -633,27 +633,27 @@ struct Array {
|
|||||||
|
|
||||||
struct UTF32Result {
|
struct UTF32Result {
|
||||||
uint32_t out_str;
|
uint32_t out_str;
|
||||||
int advance;
|
int64_t advance;
|
||||||
int error;
|
int64_t error;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct UTF8Result {
|
struct UTF8Result {
|
||||||
uint8_t out_str[4];
|
uint8_t out_str[4];
|
||||||
int len;
|
int64_t len;
|
||||||
int error;
|
int64_t error;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct UTF16Result {
|
struct UTF16Result {
|
||||||
uint16_t out_str[2];
|
uint16_t out_str[2];
|
||||||
int len;
|
int64_t len;
|
||||||
int error;
|
int64_t error;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct UTF8Iter {
|
struct UTF8Iter {
|
||||||
char *data;
|
char *data;
|
||||||
int len;
|
int64_t len;
|
||||||
int utf8_codepoint_byte_size;
|
int64_t utf8_codepoint_byte_size;
|
||||||
int i;
|
int64_t i;
|
||||||
uint32_t item;
|
uint32_t item;
|
||||||
|
|
||||||
UTF8Iter &operator++() {
|
UTF8Iter &operator++() {
|
||||||
@@ -664,7 +664,7 @@ struct UTF8Iter {
|
|||||||
friend bool operator!=(const UTF8Iter &a, const UTF8Iter &b) { return a.item != b.item; }
|
friend bool operator!=(const UTF8Iter &a, const UTF8Iter &b) { return a.item != b.item; }
|
||||||
UTF8Iter &operator*() { return *this; }
|
UTF8Iter &operator*() { return *this; }
|
||||||
UTF8Iter begin() {
|
UTF8Iter begin() {
|
||||||
UTF8Iter IterateUTF8Ex(char *data, int len);
|
UTF8Iter IterateUTF8Ex(char *data, int64_t len);
|
||||||
return {IterateUTF8Ex(data, len)};
|
return {IterateUTF8Ex(data, len)};
|
||||||
}
|
}
|
||||||
UTF8Iter end() { return {}; }
|
UTF8Iter end() { return {}; }
|
||||||
@@ -674,7 +674,7 @@ using String = Slice<char>;
|
|||||||
using String16 = Slice<wchar_t>;
|
using String16 = Slice<wchar_t>;
|
||||||
bool IsValid(UTF8Iter &iter);
|
bool IsValid(UTF8Iter &iter);
|
||||||
void Advance(UTF8Iter *iter);
|
void Advance(UTF8Iter *iter);
|
||||||
UTF8Iter IterateUTF8Ex(char *data, int len);
|
UTF8Iter IterateUTF8Ex(char *data, int64_t len);
|
||||||
UTF8Iter IterateUTF8(char *data);
|
UTF8Iter IterateUTF8(char *data);
|
||||||
UTF8Iter IterateUTF8(String string);
|
UTF8Iter IterateUTF8(String string);
|
||||||
|
|
||||||
@@ -758,7 +758,7 @@ struct Table {
|
|||||||
size_t old_cap = cap;
|
size_t old_cap = cap;
|
||||||
|
|
||||||
values = (Entry *)AllocSize(allocator, sizeof(Entry) * size);
|
values = (Entry *)AllocSize(allocator, sizeof(Entry) * size);
|
||||||
for (int i = 0; i < size; i += 1) values[i] = {};
|
for (int64_t i = 0; i < size; i += 1) values[i] = {};
|
||||||
cap = size;
|
cap = size;
|
||||||
|
|
||||||
Assert(!(old_values == 0 && len != 0));
|
Assert(!(old_values == 0 && len != 0));
|
||||||
@@ -983,7 +983,7 @@ struct Scratch {
|
|||||||
//
|
//
|
||||||
#ifdef BASIC_IMPL
|
#ifdef BASIC_IMPL
|
||||||
|
|
||||||
UTF32Result UTF16ToUTF32(uint16_t *c, int max_advance) {
|
UTF32Result UTF16ToUTF32(uint16_t *c, int64_t max_advance) {
|
||||||
UTF32Result result;
|
UTF32Result result;
|
||||||
MemoryZero(&result, sizeof(result));
|
MemoryZero(&result, sizeof(result));
|
||||||
if (max_advance >= 1) {
|
if (max_advance >= 1) {
|
||||||
@@ -1032,7 +1032,7 @@ UTF8Result UTF32ToUTF8(uint32_t codepoint) {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
UTF32Result UTF8ToUTF32(char *c, int max_advance) {
|
UTF32Result UTF8ToUTF32(char *c, int64_t max_advance) {
|
||||||
UTF32Result result;
|
UTF32Result result;
|
||||||
MemoryZero(&result, sizeof(result));
|
MemoryZero(&result, sizeof(result));
|
||||||
|
|
||||||
@@ -1101,7 +1101,7 @@ UTF16Result UTF32ToUTF16(uint32_t codepoint) {
|
|||||||
int64_t CreateCharFromWidechar(char *buffer, int64_t buffer_size, wchar_t *in, int64_t inlen) {
|
int64_t CreateCharFromWidechar(char *buffer, int64_t buffer_size, wchar_t *in, int64_t inlen) {
|
||||||
int64_t outlen = 0;
|
int64_t outlen = 0;
|
||||||
for (int64_t i = 0; i < inlen && in[i];) {
|
for (int64_t i = 0; i < inlen && in[i];) {
|
||||||
UTF32Result decode = UTF16ToUTF32((uint16_t *)(in + i), (int)(inlen - i));
|
UTF32Result decode = UTF16ToUTF32((uint16_t *)(in + i), (int64_t)(inlen - i));
|
||||||
if (!decode.error) {
|
if (!decode.error) {
|
||||||
i += decode.advance;
|
i += decode.advance;
|
||||||
UTF8Result encode = UTF32ToUTF8(decode.out_str);
|
UTF8Result encode = UTF32ToUTF8(decode.out_str);
|
||||||
@@ -1122,7 +1122,7 @@ int64_t CreateCharFromWidechar(char *buffer, int64_t buffer_size, wchar_t *in, i
|
|||||||
int64_t CreateWidecharFromChar(wchar_t *buffer, int64_t buffer_size, char *in, int64_t inlen) {
|
int64_t CreateWidecharFromChar(wchar_t *buffer, int64_t buffer_size, char *in, int64_t inlen) {
|
||||||
int64_t outlen = 0;
|
int64_t outlen = 0;
|
||||||
for (int64_t i = 0; i < inlen;) {
|
for (int64_t i = 0; i < inlen;) {
|
||||||
UTF32Result decode = UTF8ToUTF32(in + i, (int)(inlen - i));
|
UTF32Result decode = UTF8ToUTF32(in + i, (int64_t)(inlen - i));
|
||||||
if (!decode.error) {
|
if (!decode.error) {
|
||||||
i += decode.advance;
|
i += decode.advance;
|
||||||
UTF16Result encode = UTF32ToUTF16(decode.out_str);
|
UTF16Result encode = UTF32ToUTF16(decode.out_str);
|
||||||
@@ -1156,7 +1156,7 @@ void Advance(UTF8Iter *iter) {
|
|||||||
iter->item = r.out_str;
|
iter->item = r.out_str;
|
||||||
}
|
}
|
||||||
|
|
||||||
UTF8Iter IterateUTF8Ex(char *data, int len) {
|
UTF8Iter IterateUTF8Ex(char *data, int64_t len) {
|
||||||
UTF8Iter result;
|
UTF8Iter result;
|
||||||
MemoryZero(&result, sizeof(result));
|
MemoryZero(&result, sizeof(result));
|
||||||
result.data = data;
|
result.data = data;
|
||||||
@@ -1166,7 +1166,7 @@ UTF8Iter IterateUTF8Ex(char *data, int len) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
UTF8Iter IterateUTF8(char *data) {
|
UTF8Iter IterateUTF8(char *data) {
|
||||||
int length = 0;
|
int64_t length = 0;
|
||||||
while (data[length]) length += 1;
|
while (data[length]) length += 1;
|
||||||
return IterateUTF8Ex(data, length);
|
return IterateUTF8Ex(data, length);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,19 @@
|
|||||||
|
import os, sys
|
||||||
import pypdf
|
import pypdf
|
||||||
|
|
||||||
reader = pypdf.PdfReader("C:/Users/Karol/Desktop/Hegels-Logic.pdf")
|
if len(sys.argv) != 2:
|
||||||
|
print("expected single argument with filename or folder to extract text from")
|
||||||
|
exit(0)
|
||||||
|
|
||||||
f = open("asd.txt", "w", encoding="utf-8")
|
|
||||||
|
def write_pdf_for(filename):
|
||||||
|
reader = pypdf.PdfReader(filename)
|
||||||
|
extract_filename = filename + ".txt"
|
||||||
|
if os.path.exists(extract_filename):
|
||||||
|
print(f"skipping {extract_filename}, file exists")
|
||||||
|
return
|
||||||
|
|
||||||
|
f = open(extract_filename, "w", encoding="utf-8")
|
||||||
for i in range(len(reader.pages)):
|
for i in range(len(reader.pages)):
|
||||||
page = reader.pages[i]
|
page = reader.pages[i]
|
||||||
text = page.extract_text()
|
text = page.extract_text()
|
||||||
@@ -14,3 +25,13 @@ for i in range(len(reader.pages)):
|
|||||||
f.write("\n")
|
f.write("\n")
|
||||||
|
|
||||||
f.close()
|
f.close()
|
||||||
|
print(f"generated: {extract_filename}")
|
||||||
|
|
||||||
|
if os.path.isdir(sys.argv[1]):
|
||||||
|
for file in os.listdir(sys.argv[1]):
|
||||||
|
if file.endswith(".pdf"):
|
||||||
|
write_pdf_for(file)
|
||||||
|
elif os.path.isfile(sys.argv[1]):
|
||||||
|
write_pdf_for(sys.argv[1])
|
||||||
|
else:
|
||||||
|
print(f"argument you passed in: {sys.argv[1]} is not a filename or folder")
|
||||||
17
src/text_editor/main.cpp
Normal file
17
src/text_editor/main.cpp
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
#define BASIC_IMPL
|
||||||
|
#include "../pdf_browser/basic.h"
|
||||||
|
|
||||||
|
#include "raylib.h"
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
InitWindow(1280, 720, "Text editor");
|
||||||
|
SetWindowState(FLAG_WINDOW_RESIZABLE);
|
||||||
|
SetTargetFPS(60);
|
||||||
|
|
||||||
|
while (!WindowShouldClose()) {
|
||||||
|
BeginDrawing();
|
||||||
|
ClearBackground(RAYWHITE);
|
||||||
|
EndDrawing();
|
||||||
|
}
|
||||||
|
CloseWindow();
|
||||||
|
}
|
||||||
@@ -103,11 +103,11 @@ void AddFolder(String folder, Array<String> *filenames, Array<XToTimeString> *x_
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int thread_count = 16;
|
int64_t thread_count = 16;
|
||||||
Array<std::thread *> threads = {scratch};
|
Array<std::thread *> threads = {scratch};
|
||||||
int files_per_thread = srt_files.len / thread_count;
|
int64_t files_per_thread = srt_files.len / thread_count;
|
||||||
int remainder = srt_files.len % thread_count;
|
int64_t remainder = srt_files.len % thread_count;
|
||||||
int fi = 0;
|
int64_t fi = 0;
|
||||||
|
|
||||||
Array<ParseThreadIO> io = {scratch};
|
Array<ParseThreadIO> io = {scratch};
|
||||||
io.reserve(thread_count);
|
io.reserve(thread_count);
|
||||||
@@ -298,7 +298,7 @@ int main() {
|
|||||||
|
|
||||||
float font_size = 20;
|
float font_size = 20;
|
||||||
float y = 0;
|
float y = 0;
|
||||||
int xwidth = MeasureTextEx(font, "_", font_size, 1).x;
|
int xwidth = (int)MeasureTextEx(font, "_", font_size, 1).x;
|
||||||
|
|
||||||
if (ItemFound) {
|
if (ItemFound) {
|
||||||
uintptr_t begin_region = (uintptr_t)XArena.data;
|
uintptr_t begin_region = (uintptr_t)XArena.data;
|
||||||
@@ -321,7 +321,7 @@ int main() {
|
|||||||
String line = it.get_prefix(per_line);
|
String line = it.get_prefix(per_line);
|
||||||
|
|
||||||
if (ItemFound->string.data >= line.data && ItemFound->string.data < line.data + line.len) {
|
if (ItemFound->string.data >= line.data && ItemFound->string.data < line.data + line.len) {
|
||||||
DrawRectangleLines(0, y + font_size, GetRenderWidth(), 2, SKYBLUE);
|
DrawRectangleLines(0, (int)(y + font_size), GetRenderWidth(), 2, SKYBLUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
String line_terminated = Copy(*frame_arena, line);
|
String line_terminated = Copy(*frame_arena, line);
|
||||||
@@ -354,8 +354,8 @@ int main() {
|
|||||||
|
|
||||||
String string_first = Copy(*frame_arena, {(char *)begin, (int64_t)(it.data - begin)});
|
String string_first = Copy(*frame_arena, {(char *)begin, (int64_t)(it.data - begin)});
|
||||||
String string_middle = Copy(*frame_arena, it);
|
String string_middle = Copy(*frame_arena, it);
|
||||||
int width = MeasureTextEx(font, string_first.data, font_size, 1).x;
|
int width = (int)MeasureTextEx(font, string_first.data, font_size, 1).x;
|
||||||
if (chosen_text == i) DrawRectangleLines(0, y + font_size, GetRenderWidth(), 2, SKYBLUE);
|
if (chosen_text == i) DrawRectangleLines(0, (int)(y + font_size), GetRenderWidth(), 2, SKYBLUE);
|
||||||
|
|
||||||
String num = Format(*frame_arena, "%d", i);
|
String num = Format(*frame_arena, "%d", i);
|
||||||
DrawTextEx(font, num.data, {0, y}, font_size, 1, DARKGRAY);
|
DrawTextEx(font, num.data, {0, y}, font_size, 1, DARKGRAY);
|
||||||
|
|||||||
Reference in New Issue
Block a user