//////////////////////////////////////
// START of File: cf_defs.h
//////////////////////////////////////

#ifndef CF_DEFS_H
#define CF_DEFS_H

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

// Master Header File Listing:
//Usage:    #include    <cf_api/cf_defs.h>
            // Chart Framework shared typedef, enum, data-structs,
            // and definitions to yield implementation-independant
            // data-types for this cross-platform framework.


typedef double  CF_4BY4_MATRIX[ 4 ][ 4 ];
                // Std. (homogenoeous) Geometry Transform Matrix.
                // Used primarily by the Chart Framework Kernel.

typedef double  CF_4BY2_MATRIX[ 4 ][ 2 ];
                // Std. Projection Transform Matrix
                // Used primarily by the Chart Framework Kernel.

enum    cf_ChartType    {   CF_TYPE_UNDEFINED,  // until explicitly set!
                            CF_TYPE_AREA,       // also called Integral-Charts
                            CF_TYPE_BAR,        // Horizontal Bars
                            CF_TYPE_COLUMN,     // Vertical Columns Side-by-Side
                            CF_TYPE_LINE,
                            CF_TYPE_PIE,
                            CF_TYPE_PSER,       // yields a P(oint) Ser(ies)
                            CF_TYPE_RIBBON,
                            CF_TYPE_STACK,      // Vertical Columns Stacked
                            CF_TYPE_XPIE,       // still under development...
                            CF_TYPE_CUSTOM };   // ...for CF-experts only!

enum    cf_DispMode     {   CF_DISP_UNDEFINED,  // until explicitly set!
                            CF_DISP_2D,
                            CF_DISP_3D,
                            CF_DISP_CUSTOM };   // ...for CF-experts only!

enum    cf_IndexMode    {   CF_INDEX_UNDEFINED, // until explicitly set!
                            CF_INDEX_NAT_N,     // n = 1, 2, 3, .. N
                            CF_INDEX_INT_I,     // i = 0, 1, 2, .. I
                            CF_INDEX_USR_X,     // e.g. time-series, etc.
                            CF_INDEX_CUSTOM };  // ...for CF-experts only!


enum    cf_ChartAxis    {   CF_AXIS_UNDEFINED, // until explicitly set!
                            CF_AXIS_X_BACK,
                            CF_AXIS_X_BOTTOM,
                            CF_AXIS_Y_BACK,
                            CF_AXIS_Y_LEFT,
                            CF_AXIS_Z_BOTTOM,
                            CF_AXIS_Z_LEFT,
                            CF_AXIS_POLAR_FLOOR,
                            CF_AXIS_CUSTOM };  // ...for CF-experts only!

enum    cf_AxisData     {   CF_AXIS_DOMAIN_LABELS,
                            CF_AXIS_DOMAIN_DATA,
                            CF_AXIS_RANGE_LABELS,
                            CF_AXIS_RANGE_DATA,
                            CF_AXIS_GROUP_LABELS,
                            CF_AXIS_GROUP_DATA };


enum    cf_ChartTitle    {  CF_TITLE_UNDEFINED, // until explicitly set!
                            CF_TITLE_MAIN,
                            CF_TITLE_SUB,
                            CF_TITLE_CUSTOM };  // ...for CF-experts only!

enum    cf_TickSize     {   CF_TICK_MAJOR,
                            CF_TICK_MINOR };


enum    cf_ChartFace   {    CF_FACE_BACK,
                            CF_FACE_BOTTOM,
                            CF_FACE_LEFT };

const int	CF_FLAGS_SHOW_TICKS =				0x0;
const int 	CF_FLAGS_HIDE_TICKS =				0x1;
const int 	CF_FLAGS_INVERT_TICKS =				0x2;
const int 	CF_FLAGS_STAGGER_LABELS =			0x4;  // down-up

#endif

//////////////////////////////////////
// END of File: cf_defs.h
//////////////////////////////////////

