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