/**************************************************************************** ** Copyright (C) 2001-2011 Klaralvdalens Datakonsult AB. All rights reserved. ** ** This file is part of the KD Chart library. ** ** Licensees holding valid commercial KD Chart licenses may use this file in ** accordance with the KD Chart Commercial License Agreement provided with ** the Software. ** ** ** This file may be distributed and/or modified under the terms of the ** GNU General Public License version 2 and version 3 as published by the ** Free Software Foundation and appearing in the file LICENSE.GPL.txt included. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** ** Contact info@kdab.com if any conditions of this licensing are not ** clear to you. ** **********************************************************************/ #ifndef KDCHART_STOCK_DIAGRAM_P_H #define KDCHART_STOCK_DIAGRAM_P_H #include "KDChartStockDiagram.h" #include "KDChartAbstractCartesianDiagram_p.h" #include "KDChartCartesianDiagramDataCompressor_p.h" #include "KDChartPaintContext.h" namespace KDChart { class StockDiagram::Private : public AbstractCartesianDiagram::Private { friend class StockDiagram; public: Private(); Private( const Private& r ); ~Private(); Type type; StockDiagram *diagram; QBrush upTrendCandlestickBrush; QBrush downTrendCandlestickBrush; QPen upTrendCandlestickPen; QPen downTrendCandlestickPen; QMap upTrendCandlestickBrushes; QMap downTrendCandlestickBrushes; QMap upTrendCandlestickPens; QMap downTrendCandlestickPens; QPen lowHighLinePen; QMap lowHighLinePens; void drawOHLCBar( const CartesianDiagramDataCompressor::DataPoint &open, const CartesianDiagramDataCompressor::DataPoint &high, const CartesianDiagramDataCompressor::DataPoint &low, const CartesianDiagramDataCompressor::DataPoint &close, PaintContext *context ); void drawHLCBar( const CartesianDiagramDataCompressor::DataPoint &high, const CartesianDiagramDataCompressor::DataPoint &low, const CartesianDiagramDataCompressor::DataPoint &close, PaintContext *context ); void drawCandlestick( const CartesianDiagramDataCompressor::DataPoint &open, const CartesianDiagramDataCompressor::DataPoint &high, const CartesianDiagramDataCompressor::DataPoint &low, const CartesianDiagramDataCompressor::DataPoint &close, PaintContext *context ); private: void drawLine( int col, const QPointF &point1, const QPointF &p2, PaintContext *context ); QPointF projectPoint( PaintContext *context, const QPointF &point ) const; QRectF projectCandlestick( PaintContext *context, const QPointF &open, const QPointF &close, qreal width ) const; int openValueColumn() const; int highValueColumn() const; int lowValueColumn() const; int closeValueColumn() const; class ThreeDPainter; }; KDCHART_IMPL_DERIVED_DIAGRAM( StockDiagram, AbstractCartesianDiagram, CartesianCoordinatePlane ) } #endif // KDCHART_STOCK_DIAGRAM_P_H