2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS Console Server DLL
4 * FILE: frontends/gui/conwnd.h
5 * PURPOSE: GUI Console Window Class
6 * PROGRAMMERS: Gé van Geldorp
9 * Hermes Belusca-Maito (hermes.belusca@sfr.fr)
14 /* GUI Console Window Class name */
15 #define GUI_CONWND_CLASS L"ConsoleWindowClass"
20 #define PM_RESIZE_TERMINAL (WM_APP + 3)
21 #define PM_CONSOLE_BEEP (WM_APP + 4)
22 #define PM_CONSOLE_SET_TITLE (WM_APP + 5)
25 typedef struct _CONSOLE_FONT
29 } CONSOLE_FONT, *PCONSOLE_FONT;
31 #define FONT_NORMAL 0x00
32 #define FONT_BOLD 0x01
33 #define FONT_UNDERLINE 0x02
34 #define FONT_MAXNO 0x04
36 typedef struct _GUI_CONSOLE_DATA
38 CRITICAL_SECTION Lock
;
47 WINDOWPLACEMENT WndPl
;
49 HWND hWindow
; /* Handle to the console's window */
50 HDC hMemDC
; /* Memory DC holding the console framebuffer */
51 HBITMAP hBitmap
; /* Console framebuffer */
52 HPALETTE hSysPalette
; /* Handle to the original system palette */
54 HICON hIcon
; /* Handle to the console's icon (big) */
55 HICON hIconSm
; /* Handle to the console's icon (small) */
57 /*** The following may be put per-screen-buffer !! ***/
58 HCURSOR hCursor
; /* Handle to the mouse cursor */
59 INT MouseCursorRefCount
; /* The reference counter associated with the mouse cursor. >= 0 and the cursor is shown; < 0 and the cursor is hidden. */
60 BOOL IgnoreNextMouseSignal
; /* Used in cases where we don't want to treat a mouse signal */
62 BOOL IsCloseButtonEnabled
; /* TRUE if the Close button and the corresponding system menu item are enabled (default), FALSE otherwise */
63 UINT CmdIdLow
; /* Lowest menu id of the user-reserved menu id range */
64 UINT CmdIdHigh
; /* Highest menu id of the user-reserved menu id range */
66 // COLORREF Colors[16];
68 // PVOID ScreenBuffer; /* Hardware screen buffer */
70 HFONT Font
[FONT_MAXNO
];
71 UINT CharWidth
; /* The character width and height should be the same for */
72 UINT CharHeight
; /* both normal and bold/underlined fonts... */
73 /*****************************************************/
75 PCONSRV_CONSOLE Console
; /* Pointer to the owned console */
76 PCONSOLE_SCREEN_BUFFER ActiveBuffer
; /* Pointer to the active screen buffer (then maybe the previous Console member is redundant?? Or not...) */
77 CONSOLE_SELECTION_INFO Selection
; /* Contains information about the selection */
78 COORD dwSelectionCursor
; /* Selection cursor position, most of the time different from Selection.dwSelectionAnchor */
79 BOOL LineSelection
; /* TRUE if line-oriented selection (a la *nix terminals), FALSE if block-oriented selection (default on Windows) */
81 GUI_CONSOLE_INFO GuiInfo
; /* GUI terminal settings */
82 } GUI_CONSOLE_DATA
, *PGUI_CONSOLE_DATA
;