| /* |
| * 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); |
| } |