|
OpenTTD Source 20251117-master-g7398d2e290
|
Handling the GUI of the in-game console. More...
#include "stdafx.h"#include "core/string_consumer.hpp"#include "textbuf_type.h"#include "window_gui.h"#include "autocompletion.h"#include "console_gui.h"#include "console_internal.h"#include "window_func.h"#include "string_func.h"#include "strings_func.h"#include "gfx_func.h"#include "gfx_layout.h"#include "settings_type.h"#include "console_func.h"#include "rev.h"#include "video/video_driver.hpp"#include "timer/timer.h"#include "timer/timer_window.h"#include "widgets/console_widget.h"#include "table/strings.h"#include "safeguards.h"Go to the source code of this file.
Data Structures | |
| struct | IConsoleLine |
| Container for a single line of console output. More... | |
| class | ConsoleAutoCompletion |
| struct | IConsoleWindow |
Functions | |
| static bool | TruncateBuffer () |
| Remove old lines from the backlog buffer. | |
| static void | IConsoleClearCommand () |
| static void | IConsoleResetHistoryPos () |
| static std::optional< std::string_view > | IConsoleHistoryAdd (std::string_view cmd) |
| Add the entered line into the history so you can look it back scroll, etc. | |
| static void | IConsoleHistoryNavigate (int direction) |
| Navigate Up/Down in the history of typed commands. | |
| void | IConsoleGUIInit () |
| void | IConsoleClearBuffer () |
| void | IConsoleGUIFree () |
| void | IConsoleResize (Window *w) |
| Change the size of the in-game console window after the screen size changed, or the window state changed. | |
| void | IConsoleSwitch () |
| Toggle in-game console between opened and closed. | |
| void | IConsoleClose () |
| Close the in-game console. | |
| void | IConsoleGUIPrint (TextColour colour_code, const std::string &str) |
| Handle the printing of text entered into the console or redirected there by any other means. | |
| bool | IsValidConsoleColour (TextColour c) |
| Check whether the given TextColour is valid for console usage. | |
Variables | |
| static const uint | ICON_HISTORY_SIZE = 20 |
| static const uint | ICON_RIGHT_BORDERWIDTH = 10 |
| static const uint | ICON_BOTTOM_BORDERWIDTH = 12 |
| static std::deque< IConsoleLine > | _iconsole_buffer |
| The console backlog buffer. | |
| static Textbuf | _iconsole_cmdline (ICON_CMDLN_SIZE) |
| static std::deque< std::string > | _iconsole_history |
| static ptrdiff_t | _iconsole_historypos |
| IConsoleModes | _iconsole_mode |
| static constexpr std::initializer_list< NWidgetPart > | _nested_console_window_widgets |
| static WindowDesc | _console_window_desc (WDP_MANUAL, {}, 0, 0, WC_CONSOLE, WC_NONE, {}, _nested_console_window_widgets) |
Handling the GUI of the in-game console.
Definition in file console_gui.cpp.
| void IConsoleClearBuffer | ( | ) |
Definition at line 397 of file console_gui.cpp.
|
static |
Definition at line 120 of file console_gui.cpp.
| void IConsoleClose | ( | ) |
Close the in-game console.
Definition at line 442 of file console_gui.cpp.
References ICONSOLE_OPENED, and IConsoleSwitch().
Referenced by InitWindowSystem().
| void IConsoleGUIFree | ( | ) |
Definition at line 402 of file console_gui.cpp.
| void IConsoleGUIInit | ( | ) |
Definition at line 383 of file console_gui.cpp.
| void IConsoleGUIPrint | ( | TextColour | colour_code, |
| const std::string & | str | ||
| ) |
Handle the printing of text entered into the console or redirected there by any other means.
Text can be redirected to other clients in a network game as well as to a logfile. If the network server is a dedicated server, all activities are also logged. All lines to print are added to a temporary buffer which can be used as a history to print them onscreen
| colour_code | the colour of the command. Red in case of errors, etc. |
| str | the message entered or output on the console (notice, error, etc.) |
Definition at line 498 of file console_gui.cpp.
References _iconsole_buffer, SetWindowDirty(), and WC_CONSOLE.
Referenced by IConsolePrint().
|
static |
Add the entered line into the history so you can look it back scroll, etc.
Put it to the beginning as it is the latest text
| cmd | Text to be entered into the 'history' |
Definition at line 453 of file console_gui.cpp.
References IsWhitespace().
Referenced by IConsoleWindow::OnKeyPress().
|
static |
Navigate Up/Down in the history of typed commands.
| direction | Go further back in history (+1), go to recently typed commands (-1) |
Definition at line 476 of file console_gui.cpp.
References Textbuf::Assign(), and Textbuf::DeleteAll().
Referenced by IConsoleWindow::OnKeyPress().
|
inlinestatic |
Definition at line 127 of file console_gui.cpp.
| void IConsoleResize | ( | Window * | w | ) |
Change the size of the in-game console window after the screen size changed, or the window state changed.
Definition at line 408 of file console_gui.cpp.
References Window::height, ICONSOLE_FULL, ICONSOLE_OPENED, MarkWholeScreenDirty(), and Window::width.
Referenced by IConsoleWindow::OnKeyPress(), and RelocateAllWindows().
| void IConsoleSwitch | ( | ) |
Toggle in-game console between opened and closed.
Definition at line 426 of file console_gui.cpp.
References CloseWindowById(), ICONSOLE_CLOSED, ICONSOLE_FULL, ICONSOLE_OPENED, MarkWholeScreenDirty(), and WC_CONSOLE.
Referenced by IConsoleClose(), MenuClickHelp(), MainWindow::OnHotkey(), and IConsoleWindow::OnKeyPress().
| bool IsValidConsoleColour | ( | TextColour | c | ) |
Check whether the given TextColour is valid for console usage.
| c | The text colour to compare to. |
Definition at line 538 of file console_gui.cpp.
References GetColourGradient(), and TC_IS_PALETTE_COLOUR.
Referenced by IConsolePrint(), ServerNetworkAdminSocketHandler::Receive_ADMIN_EXTERNAL_CHAT(), ClientNetworkGameSocketHandler::Receive_SERVER_EXTERNAL_CHAT(), and ClientNetworkGameSocketHandler::Receive_SERVER_RCON().
|
static |
Remove old lines from the backlog buffer.
The buffer is limited by a maximum size and a minimum age. Every time truncation runs, all lines in the buffer are aged by one. When a line exceeds both the maximum position and also the maximum age, it gets removed.
Definition at line 511 of file console_gui.cpp.
References _iconsole_buffer, _settings_client, GUISettings::console_backlog_length, GUISettings::console_backlog_timeout, and ClientSettings::gui.
|
static |
The console backlog buffer.
Item index 0 is the newest line.
Definition at line 70 of file console_gui.cpp.
Referenced by IConsoleGUIPrint(), IConsoleWindow::OnPaint(), IConsoleWindow::Scroll(), and TruncateBuffer().
|
static |
Definition at line 111 of file console_gui.cpp.
|
static |
Definition at line 112 of file console_gui.cpp.
|
static |
Definition at line 113 of file console_gui.cpp.
| IConsoleModes _iconsole_mode |
Definition at line 114 of file console_gui.cpp.
|
staticconstexpr |
Definition at line 136 of file console_gui.cpp.
|
static |
Definition at line 37 of file console_gui.cpp.
|
static |
Definition at line 35 of file console_gui.cpp.
|
static |
Definition at line 36 of file console_gui.cpp.