diff options
| author | aura <nw@moneybot.cc> | 2026-08-11 19:10:16 +0200 |
|---|---|---|
| committer | aura <nw@moneybot.cc> | 2026-08-11 19:10:16 +0200 |
| commit | 17c07b5f884453130d8be3a6d91d730d80d4f8ae (patch) | |
| tree | 6ec11e5e5f7f0be9ed899196c2897aa76a907de2 /src/gui/console.h | |
| parent | 1aa17de9188790f049c0edc4281597cb4e535627 (diff) | |
| parent | 0a9d7ce6a0764a87766ebb23cc1ece4c26c8c678 (diff) | |
Merge remote-tracking branch 'origin/day'
Diffstat (limited to 'src/gui/console.h')
| -rw-r--r-- | src/gui/console.h | 67 |
1 files changed, 67 insertions, 0 deletions
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<GUI_CONTEXTMENU_ITEM> items{}; + CONSOLE_MENU_INPUT_MODE mode{}; + char query[GUI_TEXTBOX_MAX]{}; + GUI_CONTEXTMENU* menu{}; + LIST<CVAR*> cvars{}; + U32 history_size{}; + U32 cvar_count{}; + U8 suppressed{}; + } input; + + struct GUI_CONSOLEWINDOW_OUTPUT_MENU { + LIST<GUI_CONTEXTMENU_ITEM> items{}; + GUI_CONTEXTMENU* menu{}; + } output; + } menus; + + LIST<CONSOLE_WRAPPED_LINE> 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{}; +}; |
