Text editor: Remove prototype. Update README
This commit is contained in:
@@ -34,7 +34,7 @@ main :: proc(): int {
|
||||
|
||||
SANDBOX_TEXT_EDITOR :: 1;
|
||||
SANDBOX_PROTOTYPE :: 2;
|
||||
sandbox_chosen := SANDBOX_PROTOTYPE;
|
||||
sandbox_chosen := SANDBOX_TEXT_EDITOR;
|
||||
|
||||
for !WindowShouldClose() {
|
||||
screen_size: Vector2 = {:f32(GetScreenWidth()), :f32(GetScreenHeight())};
|
||||
|
||||
@@ -1,58 +1,3 @@
|
||||
Inited: bool;
|
||||
Perm: MA_Arena;
|
||||
Transcripts: TranscriptStack;
|
||||
|
||||
SearchBar: TE.Buffer;
|
||||
FilenamesBuffer: TE.Buffer;
|
||||
ResultsBuffer: TE.Buffer;
|
||||
|
||||
UpdatePrototype :: proc(rect: Rect2P, font: Font, font_size: float, font_spacing: float) {
|
||||
if !Inited {
|
||||
Inited = true;
|
||||
for iter := OS_IterateFiles(&Perm, S8("C:/video")); OS_IsValid(iter); OS_Advance(&iter) {
|
||||
if S8_EndsWith(iter.absolute_path, S8(".srt"), true) {
|
||||
file_content := OS_ReadFile(&Perm, iter.absolute_path);
|
||||
PushTranscript(&Transcripts, {
|
||||
absolute_path = STR(iter.absolute_path),
|
||||
file_content = STR(file_content)});
|
||||
}
|
||||
}
|
||||
|
||||
for i := 0; i < Transcripts.len; i += 1 {
|
||||
TE.ReplaceText(&FilenamesBuffer, {FilenamesBuffer.len, FilenamesBuffer.len}, Transcripts.data[i].absolute_path);
|
||||
TE.ReplaceText(&FilenamesBuffer, {FilenamesBuffer.len, FilenamesBuffer.len}, "\n");
|
||||
}
|
||||
TE.ReplaceText(&ResultsBuffer, {ResultsBuffer.len, ResultsBuffer.len}, Transcripts.data[0].file_content);
|
||||
TE.ReplaceText(&SearchBar, {SearchBar.len, SearchBar.len}, "");
|
||||
|
||||
TE.AddWindow({buffer = &SearchBar});
|
||||
TE.AddWindow({buffer = &ResultsBuffer, flags = TE.WindowFlags_DrawScrollbar});
|
||||
TE.FocusedWindow = &TE.WindowStack[0];
|
||||
TE.FocusedWindow = nil;
|
||||
}
|
||||
|
||||
// Te.ComputeWindowRects(rect);
|
||||
TE.WindowStack[0].rect = CutTop(&rect, font_size * 2);
|
||||
TE.WindowStack[1].rect = CutLeft(&rect, 1.0 * GetRectX(rect));
|
||||
|
||||
TE.UpdateAndDrawWindows(font, font_size);
|
||||
}
|
||||
|
||||
S8 :: proc(str: String): S8_String { return {str = str.str, len = :i64(str.len)}; }
|
||||
STR :: proc(str: S8_String): String { return {str = str.str, len = :int(str.len)}; }
|
||||
|
||||
Transcript :: struct {
|
||||
file_content: String;
|
||||
absolute_path: String;
|
||||
}
|
||||
|
||||
TranscriptStack :: struct {
|
||||
data: [2048]Transcript;
|
||||
len: int;
|
||||
}
|
||||
|
||||
PushTranscript :: proc(stack: *TranscriptStack, t: Transcript) {
|
||||
assert(stack.len + 1 < lengthof(stack.data));
|
||||
stack.data[stack.len] = t;
|
||||
stack.len += 1;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user