home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / dokpr1.zip / xfer.h < prev   
C/C++ Source or Header  |  1995-11-08  |  17KB  |  429 lines

  1. /**************************************************************************
  2.  *                                                                        *
  3.  *                                                                        *
  4.  *          This code is copyright (c) 1994                               *
  5.  *                     Athena Design, Inc.                                *
  6.  *                                                                        *
  7.  *                                                                        *
  8.  *                ALL RIGHTS RESERVED                                     *
  9.  *                                                                        *
  10.  *                                                                        *
  11.  *                                                                        *
  12.  *                                                                        *
  13.  *                                                                        *
  14.  **************************************************************************/
  15.  
  16. #ifndef _MH_grXf
  17.  
  18. #define _MH_grXf
  19.  
  20. #include "range.h"
  21. #include "color.h"
  22. #include "graphel.h"
  23. #include "rect.h"
  24. #include "object.h"
  25.  
  26. class MFrameXfer : public MObject
  27. {
  28.     public:
  29.     MFrameXfer();
  30.     virtual void copyFrom(const MFrameXfer *);
  31.     virtual ~MFrameXfer();
  32.     
  33.     virtual int getFrameClass() const {return frameClass;};
  34.     virtual void setFrameClass(int i) {frameClass = i;};
  35.     virtual int isChartClass() const {if (frameClass < 100) return 1; return 0;};
  36.     virtual int isShapeClass() const
  37.     {
  38.         if (frameClass >= 200 && frameClass < 300) return 1;
  39.         return 0;
  40.     };
  41.     virtual int isImageClass() const
  42.     {
  43.         if (frameClass >= 100 && frameClass < 200) return 1;
  44.         return 0;
  45.     };
  46.     
  47.     virtual void setNoMerge();
  48.     
  49.     virtual void setAnchor(const MAddress *ad) {anchor = *ad; mergeAnchor = 1;};
  50.     virtual const MAddress *getAnchor() const {return &anchor;};
  51.     virtual int getMergeAnchor() const {return mergeAnchor;};
  52.     
  53.     virtual int getFrameSize() const {return frameSize;};
  54.     virtual int getMergeFrameSize() const {return mergeFrameSize;};
  55.     virtual void setFrameSize(int i) {frameSize = i; mergeFrameSize = 1;};
  56.     
  57.     virtual void setPos(const MRect *re) {pos = *re; mergePos = 1;};
  58.     virtual const MRect *getPos() const {return &pos;};
  59.     virtual int getMergePos() const {return mergePos;};
  60.     
  61.     virtual void setOrder(int i) {order = i; mergeOrder = 1;};
  62.     virtual int getOrder() const {return order;};
  63.     virtual int getMergeOrder() const {return mergeOrder;};
  64.     
  65.     virtual void setName(const char *);
  66.     virtual const char *getName() const {return name;};
  67.     virtual int getMergeName() const {return mergeName;};
  68.     
  69.     virtual void setScript(const char *);
  70.     virtual const char *getScript() const {return script;};
  71.     virtual int getMergeScript() const {return mergeScript;};
  72.     
  73.     
  74.     virtual const MRange *getRange() const {return &theData;};
  75.     virtual int getMergeRange() const {return mergeRange;};
  76.     virtual void setRange(const MRange *ra) {theData = *ra; mergeRange = 1;};
  77.  
  78.     virtual void setBkgColor(const MColor *c) {bkgColor = *c; mergeBkgColor = 1;};
  79.     virtual void setFrameColor(const MColor *c) {frameColor = *c; mergeFrameColor = 1;};
  80.     virtual void setLegendPosition(int i) {legendPosition = i; mergeLegendPosition = 1;};
  81.     virtual void setLegendInfo(const MGraphElement *ge) {legendInfo.free();
  82.         legendInfo.init(ge); mergeLegendInfo = 1;};
  83.     virtual void setTitles(int,const char *);
  84.     virtual void setTitleInfo(int x,const MGraphElement *ge)
  85.         {titleInfo[x].free();
  86.             titleInfo[x].init(ge); mergeTitleInfo[x] = 1;};
  87.     virtual void setOrientation(int i) {orientation = i; mergeOrient = 1;};
  88.     virtual void setXAutoScale(int i) {xautoScale = i; mergeXAuto = 1;};
  89.     virtual void setYAutoScale(int i) {yautoScale = i; mergeYAuto = 1;};
  90.     virtual void setXLogScale(int i) {xlogScale = i; mergeXLog = 1;};
  91.     virtual void setYLogScale(int i) {ylogScale = i; mergeYLog = 1;};
  92.     virtual void setXAxisRot(int i) {xAxisRot = i; mergeXAxisRot = 1;};
  93.     virtual void setYAxisRot(int i) {yAxisRot = i; mergeYAxisRot = 1;};
  94.     virtual void setMinX(double d) {minX = d; mergeScale = 1;};
  95.     virtual void setMinY(double d) {minY = d; mergeScale = 1;};
  96.     virtual void setMaxX(double d) {maxX = d; mergeScale = 1;};
  97.     virtual void setMaxY(double d) {maxY = d; mergeScale = 1;};
  98.     virtual void setDisplayFormat(int n,int df) {displayFormat[n] = df; mergeDispForm = 1;};
  99.     virtual void setTopTitles(int i) {topTitles = i; mergeTopTitles = 1;};
  100.     virtual void setSideTitles(int i) {sideTitles = i; mergeSideTitles = 1;};
  101.     virtual void setWallCol(const MColor *c) {wallCol = *c; mergeWallCol = 1;};
  102.     virtual void setXRot(int i) {xRot = i; mergeXRot = 1;};
  103.     virtual void setYRot(int i) {yRot = i; mergeYRot = 1;};
  104.     virtual void setWireFrame(int i) {wireFrame = i; mergeWireFrame = 1;};
  105.     virtual void setXMajorTicks(int i) {xMajorTicks = i; mergeXMajorTicks = 1;};
  106.     virtual void setYMajorTicks(int i) {yMajorTicks = i; mergeYMajorTicks = 1;};
  107.     virtual void setXMinorTicks(int i) {xMinorTicks = i; mergeXMinorTicks = 1;};
  108.     virtual void setYMinorTicks(int i) {yMinorTicks = i; mergeYMinorTicks = 1;};
  109.     virtual void setXAxisLoc(int i) {xAxisLoc = i; mergeXAxisLoc = 1;};
  110.     virtual void setYAxisLoc(int i) {yAxisLoc = i; mergeYAxisLoc = 1;};
  111.     virtual void setXMajorGrid(int i) {xMajorGrid = i; mergeXMajorGrid = 1;};
  112.     virtual void setYMajorGrid(int i) {yMajorGrid = i; mergeYMajorGrid = 1;};
  113.     virtual void setXMinorGrid(int i) {xMinorGrid = i; mergeXMinorGrid = 1;};
  114.     virtual void setYMinorGrid(int i) {yMinorGrid = i; mergeYMinorGrid = 1;};
  115.     virtual void setGraphBorder(int i) {graphBorder = i; mergeGraphBorder = 1;};
  116.     virtual void setXGridCol(const MColor *c) {xGridCol = *c; mergeXGridCol = 1;};
  117.     virtual void setYGridCol(const MColor *c) {yGridCol = *c; mergeYGridCol = 1;};
  118.     virtual void setBorderCol(const MColor *c) {borderCol = *c; mergeBorderCol = 1;};
  119.     virtual void setLineWid(int i) {lineWid = i; mergeLineWid = 1;};
  120.     virtual void setBarColWid(int i) {barColWid = i; mergeBarColWid = 1;};
  121.     virtual void setShowPoint(int i) {showPoint = i; mergeShowPoint = 1;};
  122.     virtual void setShowLine(int i) {showLine = i; mergeShowLine = 1;};
  123.     virtual void setXMajTickSize(int i) {xMajTickSize = i; mergeXMajTickSize = 1;};
  124.     virtual void setYMajTickSize(int i) {yMajTickSize = i; mergeYMajTickSize = 1;};
  125.     virtual void setXMinTickSize(int i) {xMinTickSize = i; mergeXMinTickSize = 1;};
  126.     virtual void setYMinTickSize(int i) {yMinTickSize = i; mergeYMinTickSize = 1;};
  127.     virtual void setSingleXRange(int i) {singleXRange = i; mergeSingleXRange = 1;};
  128.     virtual void setGraphElements(int,const MGraphElement *);
  129.     virtual void setAxisInfo(const MGraphElement *ge) 
  130.         {axisInfo.free(); axisInfo.init(ge); mergeAxisInfo = 1;};
  131.  
  132.     virtual int getMergeBkgColor() const {return mergeBkgColor;};
  133.     virtual const MColor *getBkgColor() const {return &bkgColor;};
  134.         
  135.     virtual int getMergeFrameColor() const {return mergeFrameColor;};
  136.     
  137.     virtual const MColor *getFrameColor() const {return &frameColor;};
  138.             
  139.     virtual int getMergeLegendPosition() const {return mergeLegendPosition;};
  140.     virtual int getLegendPosition() const {return legendPosition;};
  141.         
  142.     virtual int getMergeLegendInfo() const {return mergeLegendInfo;};
  143.     virtual const MGraphElement *getLegendInfo() const {return &legendInfo;};
  144.     virtual int getMergeTitles(int x) const {return mergeTitles[x];};
  145.     virtual const char *getTitles(int x) const {return titles[x];};
  146.     virtual int getMergeTitleInfo(int x) const {return mergeTitleInfo[x];};
  147.     virtual const MGraphElement *getTitleInfo(int x) const {return &titleInfo[x];};
  148.     
  149.     virtual int getMergeOrientation() const {return mergeOrient;};
  150.     virtual int getOrientation() const {return orientation;};
  151.         
  152.     virtual int getMergeXAutoScale() const {return mergeXAuto;};
  153.     virtual int getMergeYAutoScale() const {return mergeYAuto;};
  154.     virtual int getXAutoScale() const {return xautoScale;};
  155.     virtual int getYAutoScale() const {return yautoScale;};
  156.             
  157.     virtual int getMergeXLogScale() const {return mergeXLog;};
  158.     virtual int getMergeYLogScale() const {return mergeYLog;};
  159.     virtual int getXLogScale() const {return xlogScale;};
  160.     virtual int getYLogScale() const {return ylogScale;};
  161.     
  162.     virtual int getMergeXAxisRot() const {return mergeXAxisRot;};
  163.     virtual int getXAxisRot() const {return xAxisRot;};
  164.     virtual int getMergeYAxisRot() const {return mergeYAxisRot;};
  165.     virtual int getYAxisRot() const {return yAxisRot;};
  166.             
  167.     virtual int getMergeScale() const {return mergeScale;};
  168.     
  169.     virtual double getMinX() const {return minX;};
  170.     virtual double getMinY() const {return minY;};
  171.     virtual double getMaxX() const {return maxX;};
  172.     virtual double getMaxY() const {return maxY;};
  173.         
  174.     virtual int getMergeDisplayFormat() const {return mergeDispForm;};
  175.     virtual int getDisplayFormat(int i) const {return displayFormat[i];};
  176.     
  177.     virtual int getMergeTopTitles() const {return mergeTopTitles;};
  178.     virtual int getTopTitles() const {return topTitles;};
  179.             
  180.     virtual int getMergeSideTitles() const {return mergeSideTitles;};
  181.     virtual int getSideTitles() const {return sideTitles;};
  182.             
  183.     virtual int getMergeWallCol() const {return mergeWallCol;};
  184.     virtual const MColor *getWallCol() const {return &wallCol;};
  185.         
  186.     virtual int getMergeXRot() const {return mergeXRot;};
  187.     virtual int getXRot() const {return xRot;};
  188.             
  189.     virtual int getMergeYRot() const {return mergeYRot;};
  190.     virtual int getYRot() const {return yRot;};
  191.             
  192.     virtual int getMergeWireFrame() const {return mergeWireFrame;};
  193.     virtual int getWireFrame() const {return wireFrame;};
  194.             
  195.     virtual int getMergeXMajorTicks() const {return mergeXMajorTicks;};
  196.     virtual int getXMajorTicks() const {return xMajorTicks;};
  197.             
  198.     virtual int getMergeYMajorTicks() const {return mergeYMajorTicks;};
  199.     virtual int getYMajorTicks() const {return yMajorTicks;};
  200.             
  201.     virtual int getMergeXMinorTicks() const {return mergeXMinorTicks;};
  202.     virtual int getXMinorTicks()const {return xMinorTicks;};
  203.             
  204.     virtual int getMergeYMinorTicks() const {return mergeYMinorTicks;};
  205.     virtual int getYMinorTicks() const {return yMinorTicks;};
  206.             
  207.     virtual int getMergeXAxisLoc() const {return mergeXAxisLoc;};
  208.     virtual int getXAxisLoc() const {return xAxisLoc;};
  209.             
  210.     virtual int getMergeYAxisLoc() const {return mergeYAxisLoc;};
  211.     virtual int getYAxisLoc()const {return yAxisLoc;};
  212.             
  213.     virtual int getMergeXMajorGrid() const {return mergeXMajorGrid;};
  214.     virtual int getXMajorGrid() const {return xMajorGrid;};
  215.             
  216.     virtual int getMergeYMajorGrid() const {return mergeYMajorGrid;};
  217.     virtual int getYMajorGrid() const {return yMajorGrid;};
  218.     
  219.         
  220.     virtual int getMergeXMinorGrid() const {return mergeXMinorGrid;};
  221.     virtual int getXMinorGrid() const {return xMinorGrid;};
  222.             
  223.     virtual int getMergeYMinorGrid() const {return mergeYMinorGrid;};
  224.     virtual int getYMinorGrid() const {return yMinorGrid;};
  225.         
  226.     virtual int getMergeGraphBorder() const {return mergeGraphBorder;};
  227.     virtual int getGraphBorder() const {return graphBorder;};
  228.             
  229.     virtual int getMergeXGridCol() const {return mergeXGridCol;};
  230.     virtual const MColor *getXGridCol() const {return &xGridCol;};
  231.         
  232.     virtual int getMergeYGridCol() const {return mergeYGridCol;};
  233.     virtual const MColor *getYGridCol() const {return &yGridCol;};
  234.  
  235.     virtual int getMergeBorderCol() const {return mergeBorderCol;};
  236.     virtual const MColor *getBorderCol() const {return &borderCol;};
  237.         
  238.     virtual int getMergeLineWid() const {return mergeLineWid;};
  239.     virtual int getLineWid() const {return lineWid;};
  240.             
  241.     virtual int getMergeBarColWid() const {return mergeBarColWid;};
  242.     virtual int getBarColWid() const {return barColWid;};
  243.             
  244.     virtual int getMergeShowPoint() const {return mergeShowPoint;};
  245.     virtual int getShowPoint() const {return showPoint;};
  246.             
  247.     virtual int getMergeShowLine() const {return mergeShowLine;};
  248.     virtual int getShowLine() const {return showLine;};
  249.             
  250.     virtual int getMergeXMajTickSize() const {return mergeXMajTickSize;};
  251.     virtual int getXMajTickSize() const {return xMajTickSize;};
  252.     
  253.     virtual int getMergeYMajTickSize() const {return mergeYMajTickSize;};
  254.     virtual int getYMajTickSize() const {return yMajTickSize;};
  255.             
  256.     virtual int getMergeXMinTickSize() const {return mergeXMinTickSize;};
  257.     virtual int getXMinTickSize() const {return xMinTickSize;};
  258.             
  259.     virtual int getMergeYMinTickSize() const {return mergeYMinTickSize;};
  260.     virtual int getYMinTickSize() const {return yMinTickSize;};
  261.         
  262.     virtual int getMergeSingleXRange() const {return mergeSingleXRange;};
  263.     virtual int getSingleXRange() const {return singleXRange;};
  264.             
  265.     virtual int getMergeAxisInfo() const {return mergeAxisInfo;};
  266.     virtual const MGraphElement * getAxisInfo() const {return &axisInfo;};
  267.             
  268.     virtual int getMergeElements() const {return mergeElements;};
  269.     virtual int getNumElements() const {return numElements;};
  270.     virtual MGraphElement *getGraphElements() const;
  271.     
  272.     private:
  273.     int frameClass;
  274.     
  275.     virtual MFrameXfer &operator=(const MFrameXfer &) {return *this;};
  276.     
  277.     MAddress anchor;
  278.     
  279.     MRect pos;
  280.     
  281.     int order;
  282.     
  283.     char *name;
  284.     
  285.     char *script;
  286.     
  287.     MRange theData;
  288.  
  289.     MColor bkgColor,frameColor;
  290.     
  291.     int frameSize;
  292.     
  293.     int legendPosition;                // where do we put the legend?
  294.     
  295.     MGraphElement legendInfo;        // get info for the legend
  296.     
  297.     char *titles[4];                // the x, y, first, and second titles
  298.     MGraphElement titleInfo[4];        // display format of the title
  299.         
  300.     // some variables that describe the data...
  301.     int orientation;                // is the data oriented by row or column
  302.     
  303.     int xautoScale;                    // are we scaling ourselves based on the data
  304.     int yautoScale;                    // are we scaling ourselves based on the data
  305.     
  306.     int xlogScale;                    // is the data being log-scaled
  307.     int ylogScale;                    // is the data being log-scaled
  308.     
  309.     int xAxisRot,yAxisRot;
  310.         
  311.     double minX,maxX,minY,maxY;        // the scale values
  312.     
  313.     int displayFormat[2];            // the number formating for the X and Y axises
  314.     
  315.     int topTitles,sideTitles;
  316.  
  317.     MColor wallCol;                    // the color of the "wall" behind the graphs
  318.     
  319.     int xRot,yRot;                    // x and y rotation perspective
  320.     
  321.     int wireFrame;                    // is this a wire-frame?
  322.     
  323.     int xMajorTicks,yMajorTicks;        // do we draw tick marks for major items
  324.     
  325.     int xMinorTicks,yMinorTicks;        // do we draw tick marks for minor items
  326.     
  327.     int xAxisLoc,yAxisLoc;                // the locations of the x and y axises
  328.     
  329.     int xMajorGrid,xMinorGrid;            // do we have x and y grids
  330.     
  331.     int yMajorGrid,yMinorGrid;
  332.     
  333.     int graphBorder;                    // is there a border around the graph?
  334.     
  335.     MColor xGridCol,yGridCol,borderCol;    // colors of the above items
  336.     
  337.     int lineWid,barColWid;
  338.     int showPoint,showLine;
  339.     int xMajTickSize,xMinTickSize;
  340.     int yMajTickSize,yMinTickSize;
  341.     int singleXRange;
  342.     
  343.     MGraphElement axisInfo;
  344.     int numElements;
  345.     MGraphElement *elements; 
  346.  
  347.  
  348.     char mergeAnchor;
  349.     
  350.     char mergePos;
  351.     
  352.     char mergeOrder;
  353.     
  354.     char mergeName;
  355.     
  356.     char mergeScript;
  357.     
  358.     char mergeRange;
  359.  
  360.     char mergeBkgColor,mergeFrameColor;
  361.     
  362.     char mergeFrameSize;
  363.     
  364.     char mergeLegendPosition;
  365.     
  366.     char mergeLegendInfo;
  367.     
  368.     char mergeTitles[4];
  369.     
  370.     char mergeTitleInfo[4];
  371.         
  372.     char mergeOrient;
  373.     
  374.     char mergeXAuto;
  375.     char mergeYAuto;
  376.     
  377.     char mergeXLog;
  378.     char mergeYLog;
  379.     
  380.     char mergeXAxisRot;
  381.     char mergeYAxisRot;
  382.     
  383.     char mergeScale;
  384.     
  385.     char mergeDispForm;
  386.     
  387.     char mergeTopTitles,mergeSideTitles;
  388.  
  389.     char mergeWallCol;
  390.     
  391.     char mergeXRot,mergeYRot;
  392.     
  393.     char mergeWireFrame;
  394.     
  395.     char mergeXMajorTicks,mergeYMajorTicks;
  396.     
  397.     char mergeXMinorTicks,mergeYMinorTicks;
  398.     
  399.     char mergeXAxisLoc,mergeYAxisLoc;
  400.     
  401.     char mergeXMajorGrid,mergeXMinorGrid;
  402.     
  403.     char mergeYMajorGrid, mergeYMinorGrid;
  404.     
  405.     char mergeGraphBorder;
  406.     
  407.     char mergeXGridCol,mergeYGridCol, mergeBorderCol;
  408.     
  409.     char mergeLineWid,mergeBarColWid;
  410.     
  411.     char mergeShowPoint,mergeShowLine;
  412.     
  413.     char mergeXMajTickSize,mergeXMinTickSize;
  414.     
  415.     char mergeYMajTickSize,mergeYMinTickSize;
  416.     
  417.     char mergeSingleXRange;
  418.     char mergeAxisInfo,mergeElements;
  419.     
  420. };
  421.  
  422. /*
  423.     
  424. }
  425. */
  426.  
  427. // ifndef _MH_grXf
  428. #endif
  429.