home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / qc25 / include / pgchart.h < prev    next >
Encoding:
C/C++ Source or Header  |  1990-07-25  |  8.4 KB  |  222 lines

  1. /***
  2. *pgchart.h - Deklariert Konstanten, Funktionen und Makros für
  3. *            Diagrammgrafik-Bibliothek.
  4. *
  5. *  Copyright (c) 1988-1990, Microsoft Corporation, Alle Rechte vorbehalten.
  6. *
  7. * Zweck:
  8. *  Diese Datei deklariert die Funktionen der Diagrammgrafik-Bibliothek, sowie
  9. *  die damit benutzten Strukturen und manifesten Konstanten.
  10. *
  11. ***/
  12.  
  13. /* Erzwingt das Wortausrichtung um mögliches Überschreiben von -Zp zu vermeiden */
  14. #pragma    pack(2)
  15.  
  16. /* Nötig für fehlende Wertdefinition */
  17. #define FLT_MAX            3.402823466e+38F    /* Höchstwert */
  18.  
  19. #define _PG_PALETTELEN        16    /* Anzahl Eintragungen interner Palette */
  20. #define _PG_MAXCHARTTYPE    5    /* Maximal verfügbarer Diagrammtyp */
  21. #define _PG_MAXCHARTSTYLE    2    /* Maximum Diagrammstil */
  22. #define _PG_TITLELEN        70    /* Höchstlänge Titeltext */
  23.  
  24. #define _PG_LEFT        1    /* Positionen, Titel und Beschriftungen */
  25. #define _PG_CENTER        2
  26. #define _PG_RIGHT        3
  27. #define _PG_BOTTOM        4
  28. #define _PG_OVERLAY        5
  29.  
  30. #define _PG_LINEARAXIS        1    /* zur Bestimmung der Achsentypen */
  31. #define _PG_LOGAXIS        2
  32.  
  33. #define _PG_DECFORMAT        1    /* Bestimmt Teilstrichbeschriftung */
  34. #define _PG_EXPFORMAT        2
  35.  
  36. #define _PG_BARCHART        1    /* Diagrammtyp für Balkendiagramm */
  37. #define _PG_COLUMNCHART        2    /* Diagrammtyp für Säulendiagramm */
  38. #define  _PG_PLAINBARS        1    /* Stile für Balken- und Säulendiagramme */
  39. #define  _PG_STACKEDBARS    2
  40.  
  41. #define _PG_LINECHART        3    /* Diagrammtyp für Liniendiagramm */
  42. #define _PG_SCATTERCHART    4    /* Diagrammtyp für Streudiagramm */
  43. #define _PG_POINTANDLINE    1    /* Stile fü Linien und Streudiagramme */
  44. #define _PG_POINTONLY        2
  45.  
  46. #define _PG_PIECHART        5    /* Diagrammtyp für Kreisdiagramm */
  47. #define _PG_PERCENT        1    /* Stile für Kreisdiagramme */
  48. #define _PG_NOPERCENT        2
  49.  
  50. #define _PG_MISSINGVALUE    -FLT_MAX    /* bedeutet fehlende Datenwerte */
  51.  
  52. /* Fehlercodes    */
  53.  
  54. /* Bei Fehlernummern über 100 wird die Diagrammroutine abgebrochen, sonst
  55.  * werden die Vorgabewert benutzt.
  56.  */
  57. #define    _PG_NOTINITIALIZED    102    /* Bibliothek nicht initialisiert */
  58. #define    _PG_BADSCREENMODE    103    /* Grafikmodus nicht eingerichtet */
  59. #define    _PG_BADCHARTSTYLE    04    /* Diagrammstil ungültig */
  60. #define    _PG_BADCHARTTYPE    104    /* Diagrammtyp ungültig */
  61. #define    _PG_BADLEGENDWINDOW    105    /* Ungültiges Bschriftungsfenster */
  62. #define    _PG_BADCHARTWINDOW    07    /* x1=x2 oder y1=y2 in */
  63.                     /* Diagrammfenster-Bestimmung  */
  64. #define    _PG_BADDATAWINDOW    107    /* Wenn Diagrammfenster zu klein ist */
  65. #define    _PG_NOMEMORY        108    /* Speicher für Datenfelder zu klein */
  66. #define    _PG_BADLOGBASE        05    /* Log-Basis <= 0 */
  67. #define    _PG_BADSCALEFACTOR    06    /* Maßstabsfaktor = 0 */
  68. #define    _PG_TOOSMALLN        109    /* Anzahl der Datenpunkte <= 0 */
  69. #define    _PG_TOOFEWSERIES    110    /* Anzahl der Datenserien <= 0 */
  70.  
  71. /* Typedefs    */
  72.  
  73. /* Typedef für Diagrammtitel */
  74. #ifndef _TITLETYPE_DEFINED
  75. typedef    struct    {
  76.     char    title[_PG_TITLELEN];    /* Titeltext */
  77.     short    titlecolor;        /* Interne Palettenfarbe für Titeltext */
  78.     short    justify;        /* _PG_LEFT, _PG_CENTER, _PG_RIGHT */
  79. } titletype;
  80. #define _TITLETYPE_DEFINED
  81. #endif
  82.  
  83. /* Typedef für Diagrammachsen */
  84. #ifndef _AXISTYPE_DEFINED
  85. typedef    struct    {
  86.     short        grid;        /* WAHR=Gitter zeichnen; FALSCH=nein */
  87.     short        gridstyle;    /* Stilnummer aus Stilwahl für  */
  88.     titletype    axistitle;    /* Titeldefinition für Achse  */
  89.     short        axiscolor;    /* Farbe für Achse */
  90.     short        labeled;    /* WAHR=Teilstriche und Titel zeichnen */
  91.     short        rangetype;    /* _PG_LINEARAXIS, _PG_LOGAXIS */
  92.     float        logbase;    /* benutzte Basis bei log-Achse */
  93.     short        autoscale;    /* WAHR=System berechnet nächsten 7 Werte */
  94.     float        scalemin;    /* Minimalwert des Maßstabs */
  95.     float        scalemax;    /* Höchstwert des Maßstabs */
  96.     float        scalefactor;    /* Maßstabsfaktor für Daten dieser Achse */
  97.     titletype    scaletitle;    /* Titeldefinition für Maßstabsfaktor */
  98.     float        ticinterval;    /* Abstand der Teilstriche (Welt-Koord.) */
  99.     short        ticformat;    /* _PG_EXPFORMAT oder _PG_DECFORMAT für Teilstrichbeschriftungen*/
  100.     short        ticdecimals;    /*  Anzahl Teilstrich-Dezimalstellen (max=9) */
  101. } axistype;
  102. #define _AXISTYPE_DEFINED
  103. #endif
  104.  
  105. /* Typedef zur Definition der Diagramm- und Datenfenster */
  106. #ifndef _WINDOWTYPE_DEFINED
  107. typedef    struct    {
  108.     short        x1;        /* Linker Rand des Fensters in Bildpunkten */
  109.     short        y1;        /* Oberrand des Fenster in Bildpunkten */
  110.     short        x2;        /* Rechter Rand des Fenster in Bildpunkten */
  111.     short        y2;        /* Unterer Rand des Fenster in Bildpunkten */
  112.     short        border;        /* WAHR = Rand zeichnen, sonst FALSCH */
  113.     short        background;    /* Interne Palettenfarbe für Fenster-Htgrd. */
  114.     short        borderstyle;    /* Stil-Bytes für Fensterrand */
  115.     short        bordercolor;    /* Interne Palettenfarbe für Fensterrand */
  116. } windowtype;
  117. #define _WINDOWTYPE_DEFINED
  118. #endif
  119.  
  120. /* Typedef für Beschriftungsdefinition */
  121. #ifndef _LEGENDTYPE_DEFINED
  122. typedef struct    {
  123.     short        legend;        /* WAHR=Beschriftung; FALSCH=keine */
  124.     short        place;        /* _PG_RIGHT, _PG_BOTTOM, _PG_OVERLAY */
  125.     short        textcolor;    /* Interne Palettenfarbe für Text */
  126.     short        autosize;    /* WAHR=System berechnet Größe */
  127.     windowtype    legendwindow;    /* Fensterdefinition für Beschriftung */
  128. } legendtype;
  129. #define _LEGENDTYPE_DEFINED
  130. #endif
  131.  
  132. /* Typedef für Beschriftungsdefinition */
  133. #ifndef _CHARTENV_DEFINED
  134. typedef struct    {
  135.     short        charttype;    /* _PG_BAR, _PG_COLUMN, _PG_LINE, _PG_SCATTER, _PG_PIE */
  136.     short        chartstyle;    /* Stil für gewählten Diagrammtyp */
  137.     windowtype    chartwindow;    /* Fensterdefinition für ganzes Diagramm */
  138.     windowtype    datawindow;    /* Fensterdefinition, Diagramm-Datenteil */
  139.     titletype    maintitle;    /* Diagramm-Haupttitel */
  140.     titletype    subtitle;    /* Diagramm-Nebentitel */
  141.     axistype    xaxis;        /* Definition für X-Achse */
  142.     axistype    yaxis;        /* Definition für Y-Achse */
  143.     legendtype    legend;        /* Definition für Beschriftung */
  144. } chartenv;
  145. #define _CHARTENV_DEFINED
  146. #endif
  147.  
  148. /* Typedef für Zeichen-Bitabbildung */
  149. #ifndef _CHARMAP_DEFINED
  150. typedef unsigned char charmap[8];
  151. #define _CHARMAP_DEFINED
  152. #endif
  153.  
  154. /* Typedef für Muster-Bitabbildung */
  155. #ifndef _FILLMAP_DEFINED
  156. typedef unsigned char fillmap[8];
  157. #define _FILLMAP_DEFINED
  158. #endif
  159.  
  160. /* Typedef für Paletteneintragungs-Definition */
  161. #ifndef _PALETTEENTRY_DEFINED
  162. typedef struct {
  163.     unsigned short    color;
  164.     unsigned short    style;
  165.     fillmap        fill;
  166.     char        plotchar;
  167. } paletteentry;
  168. #define _PALETTEENTRY_DEFINED
  169. #endif
  170.  
  171. /* Typedef für Palettendefinition */
  172. #ifndef _PALETTETYPE_DEFINED
  173. typedef paletteentry palettetype[_PG_PALETTELEN];
  174. #define _PALETTETYPE_DEFINED
  175. #endif
  176.  
  177. /* Typedef für Stilgruppen */
  178. #ifndef _STYLESET_DEFINED
  179. typedef unsigned short styleset[_PG_PALETTELEN];
  180. #define _STYLESET_DEFINED
  181. #endif
  182.  
  183. /* Funktionsprototypen für Diagrammroutinen    */
  184.  
  185. short _far _cdecl _pg_initchart(void);
  186. short _far _cdecl _pg_defaultchart(chartenv _far *, short, short);
  187.  
  188. short _far _cdecl _pg_chart(chartenv _far *, char _far * _far *, float _far *, short);
  189. short _far _cdecl _pg_chartms(chartenv _far *, char _far * _far *, float _far *, short, short, short, char _far * _far *);
  190.  
  191. short _far _cdecl _pg_chartscatter(chartenv _far *, float _far *, float _far *, short);
  192. short _far _cdecl _pg_chartscatterms(chartenv _far *, float _far *, float _far *, short, short, short, char _far * _far *);
  193.  
  194. short _far _cdecl _pg_chartpie(chartenv _far *, char _far * _far *, float _far *, short _far *, short);
  195.  
  196. /* Funktionsprototypen für Nebenroutinen    */
  197.  
  198. short _far _cdecl _pg_hlabelchart(chartenv _far *, short, short, short, char _far *);
  199. short _far _cdecl _pg_vlabelchart(chartenv _far *, short, short, short, char _far *);
  200.  
  201. short _far _cdecl _pg_analyzechart(chartenv _far *, char _far * _far *, float _far *, short);
  202. short _far _cdecl _pg_analyzechartms(chartenv _far *, char _far * _far *, float _far *, short, short, short, char _far * _far *);
  203.  
  204. short _far _cdecl _pg_analyzescatter(chartenv _far *, float _far *, float _far *, short);
  205. short _far _cdecl _pg_analyzescatterms(chartenv _far *, float _far *, float _far *, short, short, short, char _far * _far *);
  206.  
  207. short _far _cdecl _pg_analyzepie(chartenv _far *, char _far * _far *, float _far *, short _far *, short);
  208.  
  209. short _far _cdecl _pg_getpalette(paletteentry _far *);
  210. short _far _cdecl _pg_setpalette(paletteentry _far *);
  211. short _far _cdecl _pg_resetpalette(void);
  212.  
  213. void  _far _cdecl _pg_getstyleset(unsigned short _far *);
  214. void  _far _cdecl _pg_setstyleset(unsigned short _far *);
  215. void  _far _cdecl _pg_resetstyleset(void);
  216.  
  217. short _far _cdecl _pg_getchardef(short, unsigned char _far *);
  218. short _far _cdecl _pg_setchardef(short, unsigned char _far *);
  219.  
  220. /* Standard-Packen wieder initialisieren */
  221. #pragma pack()
  222.