129 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			129 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
/*
 | 
						|
 * SPINNER.H
 | 
						|
 *
 | 
						|
 *  Header file for ArchiveLib 2.0
 | 
						|
 *
 | 
						|
 *  Copyright (c) 1994-1996 Greenleaf Software, Inc.
 | 
						|
 *  All Rights Reserved
 | 
						|
 *
 | 
						|
 * DESCRIPTION
 | 
						|
 *
 | 
						|
 *  This header file contains the class definition for the ALMonitor
 | 
						|
 *  derived object ALSpinner.
 | 
						|
 *
 | 
						|
 * CLASS DEFINITIONS:
 | 
						|
 *
 | 
						|
 *  ALSpinner
 | 
						|
 *
 | 
						|
 * REVISION HISTORY
 | 
						|
 *
 | 
						|
 *  May 26, 1994  1.0A  : First release
 | 
						|
 *
 | 
						|
 *  January 9, 1995  1.01A : The spinner 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 ALSpinner::new().
 | 
						|
 *
 | 
						|
 * February 14, 1996  2.0: New release
 | 
						|
 */
 | 
						|
 | 
						|
#ifndef _SPINNER_H
 | 
						|
#define _SPINNER_H
 | 
						|
 | 
						|
#include "arclib.h"
 | 
						|
 | 
						|
/*
 | 
						|
 * class ALSpinner : public ALMonitor
 | 
						|
 *
 | 
						|
 * DESCRIPTION
 | 
						|
 *
 | 
						|
 *  ALSpinner is a very simple monitor class, and is only useful under
 | 
						|
 *  DOS, not Windows.  All ALSpinner does is spin a little propellor
 | 
						|
 *  around while the file is being processed.  This lets you know
 | 
						|
 *  that something is happening in an otherwise boring process.
 | 
						|
 *
 | 
						|
 * DATA MEMBERS
 | 
						|
 *
 | 
						|
 *  miSpinIndex     : A Static variable that keeps track of which
 | 
						|
 *                    position the propellor should be in.  The
 | 
						|
 *                    propellor travels through one of four different
 | 
						|
 *                    positions.
 | 
						|
 *
 | 
						|
 *  mrStream        : A reference to the stream that the propellor is
 | 
						|
 *                    going to be written on.
 | 
						|
 *
 | 
						|
 * MEMBER FUNCTIONS
 | 
						|
 *
 | 
						|
 *  ALSpinner()         : The one and only constructor.
 | 
						|
 *  ~ALSpinner()        : The virtual destructor.
 | 
						|
 *  Progress()          : The routine that gets called to make the
 | 
						|
 *                        propellor twitch.
 | 
						|
 *  ArchiveOperation()  : The routine that gets called when archiving
 | 
						|
 *                        starts, stops, etc.
 | 
						|
 *
 | 
						|
 * REVISION HISTORY
 | 
						|
 *
 | 
						|
 *  May 26, 1994  1.0A  : First 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 ALSpinner : public ALMonitor {  /* Tag public class */
 | 
						|
/*
 | 
						|
 *  Constructors, destructors, and friend classes
 | 
						|
 */
 | 
						|
    public :
 | 
						|
        AL_PROTO ALSpinner( ALMonitorType monitor_type,
 | 
						|
                            ostream AL_DLL_FAR & stream = cout );
 | 
						|
        virtual AL_PROTO ~ALSpinner();
 | 
						|
#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 ALSpinner( const ALSpinner AL_DLL_FAR & );
 | 
						|
        ALSpinner AL_DLL_FAR & AL_PROTO operator=( const ALSpinner AL_DLL_FAR & );
 | 
						|
/*
 | 
						|
 *  Member functions
 | 
						|
 */
 | 
						|
    protected :
 | 
						|
        virtual void AL_PROTO Progress( long mlObjectSoFar,
 | 
						|
                                        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 :
 | 
						|
        static int miSpinIndex;
 | 
						|
        ostream AL_DLL_FAR & mrStream;
 | 
						|
    public :
 | 
						|
        AL_CLASS_TAG( _ALSpinnerTag );
 | 
						|
};
 | 
						|
 | 
						|
#else  /* #if defined( __cplusplus ) ... */
 | 
						|
 | 
						|
AL_LINKAGE hALMonitor AL_FUNCTION
 | 
						|
newALSpinner( enum ALMonitorType monitor_type );
 | 
						|
 | 
						|
#endif /* #if defined( __cplusplus ) ... #else ... */
 | 
						|
 | 
						|
#endif /* #if !defined( AL_MICROSOFT) || !defined( AL_BUILDING_DLL ) */
 | 
						|
 | 
						|
#endif /* #ifdef SPINNER_H           */
 |