2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS Console Server DLL
4 * FILE: win32ss/user/winsrv/consrv/frontends/gui/guiterm.h
5 * PURPOSE: GUI Terminal Front-End
6 * PROGRAMMERS: Gé van Geldorp
9 * Hermes Belusca-Maito (hermes.belusca@sfr.fr)
14 #include "guisettings.h"
18 /* HELPER FUNCTIONS ***********************************************************/
22 GetScreenBufferSizeUnits(IN PCONSOLE_SCREEN_BUFFER Buffer
,
23 IN PGUI_CONSOLE_DATA GuiData
,
27 ASSERT(Buffer
&& GuiData
&& WidthUnit
&& HeightUnit
);
29 if (GetType(Buffer
) == TEXTMODE_BUFFER
)
31 *WidthUnit
= GuiData
->CharWidth
;
32 *HeightUnit
= GuiData
->CharHeight
;
34 else /* if (GetType(Buffer) == GRAPHICS_BUFFER) */
43 SmallRectToRect(PGUI_CONSOLE_DATA GuiData
, PRECT Rect
, PSMALL_RECT SmallRect
)
45 PCONSOLE_SCREEN_BUFFER Buffer
= GuiData
->ActiveBuffer
;
46 UINT WidthUnit
, HeightUnit
;
48 GetScreenBufferSizeUnits(Buffer
, GuiData
, &WidthUnit
, &HeightUnit
);
50 Rect
->left
= (SmallRect
->Left
- Buffer
->ViewOrigin
.X
) * WidthUnit
;
51 Rect
->top
= (SmallRect
->Top
- Buffer
->ViewOrigin
.Y
) * HeightUnit
;
52 Rect
->right
= (SmallRect
->Right
+ 1 - Buffer
->ViewOrigin
.X
) * WidthUnit
;
53 Rect
->bottom
= (SmallRect
->Bottom
+ 1 - Buffer
->ViewOrigin
.Y
) * HeightUnit
;
57 /* FUNCTIONS ******************************************************************/
62 GuiConsoleMoveWindow(PGUI_CONSOLE_DATA GuiData
);
68 InitFonts(PGUI_CONSOLE_DATA GuiData
,
69 LPWSTR FaceName
, // Points to a WCHAR array of LF_FACESIZE elements.
74 DeleteFonts(PGUI_CONSOLE_DATA GuiData
);
80 EnterFullScreen(PGUI_CONSOLE_DATA GuiData
);
82 LeaveFullScreen(PGUI_CONSOLE_DATA GuiData
);
84 SwitchFullScreen(PGUI_CONSOLE_DATA GuiData
, BOOL FullScreen
);
86 GuiConsoleSwitchFullScreen(PGUI_CONSOLE_DATA GuiData
);
92 GuiCopyFromGraphicsBuffer(PGRAPHICS_SCREEN_BUFFER Buffer
,
93 PGUI_CONSOLE_DATA GuiData
);
95 GuiPasteToGraphicsBuffer(PGRAPHICS_SCREEN_BUFFER Buffer
,
96 PGUI_CONSOLE_DATA GuiData
);
98 GuiPaintGraphicsBuffer(PGRAPHICS_SCREEN_BUFFER Buffer
,
99 PGUI_CONSOLE_DATA GuiData
,
101 PRECT rcFramebuffer
);
108 IN PCONSRV_CONSOLE Console
,
113 GuiCopyFromTextModeBuffer(PTEXTMODE_SCREEN_BUFFER Buffer
,
114 PGUI_CONSOLE_DATA GuiData
);
116 GuiPasteToTextModeBuffer(PTEXTMODE_SCREEN_BUFFER Buffer
,
117 PGUI_CONSOLE_DATA GuiData
);
119 GuiPaintTextModeBuffer(PTEXTMODE_SCREEN_BUFFER Buffer
,
120 PGUI_CONSOLE_DATA GuiData
,
122 PRECT rcFramebuffer
);
124 /* For Chinese, Japanese and Korean */
126 GuiPaintTextModeBufferCJK(PTEXTMODE_SCREEN_BUFFER Buffer
,
127 PGUI_CONSOLE_DATA GuiData
,
129 PRECT rcFramebuffer
);