blob: 0730f1525872c82fbfa77e8c4c623c75db3a5e0c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
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{};
};
|