From 2973df584978d9aae6f164ce0204179c8a28b3ae Mon Sep 17 00:00:00 2001 From: 2lag <96544487+2lag@users.noreply.github.com> Date: Sat, 8 Aug 2026 17:33:36 +0200 Subject: console, textbox changes, some other shit --- src/gui/console.h | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) (limited to 'src/gui/console.h') diff --git a/src/gui/console.h b/src/gui/console.h index e69de29..0730f15 100644 --- a/src/gui/console.h +++ b/src/gui/console.h @@ -0,0 +1,67 @@ +#pragma once +#include "base.h" + +enum RESIZE_EDGES : U8 { + RESIZE_NONE = 0, + RESIZE_LEFT = 1 << 0, + RESIZE_RIGHT = 1 << 1, + RESIZE_BOTTOM = 1 << 2 +}; + +enum CONSOLE_MENU_INPUT_MODE : U8 { + CONSOLE_MENU_INPUT_NONE = 0, + CONSOLE_MENU_INPUT_HIST = 1, + CONSOLE_MENU_INPUT_CVAR = 2 +}; + +struct CVAR; + +struct CONSOLE_WRAPPED_LINE { + STR text{}; + U64 source_id{}; +}; + +struct GUI_CONSOLEWINDOW : GUI_WINDOW { + struct GUI_CONSOLEWINDOW_MENU { + struct GUI_CONSOLEWINDOW_INPUT_MENU { + char suppressed_value[GUI_TEXTBOX_MAX]{}; + LIST items{}; + CONSOLE_MENU_INPUT_MODE mode{}; + char query[GUI_TEXTBOX_MAX]{}; + GUI_CONTEXTMENU* menu{}; + LIST cvars{}; + U32 history_size{}; + U32 cvar_count{}; + U8 suppressed{}; + } input; + + struct GUI_CONSOLEWINDOW_OUTPUT_MENU { + LIST items{}; + GUI_CONTEXTMENU* menu{}; + } output; + } menus; + + LIST wrapped_lines{}; + U64 wrapped_revision{(U64)-1}; + I32 wrapped_width{-1}; + U64 seen_revision{}; + I32 scroll_offset{}; + I32 visible_rows{}; + + U64 output_selection_anchor{}; + U64 output_selection_cursor{}; + U8 output_selection_active{}; + U8 output_selecting{}; + U8 copy_key_held{}; + + GUI_TEXTBOX* input{}; + GUI_BUTTON* close{}; + GUI_TITLE* title{}; + + RESIZE_EDGES active_edges = RESIZE_NONE; + VEC2 drag_start_mouse{}; + VEC2 drag_start_pos{}; + VEC2 drag_start_sz{}; + U8 lmb_held{}; + U8 rmb_held{}; +}; -- cgit v1.2.3