/* GLOBALS ********************************************************************/
-#define GetNextConsole(Console) \
- CONTAINING_RECORD(Console->Entry.Flink, TUI_CONSOLE_DATA, Entry)
-
-#define GetPrevConsole(Console) \
- CONTAINING_RECORD(Console->Entry.Blink, TUI_CONSOLE_DATA, Entry)
-
-
/* TUI Console Window Class name */
#define TUI_CONSOLE_WINDOW_CLASS L"TuiConsoleWindowClass"
HWND hWindow; /* Handle to the console's window (used for the window's procedure */
- PCONSOLE Console; /* Pointer to the owned console */
+ PCONSRV_CONSOLE Console; /* Pointer to the owned console */
// TUI_CONSOLE_INFO TuiInfo; /* TUI terminal settings */
} TUI_CONSOLE_DATA, *PTUI_CONSOLE_DATA;
+#define GetNextConsole(Console) \
+ CONTAINING_RECORD(Console->Entry.Flink, TUI_CONSOLE_DATA, Entry)
+
+#define GetPrevConsole(Console) \
+ CONTAINING_RECORD(Console->Entry.Blink, TUI_CONSOLE_DATA, Entry)
+
+
/* List of the maintained virtual consoles and its lock */
static LIST_ENTRY VirtConsList;
static PTUI_CONSOLE_DATA ActiveConsole; /* The active console on screen */
/**\
\******************************************************************************/
-static BOOL FASTCALL
+static BOOL
TuiSwapConsole(INT Next)
{
static PTUI_CONSOLE_DATA SwapConsole = NULL; /* Console we are thinking about swapping with */
}
}
-static VOID FASTCALL
+static VOID
TuiCopyRect(PCHAR Dest, PTEXTMODE_SCREEN_BUFFER Buff, SMALL_RECT* Region)
{
UINT SrcDelta, DestDelta;
{
/*
PTUI_CONSOLE_DATA TuiData = NULL;
- PCONSOLE Console = NULL;
+ PCONSRV_CONSOLE Console = NULL;
TuiData = TuiGetGuiData(hWnd);
if (TuiData == NULL) return 0;
case WM_KEYUP:
case WM_SYSKEYUP:
{
+#if 0
+ if ((HIWORD(lParam) & KF_ALTDOWN) && wParam == VK_TAB)
+ {
+ // if ((HIWORD(lParam) & (KF_UP | KF_REPEAT)) != KF_REPEAT)
+ TuiSwapConsole(ShiftState & SHIFT_PRESSED ? -1 : 1);
+
+ break;
+ }
+ else if (wParam == VK_MENU /* && !Down */)
+ {
+ TuiSwapConsole(0);
+ break;
+ }
+#endif
+
if (ConDrvValidateConsoleUnsafe(ActiveConsole->Console, CONSOLE_RUNNING, TRUE))
{
MSG Message;
return DefWindowProcW(hWnd, msg, wParam, lParam);
}
-static DWORD WINAPI
+static DWORD NTAPI
TuiConsoleThread(PVOID Data)
{
PTUI_CONSOLE_DATA TuiData = (PTUI_CONSOLE_DATA)Data;
- PCONSOLE Console = TuiData->Console;
+ PCONSRV_CONSOLE Console = TuiData->Console;
HWND NewWindow;
MSG msg;
* TUI Console Driver *
******************************************************************************/
-static VOID WINAPI
+static VOID NTAPI
TuiDeinitFrontEnd(IN OUT PFRONTEND This /*,
- IN PCONSOLE Console */);
+ IN PCONSRV_CONSOLE Console */);
-NTSTATUS NTAPI
+static NTSTATUS NTAPI
TuiInitFrontEnd(IN OUT PFRONTEND This,
- IN PCONSOLE Console)
+ IN PCONSRV_CONSOLE Console)
{
PTUI_CONSOLE_DATA TuiData;
HANDLE ThreadHandle;
// return STATUS_INVALID_PARAMETER;
// /* Initialize the console */
- // Console->TermIFace.Vtbl = &TuiVtbl;
+ // Console->FrontEndIFace.Vtbl = &TuiVtbl;
TuiData = ConsoleAllocHeap(HEAP_ZERO_MEMORY, sizeof(TUI_CONSOLE_DATA));
if (!TuiData)
DPRINT1("CONSRV: Failed to create TUI_CONSOLE_DATA\n");
return STATUS_UNSUCCESSFUL;
}
- // Console->TermIFace.Data = (PVOID)TuiData;
+ // Console->FrontEndIFace.Data = (PVOID)TuiData;
TuiData->Console = Console;
TuiData->hWindow = NULL;
// /* The console cannot be resized anymore */
// Console->FixedSize = TRUE; // MUST be placed AFTER the call to ConioResizeBuffer !!
- // // ConioResizeTerminal(Console);
+ // // TermResizeTerminal(Console);
/*
* Contrary to what we do in the GUI front-end, here we create
return STATUS_SUCCESS;
}
-static VOID WINAPI
+static VOID NTAPI
TuiDeinitFrontEnd(IN OUT PFRONTEND This)
{
- // PCONSOLE Console = This->Console;
- PTUI_CONSOLE_DATA TuiData = This->Data; // Console->TermIFace.Data;
+ // PCONSRV_CONSOLE Console = This->Console;
+ PTUI_CONSOLE_DATA TuiData = This->Data; // Console->FrontEndIFace.Data;
/* Close the notification window */
DestroyWindow(TuiData->hWindow);
/* Switch to the next console */
if (NULL != ActiveConsole) ConioDrawConsole(ActiveConsole->Console);
- // Console->TermIFace.Data = NULL;
+ // Console->FrontEndIFace.Data = NULL;
This->Data = NULL;
DeleteCriticalSection(&TuiData->Lock);
ConsoleFreeHeap(TuiData);
}
-static VOID WINAPI
+static VOID NTAPI
TuiDrawRegion(IN OUT PFRONTEND This,
SMALL_RECT* Region)
{
ConsoleFreeHeap(ConsoleDraw);
}
-static VOID WINAPI
+static VOID NTAPI
TuiWriteStream(IN OUT PFRONTEND This,
SMALL_RECT* Region,
SHORT CursorStartX,
RtlFreeHeap(RtlGetProcessHeap(), 0, NewBuffer);
}
-static BOOL WINAPI
+static BOOL NTAPI
TuiSetCursorInfo(IN OUT PFRONTEND This,
PCONSOLE_SCREEN_BUFFER Buff)
{
return TRUE;
}
-static BOOL WINAPI
+static BOOL NTAPI
TuiSetScreenInfo(IN OUT PFRONTEND This,
PCONSOLE_SCREEN_BUFFER Buff,
SHORT OldCursorX,
return TRUE;
}
-static VOID WINAPI
+static VOID NTAPI
TuiResizeTerminal(IN OUT PFRONTEND This)
{
}
-static BOOL WINAPI
-TuiProcessKeyCallback(IN OUT PFRONTEND This,
- MSG* msg,
- BYTE KeyStateMenu,
- DWORD ShiftState,
- UINT VirtualKeyCode,
- BOOL Down)
-{
- if (0 != (ShiftState & (RIGHT_ALT_PRESSED | LEFT_ALT_PRESSED)) &&
- VK_TAB == VirtualKeyCode)
- {
- if (Down)
- {
- TuiSwapConsole(ShiftState & SHIFT_PRESSED ? -1 : 1);
- }
-
- return TRUE;
- }
- else if (VK_MENU == VirtualKeyCode && !Down)
- {
- return TuiSwapConsole(0);
- }
-
- return FALSE;
-}
-
-static VOID WINAPI
+static VOID NTAPI
TuiRefreshInternalInfo(IN OUT PFRONTEND This)
{
}
-static VOID WINAPI
+static VOID NTAPI
TuiChangeTitle(IN OUT PFRONTEND This)
{
}
-static BOOL WINAPI
+static BOOL NTAPI
TuiChangeIcon(IN OUT PFRONTEND This,
- HICON hWindowIcon)
+ HICON IconHandle)
{
return TRUE;
}
-static HWND WINAPI
+static HWND NTAPI
TuiGetConsoleWindowHandle(IN OUT PFRONTEND This)
{
PTUI_CONSOLE_DATA TuiData = This->Data;
return TuiData->hWindow;
}
-static VOID WINAPI
+static VOID NTAPI
TuiGetLargestConsoleWindowSize(IN OUT PFRONTEND This,
PCOORD pSize)
{
*pSize = PhysicalConsoleSize;
}
-static ULONG WINAPI
+static BOOL NTAPI
+TuiGetSelectionInfo(IN OUT PFRONTEND This,
+ PCONSOLE_SELECTION_INFO pSelectionInfo)
+{
+ return TRUE;
+}
+
+static BOOL NTAPI
+TuiSetPalette(IN OUT PFRONTEND This,
+ HPALETTE PaletteHandle,
+ UINT PaletteUsage)
+{
+ return TRUE;
+}
+
+static ULONG NTAPI
TuiGetDisplayMode(IN OUT PFRONTEND This)
{
return CONSOLE_FULLSCREEN_HARDWARE; // CONSOLE_FULLSCREEN;
}
-static BOOL WINAPI
+static BOOL NTAPI
TuiSetDisplayMode(IN OUT PFRONTEND This,
ULONG NewMode)
{
return TRUE;
}
-static INT WINAPI
+static INT NTAPI
TuiShowMouseCursor(IN OUT PFRONTEND This,
BOOL Show)
{
return 0;
}
-static BOOL WINAPI
+static BOOL NTAPI
TuiSetMouseCursor(IN OUT PFRONTEND This,
- HCURSOR hCursor)
+ HCURSOR CursorHandle)
{
return TRUE;
}
-static HMENU WINAPI
+static HMENU NTAPI
TuiMenuControl(IN OUT PFRONTEND This,
- UINT cmdIdLow,
- UINT cmdIdHigh)
+ UINT CmdIdLow,
+ UINT CmdIdHigh)
{
return NULL;
}
-static BOOL WINAPI
+static BOOL NTAPI
TuiSetMenuClose(IN OUT PFRONTEND This,
BOOL Enable)
{
TuiSetCursorInfo,
TuiSetScreenInfo,
TuiResizeTerminal,
- TuiProcessKeyCallback,
TuiRefreshInternalInfo,
TuiChangeTitle,
TuiChangeIcon,
TuiGetConsoleWindowHandle,
TuiGetLargestConsoleWindowSize,
+ TuiGetSelectionInfo,
+ TuiSetPalette,
TuiGetDisplayMode,
TuiSetDisplayMode,
TuiShowMouseCursor,