[CSRSRV]
[reactos.git] / win32ss / user / consrv / settings.h
1 /*
2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS Console Server DLL
4 * FILE: win32ss/user/consrv/settings.h
5 * PURPOSE: Consoles settings management
6 * PROGRAMMERS: Hermes Belusca - Maito
7 *
8 * NOTE: Adapted from existing code.
9 */
10
11 #ifndef WM_APP
12 #define WM_APP 0x8000
13 #endif
14 #define PM_APPLY_CONSOLE_INFO (WM_APP + 100)
15
16 /* STRUCTURES *****************************************************************/
17
18 typedef struct _GUI_CONSOLE_INFO
19 {
20 // FONTSIGNATURE FontSignature;
21 WCHAR FaceName[LF_FACESIZE];
22 UINT FontFamily;
23 DWORD FontSize;
24 DWORD FontWeight;
25 BOOL UseRasterFonts;
26
27 WORD ShowWindow;
28 BOOL AutoPosition;
29 POINT WindowOrigin;
30 } GUI_CONSOLE_INFO, *PGUI_CONSOLE_INFO;
31
32 typedef struct _CONSOLE_INFO
33 {
34 ULONG HistoryBufferSize;
35 ULONG NumberOfHistoryBuffers;
36 BOOLEAN HistoryNoDup;
37
38 /* BOOLEAN */ ULONG FullScreen; // Give the type of console: GUI (windowed) or TUI (fullscreen)
39 BOOLEAN QuickEdit;
40 BOOLEAN InsertMode;
41 ULONG InputBufferSize;
42 COORD ScreenBufferSize;
43
44 /* SIZE */ COORD ConsoleSize; // This is really the size of the console at screen.
45
46 BOOLEAN CursorBlinkOn;
47 BOOLEAN ForceCursorOff;
48 ULONG CursorSize;
49
50 USHORT ScreenAttrib; // CHAR_INFO ScreenFillAttrib
51 USHORT PopupAttrib;
52
53 // Color palette
54 COLORREF Colors[16];
55
56 ULONG CodePage;
57
58 WCHAR ConsoleTitle[MAX_PATH + 1];
59
60 // PVOID TerminalInfo; /* Terminal-specific parameters */
61 union
62 {
63 GUI_CONSOLE_INFO GuiInfo;
64 // TUI_CONSOLE_INFO TuiInfo;
65 } u;
66 } CONSOLE_INFO, *PCONSOLE_INFO;
67
68 #define RGBFromAttrib(Console, Attribute) ((Console)->Colors[(Attribute) & 0xF])
69 #define TextAttribFromAttrib(Attribute) ((Attribute) & 0xF)
70 #define BkgdAttribFromAttrib(Attribute) (((Attribute) >> 4) & 0xF)
71 #define MakeAttrib(TextAttrib, BkgdAttrib) (DWORD)((((BkgdAttrib) & 0xF) << 4) | ((TextAttrib) & 0xF))
72
73
74 /* Used to communicate with console.dll */
75 typedef struct _CONSOLE_PROPS
76 {
77 HWND hConsoleWindow;
78 BOOL ShowDefaultParams;
79
80 BOOLEAN AppliedConfig;
81 DWORD ActiveStaticControl;
82
83 CONSOLE_INFO ci;
84 } CONSOLE_PROPS, *PCONSOLE_PROPS;
85
86 /* FUNCTIONS ******************************************************************/
87
88 BOOL ConSrvReadUserSettings(IN OUT PCONSOLE_INFO ConsoleInfo,
89 IN DWORD ProcessId);
90 BOOL ConSrvWriteUserSettings(IN PCONSOLE_INFO ConsoleInfo,
91 IN DWORD ProcessId);
92 VOID ConSrvGetDefaultSettings(IN OUT PCONSOLE_INFO ConsoleInfo,
93 IN DWORD ProcessId);
94
95 /* EOF */