| /* | |
| * TTY monitor driver | |
| * | |
| * Copyright 1998,1999 Patrik Stridvall | |
| * | |
| */ | |
| #include "config.h" | |
| #include "debugtools.h" | |
| #include "heap.h" | |
| #include "monitor.h" | |
| #include "windef.h" | |
| #include "ttydrv.h" | |
| DEFAULT_DEBUG_CHANNEL(ttydrv) | |
| /*********************************************************************** | |
| * TTYDRV_MONITOR_GetCursesRootWindow | |
| * | |
| * Return the Curses root window associated to the MONITOR. | |
| */ | |
| #ifdef HAVE_LIBCURSES | |
| WINDOW *TTYDRV_MONITOR_GetCursesRootWindow(MONITOR *pMonitor) | |
| { | |
| TTYDRV_MONITOR_DATA *pTTYMonitor = | |
| (TTYDRV_MONITOR_DATA *) pMonitor->pDriverData; | |
| return pTTYMonitor->rootWindow; | |
| } | |
| #endif /* defined(HAVE_LIBCURSES) */ | |
| /*********************************************************************** | |
| * TTYDRV_MONITOR_GetCellWidth | |
| */ | |
| INT TTYDRV_MONITOR_GetCellWidth(MONITOR *pMonitor) | |
| { | |
| TTYDRV_MONITOR_DATA *pTTYMonitor = | |
| (TTYDRV_MONITOR_DATA *) pMonitor->pDriverData; | |
| return pTTYMonitor->cellWidth; | |
| } | |
| /*********************************************************************** | |
| * TTYDRV_MONITOR_GetCellHeight | |
| */ | |
| INT TTYDRV_MONITOR_GetCellHeight(MONITOR *pMonitor) | |
| { | |
| TTYDRV_MONITOR_DATA *pTTYMonitor = | |
| (TTYDRV_MONITOR_DATA *) pMonitor->pDriverData; | |
| return pTTYMonitor->cellHeight; | |
| } | |
| /*********************************************************************** | |
| * TTYDRV_MONITOR_Initialize | |
| */ | |
| void TTYDRV_MONITOR_Initialize(MONITOR *pMonitor) | |
| { | |
| TTYDRV_MONITOR_DATA *pTTYMonitor = (TTYDRV_MONITOR_DATA *) | |
| HeapAlloc(SystemHeap, 0, sizeof(TTYDRV_MONITOR_DATA)); | |
| int rows, cols; | |
| pMonitor->pDriverData = pTTYMonitor; | |
| pTTYMonitor->cellWidth = 8; | |
| pTTYMonitor->cellHeight = 8; | |
| #ifdef HAVE_LIBCURSES | |
| pTTYMonitor->rootWindow = initscr(); | |
| if(pTTYMonitor->rootWindow) { | |
| werase(pTTYMonitor->rootWindow); | |
| wrefresh(pTTYMonitor->rootWindow); | |
| } | |
| getmaxyx(pTTYMonitor->rootWindow, rows, cols); | |
| #else /* defined(HAVE_LIBCURSES) */ | |
| rows = 60; /* FIXME: Hardcoded */ | |
| cols = 80; /* FIXME: Hardcoded */ | |
| #endif /* defined(HAVE_LIBCURSES) */ | |
| pTTYMonitor->width = pTTYMonitor->cellWidth*cols; | |
| pTTYMonitor->height = pTTYMonitor->cellWidth*rows; | |
| pTTYMonitor->depth = 1; | |
| } | |
| /*********************************************************************** | |
| * TTYDRV_MONITOR_Finalize | |
| */ | |
| void TTYDRV_MONITOR_Finalize(MONITOR *pMonitor) | |
| { | |
| TTYDRV_MONITOR_DATA *pTTYMonitor = | |
| (TTYDRV_MONITOR_DATA *) pMonitor->pDriverData; | |
| #ifdef HAVE_LIBCURSES | |
| if(pTTYMonitor->rootWindow) { | |
| endwin(); | |
| } | |
| #endif /* defined(HAVE_LIBCURSES) */ | |
| HeapFree(SystemHeap, 0, pTTYMonitor); | |
| } | |
| /*********************************************************************** | |
| * TTYDRV_MONITOR_IsSingleWindow | |
| */ | |
| BOOL TTYDRV_MONITOR_IsSingleWindow(MONITOR *pMonitor) | |
| { | |
| return TRUE; | |
| } | |
| /*********************************************************************** | |
| * TTYDRV_MONITOR_GetWidth | |
| * | |
| * Return the width of the monitor | |
| */ | |
| int TTYDRV_MONITOR_GetWidth(MONITOR *pMonitor) | |
| { | |
| TTYDRV_MONITOR_DATA *pTTYMonitor = | |
| (TTYDRV_MONITOR_DATA *) pMonitor->pDriverData; | |
| return pTTYMonitor->width; | |
| } | |
| /*********************************************************************** | |
| * TTYDRV_MONITOR_GetHeight | |
| * | |
| * Return the height of the monitor | |
| */ | |
| int TTYDRV_MONITOR_GetHeight(MONITOR *pMonitor) | |
| { | |
| TTYDRV_MONITOR_DATA *pTTYMonitor = | |
| (TTYDRV_MONITOR_DATA *) pMonitor->pDriverData; | |
| return pTTYMonitor->height; | |
| } | |
| /*********************************************************************** | |
| * TTYDRV_MONITOR_GetDepth | |
| * | |
| * Return the depth of the monitor | |
| */ | |
| int TTYDRV_MONITOR_GetDepth(MONITOR *pMonitor) | |
| { | |
| TTYDRV_MONITOR_DATA *pTTYMonitor = | |
| (TTYDRV_MONITOR_DATA *) pMonitor->pDriverData; | |
| return pTTYMonitor->depth; | |
| } | |
| /*********************************************************************** | |
| * TTYDRV_MONITOR_GetScreenSaveActive | |
| * | |
| * Returns the active status of the screen saver | |
| */ | |
| BOOL TTYDRV_MONITOR_GetScreenSaveActive(MONITOR *pMonitor) | |
| { | |
| return FALSE; | |
| } | |
| /*********************************************************************** | |
| * TTYDRV_MONITOR_SetScreenSaveActive | |
| * | |
| * Activate/Deactivate the screen saver | |
| */ | |
| void TTYDRV_MONITOR_SetScreenSaveActive(MONITOR *pMonitor, BOOL bActivate) | |
| { | |
| FIXME("(%p, %d): stub\n", pMonitor, bActivate); | |
| } | |
| /*********************************************************************** | |
| * TTYDRV_MONITOR_GetScreenSaveTimeout | |
| * | |
| * Return the screen saver timeout | |
| */ | |
| int TTYDRV_MONITOR_GetScreenSaveTimeout(MONITOR *pMonitor) | |
| { | |
| return 0; | |
| } | |
| /*********************************************************************** | |
| * TTYDRV_MONITOR_SetScreenSaveTimeout | |
| * | |
| * Set the screen saver timeout | |
| */ | |
| void TTYDRV_MONITOR_SetScreenSaveTimeout( | |
| MONITOR *pMonitor, int nTimeout) | |
| { | |
| FIXME("(%p, %d): stub\n", pMonitor, nTimeout); | |
| } |