kchart

KDChartPiePainter.h

00001 /* -*- Mode: C++ -*-
00002    KDChart - a multi-platform charting engine
00003    */
00004 
00005 /****************************************************************************
00006  ** Copyright (C) 2001-2003 Klarälvdalens Datakonsult AB.  All rights reserved.
00007  **
00008  ** This file is part of the KDChart library.
00009  **
00010  ** This file may be distributed and/or modified under the terms of the
00011  ** GNU General Public License version 2 as published by the Free Software
00012  ** Foundation and appearing in the file LICENSE.GPL included in the
00013  ** packaging of this file.
00014  **
00015  ** Licensees holding valid commercial KDChart licenses may use this file in
00016  ** accordance with the KDChart Commercial License Agreement provided with
00017  ** the Software.
00018  **
00019  ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
00020  ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
00021  **
00022  ** See http://www.klaralvdalens-datakonsult.se/?page=products for
00023  **   information about KDChart Commercial License Agreements.
00024  **
00025  ** Contact info@klaralvdalens-datakonsult.se if any conditions of this
00026  ** licensing are not clear to you.
00027  **
00028  **********************************************************************/
00029 #ifndef __KDCHARTPIEPAINTER_H__
00030 #define __KDCHARTPIEPAINTER_H__
00031 
00032 #include <KDChartPainter.h>
00033 #include <KDChartTable.h>
00034 
00035 class KDChartParams;
00036 
00037 class KDChartPiePainter : public KDChartPainter
00038 {
00039     friend class KDChartPainter;
00040     protected:
00041     KDChartPiePainter( KDChartParams* params );
00042     virtual ~KDChartPiePainter();
00043 
00044     virtual void paintData( QPainter* painter, 
00045             KDChartTableDataBase* data,
00046             bool paint2nd,
00047             KDChartDataRegionList* regions = 0 );
00048     virtual void drawOnePie( QPainter* painter, 
00049             KDChartTableDataBase* data,
00050             uint dataset, uint pie, uint chart,
00051             uint threeDPieHeight,
00052             KDChartDataRegionList* regions = 0 );
00053     virtual void draw3DEffect( QPainter* painter, const QRect& drawPosition,
00054             uint dataset, uint pie, uint chart,
00055             uint threeDPieHeight,
00056             bool explode,
00057             QRegion* region = 0 );
00058     void drawStraightEffectSegment( QPainter* painter, const QRect& rect,
00059             uint dataset, uint pie, uint chart,
00060             int threeDHeight, int angle,
00061             QRegion* region = 0 );
00062     void drawArcEffectSegment( QPainter* painter, const QRect& rect,
00063             uint dataset, uint pie, uint chart,
00064             int threeDHeight, int startAngle,
00065             int endAngle,
00066             QRegion* region = 0 );
00067 
00068     virtual QString fallbackLegendText( uint dataset ) const;
00069     virtual uint numLegendFallbackTexts( KDChartTableDataBase* data ) const;
00070 
00071     uint findPieAt( int angle );
00072     uint findLeftPie( uint pie );
00073     uint findRightPie( uint pie );
00074 
00075     QMemArray < int > _startAngles;
00076     QMemArray < int > _angleLens;
00077 
00078     QRect _position;
00079     int _size;
00080     int _numValues; // PENDING(kalle) Move to base class
00081 }
00082 ;
00083 
00084 #endif
KDE Home | KDE Accessibility Home | Description of Access Keys