138 lines
4.2 KiB
C++
Executable File
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 */
|