Console.h++
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef __ccxx_Console_hxx
00024 #define __ccxx_Console_hxx
00025
00026 #include <commonc++/Common.h++>
00027 #include <commonc++/String.h++>
00028
00029 #include <cstdio>
00030
00031 namespace ccxx {
00032
00039 class COMMONCPP_API Console
00040 {
00041 public:
00042
00044 enum TextColor { ColorBlack, ColorRed, ColorGreen, ColorYellow, ColorBlue,
00045 ColorMagenta, ColorCyan, ColorWhite };
00046
00048 enum TextStyle { StyleBold, StyleUnderline, StyleInverse };
00049
00051 Console();
00052
00054 ~Console();
00055
00063 size_t read(char *text, size_t maxlen);
00064
00071 void write(const char *text, size_t len = 0);
00072
00077 bool setEcho(bool on);
00078
00085 void moveCursor(uint_t row, uint_t column);
00086
00088 void clear();
00089
00094 void setTextForeground(TextColor color);
00095
00100 void setTextBackground(TextColor color);
00101
00106 void beginTextStyle(TextStyle style);
00107
00112 void endTextStyle(TextStyle style);
00113
00115 void resetTextStyle();
00116
00121 void setTitle(const String &title);
00122
00132 bool getSize(uint_t *columns, uint_t *rows);
00133
00134 private:
00135
00136 #ifdef CCXX_OS_WINDOWS
00137 HANDLE _console;
00138 DWORD _attributes;
00139 bool _intense;
00140 #else
00141 FILE *_console;
00142 bool _underline;
00143 bool _inverse;
00144 #endif
00145 bool _bold;
00146 };
00147
00148 };
00149
00150 #endif // __ccxx_Console_hxx
00151
00152