fruitjam-doom/textscreen/txt_main.h
Simon Howard 517af9477b textscreen: Rejig how the entire drawing process works. Add a recursive
layout method that assigns the position and size of widgets for the whole
window before drawing. Add another method that responds to mouse button
presses. Allow windows to have no title bar by specifying NULL as the
title.

Subversion-branch: /trunk/chocolate-doom
Subversion-revision: 547
2006-06-02 19:29:24 +00:00

109 lines
2.7 KiB
C++

// Emacs style mode select -*- C++ -*-
//-----------------------------------------------------------------------------
//
// $Id: txt_main.h 547 2006-06-02 19:29:24Z fraggle $
//
// Copyright(C) 1993-1996 Id Software, Inc.
// Copyright(C) 2005 Simon Howard
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation; either version 2
// of the License, or (at your option) any later version.
//
// This program 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 General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
// 02111-1307, USA.
//
// $Log$
// Revision 1.2 2006/01/13 18:23:28 fraggle
// Textscreen getchar() function; remove SDL code from I_Endoom.
//
// Revision 1.1 2005/10/02 03:16:03 fraggle
// Text mode emulation code
//
//
//-----------------------------------------------------------------------------
//
// Text mode emulation in SDL
//
//-----------------------------------------------------------------------------
#ifndef TXT_MAIN_H
#define TXT_MAIN_H
// Special keypress values that correspond to mouse button clicks
//
#define TXT_MOUSE_LEFT 1
#define TXT_MOUSE_RIGHT 2
#define TXT_MOUSE_MIDDLE 3
// Screen size
#define TXT_SCREEN_W 80
#define TXT_SCREEN_H 25
#define TXT_COLOR_BLINKING (1 << 3)
typedef enum
{
TXT_COLOR_BLACK,
TXT_COLOR_BLUE,
TXT_COLOR_GREEN,
TXT_COLOR_CYAN,
TXT_COLOR_RED,
TXT_COLOR_MAGENTA,
TXT_COLOR_BROWN,
TXT_COLOR_GREY,
TXT_COLOR_DARK_GREY,
TXT_COLOR_BRIGHT_BLUE,
TXT_COLOR_BRIGHT_GREEN,
TXT_COLOR_BRIGHT_CYAN,
TXT_COLOR_BRIGHT_RED,
TXT_COLOR_BRIGHT_MAGENTA,
TXT_COLOR_YELLOW,
TXT_COLOR_BRIGHT_WHITE,
} txt_color_t;
// Initialise the screen
// Returns 1 if successful, 0 if failed.
int TXT_Init(void);
// Shut down text mode emulation
void TXT_Shutdown(void);
// Get a pointer to the buffer containing the raw screen data.
unsigned char *TXT_GetScreenData(void);
// Update an area of the screen
void TXT_UpdateScreenArea(int x, int y, int w, int h);
// Update the whole screen
void TXT_UpdateScreen(void);
// Read a character from the keyboard
int TXT_GetChar(void);
// Provides a short description of a key code, placing into the
// provided buffer.
void TXT_GetKeyDescription(int key, char *buf);
// Retrieve the current position of the mouse
void TXT_GetMouseState(int *x, int *y);
#endif /* #ifndef TXT_MAIN_H */