Personal tools
You are here: Home Projects C++ Cfront releases Release 3.0.3 source demo lang Screen.h
Document Actions

Screen.h

by Michael L Powell last modified 2007-01-26 03:20

Click here to get the file

Size 1.8 kB - File type text/plain

File contents

/*ident	"@(#)cls4:demo/lang/Screen.h	1.1" */
/*#########################################################################
#                       Copyright (c) 1989 AT&T
#                         All Rights Reserved   
#
#                THIS IS PROPRIETARY SOURCE CODE OF AT&T
#       
#                     This code has been published in
#                      C++ Primer by Stanley Lippman
#                    Addison_Wesley Publishing Company
#
#########################################################################*/
#ifndef SCREEN_H
#define SCREEN_H

#include <iostream.h>
#include <string.h>

enum CursorMovements { 
    HOME, FORWARD, BACK, UP, DOWN, BOTTOM 
};

class Screen {
    friend istream& 
        operator>>( istream&, Screen& );
    friend ostream& 
        operator<<( ostream&, Screen& );
public:
    Screen( int = 8, int = 40, char = '#' );
    ~Screen() { delete screen; }
    Screen& home(){ move(1,1); return *this; }
    Screen& forward();
    Screen& back();
    Screen& up();
    Screen& down();
    Screen& lineX( int, int, int, char='-' );
    Screen& lineY( int, int, int, char='|' );
    Screen& bottom();
    Screen& move( CursorMovements );
    Screen& move( int, int );

    char get() { return *cursor; }
    char get( int, int );
    Screen& set( char* );
    Screen& set( char );
    int isEqual( Screen& );
    int isEqual( char* );
    int isEqual( char ch ) { return (ch == *cursor ); }
    int getHeight() { return height; }
    int getWidth() { return width; }

    Screen& copy( Screen& );
    Screen& clear( char = '#' );
    Screen& reSize( int, int, char = '#' );
    Screen& display();
    Screen& stats();
private:
    int row();
    int col();
    int remainingSpace();
    void checkRange(int,int);
private:
    short height, width;
    char *cursor, *screen;
};

#endif
« May 2024 »
Su Mo Tu We Th Fr Sa
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
 

Powered by Plone CMS, the Open Source Content Management System

This site conforms to the following standards: