diff options
| author | JustSomePwner <crotchyalt@gmail.com> | 2018-08-30 14:01:54 +0200 |
|---|---|---|
| committer | JustSomePwner <crotchyalt@gmail.com> | 2018-08-30 14:01:54 +0200 |
| commit | 7ccb819f867493f8ec202ea3b39c94c198c64584 (patch) | |
| tree | 94622e61af0ff359e3d6689cf274d74f60b2492a /loader/console.h | |
| parent | 564d979b79e8a5aaa5014eba0ecd36c61575934f (diff) | |
first
Diffstat (limited to 'loader/console.h')
| -rw-r--r-- | loader/console.h | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/loader/console.h b/loader/console.h new file mode 100644 index 0000000..1494d94 --- /dev/null +++ b/loader/console.h @@ -0,0 +1,69 @@ +#pragma once
+#include <Windows.h>
+
+#define STD_HANDLE GetStdHandle( STD_OUTPUT_HANDLE )
+
+namespace con
+{
+ enum class concol : int {
+ black = 0,
+ dark_blue = 1,
+ dark_green = 2,
+ dark_aqua, dark_cyan = 3,
+ dark_red = 4,
+ dark_purple = 5, dark_pink = 5, dark_magenta = 5,
+ dark_yellow = 6,
+ dark_white = 7,
+ gray = 8,
+ blue = 9,
+ green = 10,
+ aqua = 11, cyan = 11,
+ red = 12,
+ purple = 13, pink = 13, magenta = 13,
+ yellow = 14,
+ white = 15
+ };
+
+ inline void set_console_cursor( bool cursor ) {
+ CONSOLE_CURSOR_INFO cursor_info;
+ cursor_info.bVisible = cursor;
+ cursor_info.dwSize = 1;
+ SetConsoleCursorInfo( STD_HANDLE, &cursor_info );
+ }
+
+ inline void set_cursor_pos( int x, int y ) {
+ COORD cursor_pos = { static_cast< short >( x ), static_cast< short >( y ) };
+ SetConsoleCursorPosition( STD_HANDLE, cursor_pos );
+ }
+
+ inline void set_console_color( concol text, concol bg ) {
+ SetConsoleTextAttribute( STD_HANDLE, ( ( int )text + ( ( int )bg * 16 ) ) );
+ }
+
+ inline void clear_console( ) {
+ CONSOLE_SCREEN_BUFFER_INFO buf_info;
+ HANDLE std_out;
+ DWORD count;
+ DWORD cell_count;
+ COORD null_coord{ };
+
+ std_out = STD_HANDLE;
+ if ( std_out == INVALID_HANDLE_VALUE ) return;
+
+ if ( !GetConsoleScreenBufferInfo( std_out, &buf_info ) ) return;
+ cell_count = buf_info.dwSize.X * buf_info.dwSize.Y;
+
+ if ( !FillConsoleOutputCharacter( std_out, ( TCHAR )' ', cell_count, null_coord, &count ) ) return;
+ if ( !FillConsoleOutputAttribute( std_out, buf_info.wAttributes, cell_count, null_coord, &count ) ) return;
+
+ set_cursor_pos( 0, 0 );
+ }
+
+ inline void set_size( int w, int h ) {
+ auto con = GetConsoleWindow( );
+ RECT r;
+
+ GetWindowRect( con, &r );
+ MoveWindow( con, r.left, r.top, w, h, 1 );
+ }
+}
\ No newline at end of file |
