campo-sirio/al/h/bargraph.h
alex 714dd74636 Archive Library versione 2.00
git-svn-id: svn://10.65.10.50/trunk@5350 c028cbd2-c16b-5b4b-a496-9718f37d4682
1997-10-09 16:09:54 +00:00

138 lines
4.2 KiB
C++
Executable File

/*
* BARGRAPH.H
*
* Header file for ArchiveLib 2.0
*
* Copyright (c) 1994-1996 Greenleaf Software, Inc.
* All Rights Reserved
*
* DESCRIPTION
*
* The class definition for ALBarGraph is found here.
*
* CLASS DEFINITIONS:
*
* class ALBarGraph
*
* REVISION HISTORY
*
* May 26, 1994 1.0A : First release
*
* January 9, 1995 1.01A : The bargraph class was modified so that it
* could be used in a DOS DLL. This mostly
* meant adding those far definitions to the
* member function prototypes. It also meant
* creation of ALBarGraph::new().
*
* February 14, 1996 2.0: New release
*/
#ifndef _BARGRAPH_H
#define _BARGRAPH_H
#include "arclib.h"
/*
* class ALBarGraph : public ALMonitor
*
* DESCRIPTION
*
* This is a utility class. The constructor opens a file for input,
* and keeps track of whether it was already open or not. The destructor
* will automatically close the file if it was closed when the
* ctor was invoked.
*
* DATA MEMBERS
*
* miCurrentOffset : The current offset of the bargraph, in screen
* units. Usually the bar itself is 20 characters
* long, in which case this value will be somewhere
* between 0 and 19.
*
* miBarLength : The length of the bar, defined when the
* constructor is called. This is a const member,
* which means we can leave it public.
*
* mrStream : Reference to an output stream. This is the
* stream where the bargraph gets drawn.
*
* MEMBER FUNCTIONS
*
* ALBarGraph() : The constructor.
* ~ALBarGraph() : Virtual destructor.
* Progress() : The progress routine, where the bargraph
* gets updated.
* ArchiveOperation() : The routine that gets called when files
* are opened, closed, etc.
*
* REVISION HISTORY
*
* May 26, 1994 1.0A : First release
*
* February 14, 1996 2.0A : New release
*/
/*
* Microsoft refuses to define cout if you are building a
* windows DLL. So, we work around that here by preventing
* anyone from using the bargraph class from a DLL. That's
* okay anyway, since Microsoft doesn't have a 16 bit
* DLL RTL.
*/
#if !defined( AL_MICROSOFT) || !defined( AL_BUILDING_DLL ) || ( defined( AL_MICROSOFT ) && defined( AL_FLAT_MODEL ) )
#if defined( __cplusplus )
class AL_CLASS_TYPE ALBarGraph : public ALMonitor { /* Tag public class */
/*
* Constructors, destructors, and friend classes
*/
public :
AL_PROTO ALBarGraph( ALMonitorType monitor_type,
ostream AL_DLL_FAR& stream = cout,
int bar_length = 25 );
virtual AL_PROTO ~ALBarGraph();
#if defined( AL_USING_DLL ) || defined( AL_BUILDING_DLL )
void AL_DLL_FAR * AL_PROTO operator new( size_t size );
#endif
/*
* The copy constructor and assignment operator do not exist.
*/
protected :
AL_PROTO ALBarGraph( const ALBarGraph AL_DLL_FAR & );
ALBarGraph AL_DLL_FAR & AL_PROTO operator=( const ALBarGraph AL_DLL_FAR & );
/*
* Member functions
*/
protected :
virtual void AL_PROTO Progress( long object_so_far,
ALStorage AL_DLL_FAR & object );
virtual void AL_PROTO
ArchiveOperation( ALArchiveOperation operation,
ALArchive AL_DLL_FAR *archive,
ALEntry AL_DLL_FAR *job );
/*
* Data Members
*/
protected :
int miCurrentOffset;
const int miBarLength;
ostream AL_DLL_FAR & mrStream;
public :
AL_CLASS_TAG( _ALBarGraphTag );
};
#else /* #if defined( __cplusplus ) ... */
AL_LINKAGE hALMonitor AL_FUNCTION
newALBarGraph( enum ALMonitorType monitor_type );
#endif /* #if defined( __cplusplus ) ... #else ... */
#endif /* #if !defined( AL_MICROSOFT) || !defined( AL_BUILDING_DLL ) */
#endif /* #ifdef _BARGRAPH_H */