
//////////////////////////////////////
// START of File: BF_DEFS.H
//////////////////////////////////////

#ifndef BF_DEFS_H
#define BF_DEFS_H

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

//
// Master Header File Listing:
//
//#include  <api/include/bf_defs.h>
// "Pull-in" the base framework shared typedef and Data Structure
// Definitions used (or assumed) by this Chart Framework...
//

//**********************************************************
// Uncomment ONE of the three sets of "#include" directives
// below for the appropriate version of the ChartFolio
// Framework to be built on top of:a base framework:
//**********************************************************

//#include    <mfc.hpp>     // For Microsoft MFC
//#include    <zapp.hpp>    // For RogueWave zApp v2.2 and/or v3.0
//#include    <zaf.hpp>    // For Zinc ZAF v5.0
#include    <zaf.hpp>
            // Which SHOULD perform (among other things)
            // some needed typedefs such as BOOL, etc...
            // Note that this #include ASSUMES a defined PATH
            // to the base framework's product directory!

//-----------------------------------------------------------------
// If certain VERY widely-used constants are NOT defined
// by the base framework OR the compiler, libs, etc.,
// (jeepers, creepers!) deal with this foolishness!...
//-----------------------------------------------------------------
#ifndef NULL
#define NULL    0
#endif

//---------------------------------------------------------------------
// Deal with the fact that each and every base framwwork has its OWN
// "unique" definition of the "boolean" data-type missing in C++ !!!
//---------------------------------------------------------------------
#if defined( ZAF_NULLP )    // If we're on top of Zinc ZAF v5.x...
#define  BOOL   bool        // ...map the ChartFolio "Big-BOOL" typedef
                            // ...to the Zinc ZAF v5.x "little-bool".
#endif
                            // OTHERWISE -- if we're on top of zApp or MFC...
                            // ...we'll use their *existing* typedef of BOOL
                            // (which is typically typedef int BOOL).

#ifndef true
#define true    1
#endif                      // Now -- make sure "little-true" is defined...

#ifndef false
#define false   0           // ...as well as "little-false"...
#endif

#ifndef TRUE
#define TRUE    true        // ...and map "Big-TRUE" to "little-true"...
#endif

#ifndef FALSE
#define FALSE   false       // ...as well as "Big-FALSE" to "little-false".
#endif



//===========================================================================
// We think certain types of Borland C++ v5.x warnings are simply LAME:
// Such as in this (pseudo) Example:
//
//      my_Class  *p_WillVary = NULL;
//      for ( int i = 1; i <= NUM_OBJECTS_I_WANT_TO_NEW; i++ )
//      {
//          p_WillVary = new my_Class();
//          // other ops, yada, yada, yada...
//      }
//
//      // Now if we try to RE_USE p_WillVary...
//      p_WillVary = &MyOtherObject;
//      p_WillVary->changeAttribute();
//          // OUTSIDE the scope of the original for-loop!
//
// Which yields dire warnings such as:
//      Warning! p_WillVary is assigned a value which is never used!
//
// No kidding?  So what!  We are performing an EXPLICIT initialization.
// We don't CARE that the instruction spends an extra machine-op cycle.
// We prefer to ensure maintainability and EXPLICIT readability-of-code
// to ENSURE our framework is functioning EXACTLY the way WE want it to.
// If that costs an extra cycle of machine-op time for explicit assignments
// of variables EXACTLY where they are defined, then we will gladly pay
// the price in silicon-time versus programmer debugging/maintanance-time!
//===========================================================================
#if defined( __BORLANDC__ )
#pragma option -w-aus       // ...turn this useless warning off!...
#endif
// However, if you *enjoy* seeing these types of warnings,
// feel free to comment-out the preceeding pragma defines!



//===========================================================================
//
//===========================================================================

#define CF_EXPORT	ZAF_EXPORT

#endif

//////////////////////////////////////
// END of File: BF_DEFS.H
//////////////////////////////////////

