DotNetDupe 4.0.6
C++17/20 Implementation of the .NET Base Class Library (BCL)
Loading...
Searching...
No Matches
Console.h
Go to the documentation of this file.
1
3
4#pragma once
5
6#include "Common.h"
7#include "System/Object.h"
8#include "System/String.h"
9#include "System/Char.h"
10#include "System/Array.h"
11#include "System/SmartPointer.h"
14
15namespace DotNetDupe {
16 namespace System {
17 namespace IO {
18 class TextWriter;
19 class TextReader;
20 }
21
23 enum class ConsoleColor {
24 Black = 0,
31 Gray = 7,
33 Blue = 9,
34 Green = 10,
35 Cyan = 11,
36 Red = 12,
37 Magenta = 13,
38 Yellow = 14,
39 White = 15
40 };
41
50 class Console : public Object {
51 public:
52 // Write methods
53 DOTNETDUPE_API static void Write(bool bValue);
54 DOTNETDUPE_API static void Write(Char chValue);
55 DOTNETDUPE_API static void Write(double dValue);
56 DOTNETDUPE_API static void Write(int iValue);
57 DOTNETDUPE_API static void Write(long iValue);
58 DOTNETDUPE_API static void Write(long long llValue);
59 DOTNETDUPE_API static void Write(float fValue);
60 DOTNETDUPE_API static void Write(const String& sValue);
61 DOTNETDUPE_API static void Write(const char* sValue);
62
63 template <class... Args>
64 static void Write(const String& sFormat, const Args&... args) {
65 Write(String::Format(sFormat, args...));
66 }
67
68 template <class... Args>
69 static void Write(const char* sFormat, const Args&... args) {
70 Write(String::Format(sFormat, args...));
71 }
72
73 // WriteLine methods
74 DOTNETDUPE_API static void WriteLine();
75 DOTNETDUPE_API static void WriteLine(bool bValue);
76 DOTNETDUPE_API static void WriteLine(Char chValue);
77 DOTNETDUPE_API static void WriteLine(double dValue);
78 DOTNETDUPE_API static void WriteLine(int iValue);
79 DOTNETDUPE_API static void WriteLine(long iValue);
80 DOTNETDUPE_API static void WriteLine(long long llValue);
81 DOTNETDUPE_API static void WriteLine(float fValue);
82 DOTNETDUPE_API static void WriteLine(const String& sValue);
83 DOTNETDUPE_API static void WriteLine(const char* sValue);
84
85 template <class... Args>
86 static void WriteLine(const String& sFormat, const Args&... args) {
87 WriteLine(String::Format(sFormat, args...));
88 }
89
90 template <class... Args>
91 static void WriteLine(const char* sFormat, const Args&... args) {
92 WriteLine(String::Format(sFormat, args...));
93 }
94
95 // Reading methods
96 DOTNETDUPE_API static int Read();
98
99 // Properties
100 DOTNETDUPE_API static int GetCursorLeft();
101 DOTNETDUPE_API static void SetCursorLeft(int iLeft);
102 DOTNETDUPE_API static int GetCursorTop();
103 DOTNETDUPE_API static void SetCursorTop(int iTop);
104 DOTNETDUPE_API static void SetCursorPosition(int iLeft, int iTop);
105
106 DOTNETDUPE_API static bool GetCursorVisible();
107 DOTNETDUPE_API static void SetCursorVisible(bool bVisible);
108
109 DOTNETDUPE_API static int GetWindowHeight();
110 DOTNETDUPE_API static void SetWindowHeight(int iHeight);
111 DOTNETDUPE_API static int GetWindowWidth();
112 DOTNETDUPE_API static void SetWindowWidth(int iWidth);
113
114 DOTNETDUPE_API static bool GetCapsLock();
115 DOTNETDUPE_API static bool GetNumberLock();
116
118 DOTNETDUPE_API static void SetBackgroundColor(ConsoleColor enumColor);
120 DOTNETDUPE_API static void SetForegroundColor(ConsoleColor enumColor);
121 DOTNETDUPE_API static void ResetColor();
122
124 DOTNETDUPE_API static void SetTitle(const String& sTitle);
125
126 DOTNETDUPE_API static void Beep();
127 DOTNETDUPE_API static void Clear();
128
129 // Standard I/O redirection APIs
130 DOTNETDUPE_API static void SetOut(const SmartPointer<IO::TextWriter>& pOutWriter);
131 DOTNETDUPE_API static void SetError(const SmartPointer<IO::TextWriter>& pErrorWriter);
132 DOTNETDUPE_API static void SetIn(const SmartPointer<IO::TextReader>& pInReader);
136
137 // Test helpers
138 DOTNETDUPE_API static void SetIn(const String& sValue);
139 DOTNETDUPE_API static void ClearInputs();
141 };
142 }
143}
Provides methods for creating, manipulating, searching, and sorting arrays.
Represents a Unicode character code point mirroring .NET System.Char.
Defines common cross-platform macros, export decorators, and fundamental types.
#define DOTNETDUPE_API
Platform-specific linkage decoration for exporting or importing library symbols.
Definition Common.h:20
Base object class for DotNetDupe mirroring .NET System.Object.
Provides reference-counted and weak pointer memory management primitives ensuring zero raw ownership.
High-performance UTF-8 / UTF-16 string manipulation class mirroring .NET System.String.
Provides methods for creating, manipulating, searching, and sorting arrays, thereby serving as the ba...
Definition Array.h:29
Represents a Unicode character (as a UTF-32 char32_t code point).
Definition Char.h:20
Represents the standard input, output, and error streams for console applications.
Definition Console.h:50
static void Write(const char *sFormat, const Args &... args)
Definition Console.h:69
static void SetWindowHeight(int iHeight)
Definition Console.cpp:204
static void SetError(const SmartPointer< IO::TextWriter > &pErrorWriter)
Definition Console.cpp:381
static SmartPointer< IO::TextWriter > Error()
Definition Console.cpp:399
static bool GetNumberLock()
Definition Console.cpp:245
static void WriteLine(const String &sFormat, const Args &... args)
Definition Console.h:86
static void SetBackgroundColor(ConsoleColor enumColor)
Definition Console.cpp:263
static void SetOut(const SmartPointer< IO::TextWriter > &pOutWriter)
Definition Console.cpp:376
static void SetTitle(const String &sTitle)
Definition Console.cpp:331
static String ReadLine()
Definition Console.cpp:116
static void Write(bool bValue)
Definition Console.cpp:87
static String GetTitle()
Definition Console.cpp:321
static void Write(const String &sFormat, const Args &... args)
Definition Console.h:64
static void SetWindowWidth(int iWidth)
Definition Console.cpp:226
static void SetCursorTop(int iTop)
Definition Console.cpp:156
static ConsoleColor GetForegroundColor()
Definition Console.cpp:282
static SmartPointer< IO::TextWriter > Out()
Definition Console.cpp:394
static ConsoleColor GetBackgroundColor()
Definition Console.cpp:252
static void SetIn(const SmartPointer< IO::TextReader > &pInReader)
Definition Console.cpp:386
static bool GetCursorVisible()
Definition Console.cpp:170
static void SetCursorVisible(bool bVisible)
Definition Console.cpp:180
static void SetCursorPosition(int iLeft, int iTop)
Definition Console.cpp:160
static void WriteLine(const char *sFormat, const Args &... args)
Definition Console.h:91
static void SetCursorLeft(int iLeft)
Definition Console.cpp:142
static Array< String > GetOutputs()
Definition Console.cpp:419
static SmartPointer< IO::TextReader > In()
Definition Console.cpp:404
static void SetForegroundColor(ConsoleColor enumColor)
Definition Console.cpp:293
Represents a reader that can read a sequential series of characters.
Definition TextReader.h:17
Represents a writer that can write a sequential series of characters.
Definition TextWriter.h:18
Supports all classes in the DotNetDupe class hierarchy.
Definition Object.h:18
A unified smart pointer that supports both unique and shared ownership semantics.
Represents text as a sequence of UTF-8 code units with culture-invariant operations.
Definition String.h:74
static String Format(const char *pFormat, const Arg1 &arg1, const Args &... args)
Definition String.h:239
ConsoleColor
Specifies constants that define foreground and background colors for the console.
Definition Console.h:23