xtd - Reference Guide  0.1.1
Modern c++17/20 framework to create console, GUI and unit test applications on Windows, macOS, Linux, iOS and android.
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
console.h
Go to the documentation of this file.
1 #pragma once
6 #include "console_color.h"
7 #include "console_key_info.h"
8 #include "console_special_key.h"
9 #include "event.h"
10 #include "static.h"
11 #include "types.h"
12 #include "ustring.h"
13 
15 namespace xtd {
26  class console final static_ {
27  public:
29  static std::ostream error;
34  static std::istream in;
39  static std::ostream out;
40 
48 
62  static void background_color(console_color color);
63 
69  static void beep();
76  static void beep(uint32_t frequency, uint32_t duration);
77 
83  static int32_t buffer_height();
89  static void buffer_height(int32_t height);
90 
96  static int32_t buffer_width();
102  static void buffer_width(int32_t width);
103 
106  static bool caps_lock();
107 
118  static void clear();
119 
125  static int32_t cursor_left();
132  static void cursor_left(int32_t left);
133 
139  static int32_t cursor_size();
145  static void cursor_size(int32_t size);
146 
152  static int32_t cursor_top();
159  static void cursor_top(int32_t top);
160 
166  static bool cursor_visible();
172  static void cursor_visible(bool visible);
173 
185  static bool foreground_color(console_color color);
186 
189  static int32_t input_code_page();
193  static bool input_code_page(int32_t code_page);
194 
197  static bool is_error_redirected();
200  static bool is_in_redirected();
203  static bool is_out_redirected();
204 
209  static bool key_available();
210 
213  static int32_t largest_window_height();
216  static int32_t largest_window_width();
217 
220  static bool number_lock();
221 
225  static std::ostream open_standard_error();
229  static std::istream open_standard_input();
233  static std::ostream open_standard_output();
234 
237  static int32_t output_code_page();
241  static bool output_code_page(int32_t code_page);
242 
254  static console_key_info read_key(bool intercept);
255 
258  static bool reset_color();
259 
265  static void set_cursor_position(int32_t left, int32_t top);
266 
271  static void set_error(const std::ostream& os);
276  static void set_in(const std::istream& is);
281  static void set_out(const std::ostream& os);
282 
285  static xtd::ustring title();
288  static void title(const xtd::ustring& title);
289 
300 
303  static int32_t window_height();
306  static void window_height(int32_t height);
307 
310  static int32_t window_left();
313  static void window_left(int32_t left);
314 
317  static int32_t window_top();
320  static void window_top(int32_t top);
321 
324  static int32_t window_width();
327  static void window_width(int32 width);
328 
332  template<typename arg_t>
333  static void write(arg_t&& value) {write_(xtd::ustring::format("{}", value));}
334 
336  template<typename type_t>
337  static void write(std::initializer_list<type_t>&& il) {write_(xtd::ustring::format("{}", il));}
339 
343  template<typename ... args_t>
344  static void write(const xtd::ustring& fmt, args_t&& ... values) {write_(xtd::ustring::format(fmt, std::forward<args_t>(values)...));}
345 
347  static void write_line();
348 
352  template<typename arg_t>
353  static void write_line(arg_t&& value) {write_line_(xtd::ustring::format("{}", value));}
354 
356  template<typename type_t>
357  static void write_line(const std::initializer_list<type_t>& il) {write_line_(xtd::ustring::format("{}", il));}
359 
363  template<typename ... args_t>
364  static void write_line(const xtd::ustring& fmt, args_t&& ... values) {write_line_(xtd::ustring::format(fmt, std::forward<args_t>(values)...));}
365 
367  static void __internal_cancel_key_press__(xtd::console_cancel_event_args& e);
369  private:
370  static void write_(const ustring& value);
371  static void write_line_(const ustring& value);
372  };
373 }
Provides data for the console::cancel_key_press event. This class cannot be inherited.
Definition: console_cancel_event_args.h:18
Specifies the standard keys on a console.
Definition: console_key_info.h:20
Represents the standard input, output, and error streams for console applications.
Definition: console.h:26
static void set_cursor_position(int32_t left, int32_t top)
Sets the position of the cursor.
static event< console, console_cancel_event_handler > cancel_key_press
Occurs when the Control modifier key (Ctrl) and either the ConsoleKey.C console key (C) or the Break ...
Definition: console.h:47
static std::ostream error
Gets the error output stream. A std::basic_ostream<char_t> that represents the error output stream.
Definition: console.h:29
static int32_t output_code_page()
Gets the code page the console uses to write output.
static std::ostream open_standard_error()
Acquires the standard error stream.
static void window_height(int32_t height)
Sets the height of the console window area.
static void background_color(console_color color)
Sets the background color of the console.
static console_key_info read_key(bool intercept)
Obtains the next character or function key pressed by the user. The pressed key is optionally display...
static void set_error(const std::ostream &os)
Sets the error property to the specified std::ostream object.
static bool caps_lock()
Gets a value indicating whether the CAPS LOCK keyboard toggle is turned on or turned off.
static int32_t input_code_page()
Gets the code page the console uses to read input.
static int32_t buffer_height()
Gets the height of the buffer area.
static bool treat_control_c_as_input()
Gets a value indicating whether the combination of the Control modifier key and C console key (Ctrl+C...
static void cursor_left(int32_t left)
Sets the column position of the cursor within the buffer area.
static bool is_error_redirected()
Gets a value that indicates whether the error output stream has been redirected from the standard err...
static void window_top(int32_t top)
Sets the top of the console window area.
static void buffer_height(int32_t height)
Sets or sets the height of the buffer area.
static void cursor_visible(bool visible)
Sets a value indicating whether the cursor is visible.
static bool input_code_page(int32_t code_page)
Sets the code page the console uses to read input.
static void cursor_top(int32_t top)
Sets the row position of the cursor within the buffer area.
static std::istream open_standard_input()
Acquires the standard input stream.
static void write(arg_t &&value)
Writes the text representation of the specified value to the standard output stream.
Definition: console.h:333
static void write_line(arg_t &&value)
Writes the text representation of the specified value, followed by the current line terminator,...
Definition: console.h:353
static console_color background_color()
Gets the background color of the console.
static void title(const xtd::ustring &title)
Sets the title to display in the console title bar.
static void window_width(int32 width)
Sets the width of the console window area.
static console_color foreground_color()
Gets the foreground color of the console.
static bool is_in_redirected()
Gets a value that indicates whether the input stream has been redirected from the standard input stre...
static std::istream in
Gets the standard input stream. A std::basic_istream<char_t> that represents the standard input strea...
Definition: console.h:34
static void treat_control_c_as_input(bool treat_control_c_as_input)
Sets a value indicating whether the combination of the Control modifier key and C console key (Ctrl+C...
static int32_t window_height()
Gets the height of the console window area.
static void set_out(const std::ostream &os)
Sets the out property to the specified std::ostream object.
static void clear()
Clears the console buffer and corresponding console window of display information.
static std::ostream out
Gets the standard output stream. A std::basic_ostream<char_t> that represents the standard output str...
Definition: console.h:39
static xtd::ustring title()
Gets the title to display in the console title bar.
static int32_t largest_window_height()
Gets the largest possible number of console window rows, based on the current font and screen resolut...
static bool output_code_page(int32_t code_page)
Sets the code page the console uses to write output.
static void write(const xtd::ustring &fmt, args_t &&... values)
Writes the text representation of the specified list of values to the standard output stream using th...
Definition: console.h:344
static bool number_lock()
Gets a value indicating whether the NUM LOCK keyboard toggle is turned on or turned off.
static bool reset_color()
Sets the foreground and background console colors to their defaults.
static xtd::ustring read_line()
Reads the next line of characters from the standard input stream.
static void write_line(const xtd::ustring &fmt, args_t &&... values)
Writes the text representation of the specified list of values, followed by the current line terminat...
Definition: console.h:364
static void beep()
Plays the sound of a beep through the console speaker.
static int32_t cursor_left()
Gets the column position of the cursor within the buffer area.
static bool foreground_color(console_color color)
Sets the foreground color of the console.
static int32_t largest_window_width()
Gets the largest possible number of console window columns, based on the current font and screen reso...
static console_key_info read_key()
Obtains the next character or function key pressed by the user. The pressed key is displayed in the c...
static int32_t window_left()
Gets the left of the console window area.
static std::ostream open_standard_output()
Acquires the standard output stream.
static void beep(uint32_t frequency, uint32_t duration)
Plays the sound of a beep of a specified frequency and duration through the console speaker.
static void buffer_width(int32_t width)
Sets the width of the buffer area.
static bool is_out_redirected()
Gets a value that indicates whether the output stream has been redirected from the standard output st...
static void window_left(int32_t left)
Sets the left of the console window area.
static void cursor_size(int32_t size)
Sets the height of the cursor within a character cell.
static void set_in(const std::istream &is)
Sets the int property to the specified std::istream object.
static bool key_available()
Gets a value indicating whether a key press is available in the input stream.
static int32_t window_width()
Gets the width of the console window area.
static void write_line()
Writes the current line terminator to the standard output stream using the specified format informati...
static int32_t window_top()
Gets the top of the console window area.
static bool cursor_visible()
Gets a value indicating whether the cursor is visible.
static int32_t cursor_size()
Gets or sets the height of the cursor within a character cell.
static int32_t cursor_top()
Gets the row position of the cursor within the buffer area.
static int32_t buffer_width()
Gets the width of the buffer area.
Represents an event.
Definition: event.h:21
Represents text as a sequence of UTF-8 code units.
Definition: ustring.h:48
Contains xtd::console_cancel_event_handler event handler.
Contains xtd::console_color enum class.
Contains xtd::console_key_info class.
Contains xtd::console_special_key enum class.
Contains xtd::event event.
static ustring format(const ustring &fmt, args_t &&... args)
Writes the text representation of the specified arguments list, to string using the specified format ...
Definition: ustring.h:689
#define static_
This keyword is use to represent a static object. A static object can't be instantiated (constructors...
Definition: static.h:38
int32_t int32
Represents a 32-bit signed integer.
Definition: types.h:129
size_t size
Represents a size of any object in bytes.
Definition: types.h:171
bool is(std::any value)
Checks if the result of an expression is compatible with a given type.
Definition: is.h:305
console_color
Specifies constants that define foreground and background colors for the console.
Definition: console_color.h:17
The xtd namespace contains all fundamental classes to access Hardware, Os, System,...
Definition: system_report.h:17
Contains xtd::static_object class.
Contains xtd fundamental types.
Contains xtd::ustring class.