//////////////////////////////////////
// START of File: B0_DSBMP.HPP
//////////////////////////////////////

#ifndef B0_DSBMP_HPP			// Avoid multiple includes...
#define B0_DSBMP_HPP	TRUE	// ...holds to a terminal #endif below...

//===================================================================
//
// COPYRIGHT NOTICE:  This code is protected by Copyright!
//
// Copyright (c) 1994, 1995, 1996, 1997 by DPC Technology.
// All rights reserved. 
//
// See files "cf_copyr.txt" and "cf_licen.txt" for details of 
// copyright and license specifications, and contact information.
//
//===================================================================

//
// Master Header File Listing:
//
// #include    <cf_api/b0_dsbmp.hpp>	
//
// Mappings of "bitmap" and "bitmap display contexts".
//
// Used by the Chart Framework for display output operations.
// NOTE: Heavy Dependencies between b0_fonts.hpp and b0_dspla.hpp!
//
// Note that some of the "bitmap display context" member methods 
// are parallel/duplications of some of the "display/display-
// context" member methods in "b0_dspla.hpp"...
//

//
// Include the Zinc base headers.
//

//--------------------------------------------------------------------
// Include Chart Framework class or ID defs/headers this file needs.
// Paths are relative to the IDE's (global) include path: ~/cfrz
//--------------------------------------------------------------------
class		cf_2DRect;
#include    <cf_api/c0_dimen.hpp>

class		bf_Display;
#include    <cf_api/b0_dspla.hpp>


//
// Map a Chart Framework "Base Framework Bitmap" Object onto 
// the Underlying Framework's "Base Framework Bitmap" object:
//
class CF_EXPORT	bf_2DBitmap
{

public:

	bf_2DBitmap( bf_Display		*p_bf_dspUseThisDisplay,
				char*			szBitmapFileName );

	~bf_2DBitmap();

	cf_2DRect	bmp_size();
	int			bmp_height();
	int			bmp_width();
				//
				// We modify these method names with a "bmp_" prefix 
				// to insure we are CLEARLY mapped away from the 
				// base framework...
				//

};	//
	// End of bf_2DBitmap Declaration.
	//



//
// Map a Chart Framework "Base Framework BitmapDisplay" Object onto 
// the Underlying Framework's "Base Framework BitmapDisplay" object:
//
class CF_EXPORT	bf_2DBitmapDisplay 
{

public:

	bf_2DBitmapDisplay(	bf_Display		*p_bf_dspUseThisDisplay, 
							int				iBitmapWidth, 
							int				iBitmapHeight );

	~bf_2DBitmapDisplay();


	//
	// The Chart Framework cf_3DBitmap class 
	// extends the set of display-oriented calls that
	// must be mapped onto the base framework's display
	// functionality:
	//
	bf_Color	bdsp_pixel(	int iX, int iY );

    bf_2DBitmap*	bdsp_setBitmap( bf_2DBitmap *p_bf_2dbmpSource );
				//
				// We modify these method names with a "bdsp_" prefix 
				// to insure we are CLEARLY mapped away from the 
				// base framework...
				//


	//
	// The Chart Framework "Chart Bitmap Wall" class 
	// appears to make a call to
	// bf_2DBitmapDisplay::bitmap(...) as per the
	// spec below:
	//
	//		BOOL	bitmap( bf_2DBitmap* 	p_bf_bmUseThisBitMap, 
	//						cf_2DPoint		bf_2dpPlaceAt,
	//						cf_2DRect		bf_2drSizedBy  );
	//
	// But this really is handled by the BASE class
	// that bf_2DBitmapDisplay is derived from,
	// namely, class bf_Display::bitmap(...).
	//


	//
	// The cf_3DBitmap class 
	// extends the set of display-oriented calls that
	// must be mapped onto the base framework's display
	// functionality:
	//
	BOOL	bdsp_bitmap(	bf_2DBitmap	*p_bf_2dbmpSource, 
							cf_2DPoint		bf_2dpPlaceAt,
							cf_2DRect		bf_2drSizedBy );


};	//
	// End of bf_2DBitmapDisplay Declaration.
	//

#endif		// Terminates include re-definition protection

//////////////////////////////////////
// END of File: B0_DSBMP.HPP
//////////////////////////////////////
			
