111 lines
4.3 KiB
C
111 lines
4.3 KiB
C
|
/* OpenDoors Online Software Programming Toolkit
|
||
|
* (C) Copyright 1991 - 1999 by Brian Pirie.
|
||
|
*
|
||
|
* This library is free software; you can redistribute it and/or
|
||
|
* modify it under the terms of the GNU Lesser General Public
|
||
|
* License as published by the Free Software Foundation; either
|
||
|
* version 2 of the License, or (at your option) any later version.
|
||
|
*
|
||
|
* This library is distributed in the hope that it will be useful,
|
||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||
|
* Lesser General Public License for more details.
|
||
|
*
|
||
|
* You should have received a copy of the GNU Lesser General Public
|
||
|
* License along with this library; if not, write to the Free Software
|
||
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||
|
*
|
||
|
*
|
||
|
* File: ODScrn.h
|
||
|
*
|
||
|
* Description: Functions used to access the local display screen buffer, which
|
||
|
* keeps a copy of the text that is displayed on the remote
|
||
|
* terminal. The local display screen buffer also displays the
|
||
|
* OpenDoors status lines on some platforms. In addition to
|
||
|
* maintaining the current screen buffer, the odscrn.c module
|
||
|
* also contains the code to display this buffer on the screen.
|
||
|
*
|
||
|
* Revisions: Date Ver Who Change
|
||
|
* ---------------------------------------------------------------
|
||
|
* Nov 14, 1995 6.00 BP Created.
|
||
|
* Jan 21, 1996 6.00 BP Added ODScrnShowMessage() and related.
|
||
|
* Jan 27, 1996 6.00 BP Made text-mode window f'ns static.
|
||
|
* Jan 31, 1996 6.00 BP Made them non-static again.
|
||
|
* Jan 31, 1996 6.00 BP Added ODScrnLocalInput().
|
||
|
* Feb 19, 1996 6.00 BP Changed version number to 6.00.
|
||
|
* Mar 03, 1996 6.10 BP Begin version 6.10.
|
||
|
* Mar 19, 1996 6.10 BP MSVC15 source-level compatibility.
|
||
|
*/
|
||
|
|
||
|
#ifndef _INC_ODSCRN
|
||
|
#define _INC_ODSCRN
|
||
|
|
||
|
#include "ODTypes.h"
|
||
|
#include "ODPlat.h"
|
||
|
|
||
|
/* Text information structure. */
|
||
|
typedef struct
|
||
|
{
|
||
|
unsigned char winleft;
|
||
|
unsigned char wintop;
|
||
|
unsigned char winright;
|
||
|
unsigned char winbottom;
|
||
|
unsigned char attribute;
|
||
|
unsigned char curx;
|
||
|
unsigned char cury;
|
||
|
} tODScrnTextInfo;
|
||
|
|
||
|
|
||
|
/* Screen buffer initialization and shutdown functions. */
|
||
|
tODResult ODScrnInitialize(void);
|
||
|
void ODScrnShutdown(void);
|
||
|
|
||
|
/* Basic text output functions. */
|
||
|
void ODScrnDisplayChar(unsigned char chToOutput);
|
||
|
void ODScrnDisplayBuffer(const char *pBuffer, INT nCharsToDisplay);
|
||
|
void ODScrnDisplayString(const char *pszString);
|
||
|
INT ODScrnPrintf(char *pszFormat, ...);
|
||
|
|
||
|
/* Functions for manipulating rectangular areas of the screen buffer. */
|
||
|
BOOL ODScrnGetText(BYTE btLeft, BYTE btTop, BYTE btRight, BYTE btBottom,
|
||
|
void *pbtBuffer);
|
||
|
BOOL ODScrnPutText(BYTE btLeft, BYTE btTop, BYTE btRight, BYTE btBottom,
|
||
|
void *pbtBuffer);
|
||
|
BOOL ODScrnCopyText(BYTE btLeft, BYTE btTop, BYTE btRight, BYTE btBottom,
|
||
|
BYTE btDestColumn, BYTE btDestRow);
|
||
|
|
||
|
/* Functions for clearing portions of the screen buffer. */
|
||
|
void ODScrnClear(void);
|
||
|
void ODScrnClearToEndOfLine(void);
|
||
|
|
||
|
/* Functions for setting or obtaining current display settings. */
|
||
|
void ODScrnSetBoundary(BYTE btLeft, BYTE btTop, BYTE btRight, BYTE btBottom);
|
||
|
void ODScrnSetCursorPos(BYTE btColumn, BYTE btRow);
|
||
|
void ODScrnSetAttribute(BYTE btAttribute);
|
||
|
void ODScrnEnableScrolling(BOOL bEnable);
|
||
|
void ODScrnEnableCaret(BOOL bEnable);
|
||
|
void ODScrnGetTextInfo(tODScrnTextInfo *pTextInfo);
|
||
|
|
||
|
/* Functions for displaying OpenDoors message window. */
|
||
|
void *ODScrnShowMessage(char *pszText, int nFlags);
|
||
|
void ODScrnRemoveMessage(void *pMessageInfo);
|
||
|
|
||
|
/* Additional local output functions for text mode based versions. */
|
||
|
#ifdef OD_TEXTMODE
|
||
|
void *ODScrnCreateWindow(BYTE btLeft, BYTE btTop, BYTE btRight,
|
||
|
BYTE btBottom, BYTE btAttribute, char *pszTitle, BYTE btTitleAttribute);
|
||
|
void ODScrnDestroyWindow(void *pWindow);
|
||
|
void ODScrnLocalInput(BYTE btLeft, BYTE btRow, char *pszString,
|
||
|
BYTE btMaxChars);
|
||
|
#endif /* OD_TEXTMODE */
|
||
|
|
||
|
/* Functions for local screen window under Win32 version. */
|
||
|
#ifdef ODPLAT_WIN32
|
||
|
tODResult ODScrnStartWindow(HANDLE hInstance, tODThreadHandle *phScreenThread,
|
||
|
HWND hwndFrame);
|
||
|
void ODScrnSetFocusToWindow(void);
|
||
|
void ODScrnAdjustWindows(void);
|
||
|
#endif /* ODPLAT_WIN32 */
|
||
|
|
||
|
#endif /* _INC_ODSCRN */
|