OpenTTD
Data Structures | Functions | Variables
console_gui.cpp File Reference

Handling the GUI of the in-game console. More...

#include "stdafx.h"
#include "textbuf_type.h"
#include "window_gui.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 "settings_type.h"
#include "console_func.h"
#include "rev.h"
#include "video/video_driver.hpp"
#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...
struct  IConsoleWindow

Functions

static void IConsoleClearCommand ()
static void IConsoleResetHistoryPos ()
static const char * IConsoleHistoryAdd (const char *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, char *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_LINE_SPACING = 2
static const uint ICON_RIGHT_BORDERWIDTH = 10
static const uint ICON_BOTTOM_BORDERWIDTH = 12
static Textbuf _iconsole_cmdline (ICON_CMDLN_SIZE)
static char * _iconsole_history [ICON_HISTORY_SIZE]
static int _iconsole_historypos
IConsoleModes _iconsole_mode
static struct NWidgetPart _nested_console_window_widgets []
static WindowDesc _console_window_desc (WDP_MANUAL, NULL, 0, 0, WC_CONSOLE, WC_NONE, 0, _nested_console_window_widgets, lengthof(_nested_console_window_widgets))

Detailed Description

Handling the GUI of the in-game console.

Definition in file console_gui.cpp.

Function Documentation

void IConsoleClose ( )

Close the in-game console.

Definition at line 445 of file console_gui.cpp.

References ICONSOLE_OPENED, and IConsoleSwitch().

Referenced by InitWindowSystem().

void IConsoleGUIPrint ( TextColour  colour_code,
char *  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

Parameters
colour_codethe colour of the command. Red in case of errors, etc.
strthe message entered or output on the console (notice, error, etc.)

Definition at line 503 of file console_gui.cpp.

References SetWindowDirty(), and WC_CONSOLE.

Referenced by IConsolePrint().

static const char * IConsoleHistoryAdd ( const char *  cmd)
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

Parameters
cmdText to be entered into the 'history'
Returns
the command to execute

Definition at line 456 of file console_gui.cpp.

References free(), IsWhitespace(), stredup(), and StrEmpty().

Referenced by IConsoleWindow::OnKeyPress().

static void IConsoleHistoryNavigate ( int  direction)
static

Navigate Up/Down in the history of typed commands.

Parameters
directionGo further back in history (+1), go to recently typed commands (-1)

Definition at line 480 of file console_gui.cpp.

References Textbuf::Assign(), Clamp(), and Textbuf::DeleteAll().

Referenced by IConsoleWindow::OnKeyPress().

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 411 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 429 of file console_gui.cpp.

References DeleteWindowById(), 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.

Parameters
cThe text colour to compare to.
Returns
true iff the TextColour is valid for console usage.

Definition at line 515 of file console_gui.cpp.

References _colour_gradient, and TC_IS_PALETTE_COLOUR.

Referenced by IConsolePrint(), IConsolePrintF(), and ClientNetworkGameSocketHandler::Receive_SERVER_RCON().

Variable Documentation

struct NWidgetPart _nested_console_window_widgets[]
static
Initial value:
{
NWidget(WWT_EMPTY, INVALID_COLOUR, WID_C_BACKGROUND), SetResize(1, 1),
}

Definition at line 160 of file console_gui.cpp.