FreeBASIC  0.91.0
fb_private_console.h
Go to the documentation of this file.
1 #include <windows.h>
2 
3 typedef void (*fb_FnProcessMouseEvent)(const MOUSE_EVENT_RECORD *pEvent);
4 
5 typedef struct _FB_CONSOLE_CTX
6 {
9  int active, visible;
10  SMALL_RECT window;
11  int setByUser;
12  int scrollWasOff;
15 
17 
18 int fb_hConsoleTranslateKey( char AsciiChar, WORD wVsCode, WORD wVkCode, DWORD dwControlKeyState, int bEnhancedKeysOnly );
19 int fb_hVirtualToScancode( int vkey );
20 void fb_InitConsoleWindow( void );
21 FBCALL void fb_hRestoreConsoleWindow( void );
22 FBCALL void fb_hUpdateConsoleWindow( void );
23 FBCALL void fb_hConvertToConsole( int *left, int *top, int *right, int *bottom );
24 FBCALL void fb_hConvertFromConsole( int *left, int *top, int *right, int *bottom );
25 FBCALL void fb_ConsoleLocateRaw( int row, int col, int cursor );
26 FBCALL void fb_ConsoleGetScreenSize( int *cols, int *rows );
27 void fb_ConsoleGetMaxWindowSize( int *cols, int *rows );
28 void fb_ConsoleGetScreenSizeEx( HANDLE hConsole, int *cols, int *rows );
29 int fb_ConsoleGetRawYEx( HANDLE hConsole );
30 int fb_ConsoleGetRawXEx( HANDLE hConsole );
31 void fb_ConsoleGetRawXYEx( HANDLE hConsole, int *col, int *row );
32 void fb_ConsoleLocateRawEx( HANDLE hConsole, int row, int col, int cursor );
33 int fb_ConsoleGetColorAttEx( HANDLE hConsole );
34 void fb_ConsoleColorEx( HANDLE hConsole, int fc, int bc );
35 void fb_ConsoleClearViewRawEx( HANDLE hConsole, int x1, int y1, int x2, int y2 );
36 void fb_hConsoleGetWindow( int *left, int *top, int *cols, int *rows );
37 int fb_ConsoleProcessEvents( void );
38 int fb_hConsoleGetKey( int full );
39 int fb_hConsolePeekKey( int full );
40 void fb_hConsolePutBackEvents( void );
41 HANDLE fb_hConsoleGetHandle( int is_input );
42 void fb_hConsoleResetHandles( void );
43 int fb_ConsoleGetRawX( void );
44 int fb_ConsoleGetRawY( void );
46 
47 #define __fb_in_handle fb_hConsoleGetHandle( TRUE )
48 #define __fb_out_handle fb_hConsoleGetHandle( FALSE )
49 
50 #define FB_CON_CORRECT_POSITION() \
51  do { \
52  if( __fb_con.scrollWasOff ) \
53  fb_ConsolePrintBufferEx( NULL, 0, FB_PRINT_FORCE_ADJUST ); \
54  } while (0)
55 
56 #define FB_CONSOLE_WINDOW_EMPTY() \
57  ((__fb_con.window.Left==__fb_con.window.Right) \
58  || (__fb_con.window.Top==__fb_con.window.Bottom))