Remove console designate null view/buffer as console

This commit is contained in:
Krzosa Karol
2024-08-10 08:41:04 +02:00
parent 90aaa375d0
commit 26b0ba4828
4 changed files with 24 additions and 71 deletions

View File

@@ -81,14 +81,6 @@ void ToggleFullscreen() {
IsInFullscreen = !IsInFullscreen;
}
void ToggleConsole() {
if (ToggleVisibility(ConsoleWindowID)) {
SetActiveWindow(ConsoleWindowID);
} else {
SetActiveWindow(GetLastActiveWindow());
}
}
void CheckpointBeforeGoto(WindowID window_id, ViewID view_id) {
Window *window = GetWindow(window_id);
View *view = GetView(view_id);
@@ -427,10 +419,6 @@ bool GlobalCommand(Event event) {
}
}
if (Ctrl(SDLK_GRAVE)) {
ToggleConsole();
}
if (CtrlShift(SDLK_BACKSLASH)) {
AddRowWindow();
} else if (Ctrl(SDLK_BACKSLASH)) {
@@ -469,15 +457,6 @@ bool GlobalCommand(Event event) {
return run_window_command;
}
View *FindView(BufferID buffer_id) {
For(Views) {
if (it.active_buffer == buffer_id) {
return ⁢
}
}
return NULL;
}
void Command_Append(ViewID view_id, String16 string, bool scroll_to_end_if_cursor_on_last_line) {
View *view = GetView(view_id);
Buffer *buffer = GetBuffer(view->active_buffer);
@@ -516,19 +495,25 @@ void ReportErrorf(const char *fmt, ...) {
Scratch scratch;
STRING_FORMAT(scratch, fmt, string);
SDL_ShowSimpleMessageBox(SDL_MESSAGEBOX_ERROR, "Error!", string.data, NULL);
Command_Append(ConsoleViewID, string, true);
Command_Append(NullViewID, string, true);
}
void ReportConsolef(const char *fmt, ...) {
Scratch scratch;
STRING_FORMAT(scratch, fmt, string);
Command_Append(ConsoleViewID, string, true);
Command_Append(NullViewID, string, true);
}
void ReportWarningf(const char *fmt, ...) {
Scratch scratch;
STRING_FORMAT(scratch, fmt, string);
Command_Append(ConsoleViewID, string, true);
SetVisibility(ConsoleWindowID, true);
SetActiveWindow(ConsoleWindowID);
Command_Append(NullViewID, string, true);
Window *window = GetWindowWithView(NullViewID);
if (!window) {
WindowID last_active_window_id = GetLastActiveWindow();
window = GetWindow(last_active_window_id);
}
CheckpointBeforeGoto(window->id);
window->active_view = NullViewID;
SetActiveWindow(window->id);
}

View File

@@ -109,7 +109,7 @@ int Lua_AppendCmd(lua_State *L) {
String string = lua_tostring(L, 1);
lua_pop(L, 1);
String working_dir = GetCurrentBufferDir();
Exec(ConsoleViewID, true, string, working_dir);
Exec(NullViewID, true, string, working_dir);
return 0;
}
@@ -140,7 +140,7 @@ int Lua_Print(lua_State *L) {
Scratch scratch;
String string = lua_tostring(L, 1);
lua_pop(L, 1);
Command_Append(ConsoleViewID, string, true);
Command_Append(NullViewID, string, true);
return 0;
}
@@ -161,8 +161,6 @@ int Lua_ListBuffers(lua_State *L) {
Command_SelectEntireBuffer(view);
Command_Replace(view, string16);
Command_SelectRangeOneCursor(view, {});
Command_Replace(view, L"\n");
Command_SelectRangeOneCursor(view, {});
return 0;
}

View File

@@ -9,10 +9,8 @@ Array<Window> Windows = {};
WindowID NullWindowID;
BufferID NullBufferID;
ViewID NullViewID;
WindowID DebugWindowID;
WindowID ConsoleWindowID;
ViewID ConsoleViewID;
WindowID DebugWindowID;
BufferID DebugBufferID;
// @note:
@@ -137,6 +135,15 @@ void SetActiveWindow(WindowID window) {
}
}
View *FindView(BufferID buffer_id) {
For(Views) {
if (it.active_buffer == buffer_id) {
return &it;
}
}
return NULL;
}
Window *GetWindowWithView(ViewID view_id) {
ForItem(window, Windows) {
if (window.active_view.id == view_id.id) {

View File

@@ -121,7 +121,7 @@ String BuffCWD(String string) {
void InitScratchBuffer() {
Allocator sys_allocator = GetSystemAllocator();
Buffer *null_buffer = CreateBuffer(sys_allocator, BuffCWD("+scratch"));
Buffer *null_buffer = CreateBuffer(sys_allocator, BuffCWD("+console"));
View *null_view = CreateView(null_buffer->id);
}
@@ -147,27 +147,6 @@ void InitWindows() {
CreateTitlebar(window_id);
}
{
Window *window = CreateWindow();
WindowID window_id = window->id;
ConsoleWindowID = window_id;
window->invisible_when_inactive = true;
window->deactivate_on_escape = true;
window->absolute_position = true;
window->dont_save_in_active_window_history = true;
Buffer *buffer = CreateBuffer(sys_allocator, BuffCWD("+console"));
// buffer->no_history = true;
View *view = CreateView(buffer->id);
ConsoleViewID = view->id;
window->active_view = view->id;
CreateTitlebar(window_id);
SetVisibility(window_id, false);
}
{
Window *window = CreateWindow();
WindowID window_id = window->id;
@@ -202,22 +181,6 @@ void LayoutWindows() {
float line_numbers_size = (float)FontCharSpacing * 10;
float sizex = (float)GetSize(screen_rect).x;
{
Window *window = GetWindow(ConsoleWindowID);
if (window->visible) {
Vec2I size = GetSize(screen_rect);
window->total_rect = CutBottom(&screen_rect, (Int)((float)size.y * 0.5f));
Window *title_bar_window = GetWindow(window->title_bar_window);
title_bar_window->total_rect = CutBottom(&window->total_rect, GetTitleBarSize(title_bar_window));
title_bar_window->document_rect = title_bar_window->total_rect;
window->document_rect = window->total_rect;
if (window->draw_scrollbar) window->scrollbar_rect = CutRight(&window->document_rect, (Int)ScrollBarSize);
if (window->draw_line_numbers) window->line_numbers_rect = CutLeft(&window->document_rect, (Int)line_numbers_size);
}
}
Scratch scratch;
Array<VisualColumn> columns = GetVisualColumns(scratch);