00001 /**************************************************************************** 00002 ** Copyright (C) 2007 Klarälvdalens Datakonsult AB. All rights reserved. 00003 ** 00004 ** This file is part of the KD Chart library. 00005 ** 00006 ** This file may be distributed and/or modified under the terms of the 00007 ** GNU General Public License version 2 as published by the Free Software 00008 ** Foundation and appearing in the file LICENSE.GPL included in the 00009 ** packaging of this file. 00010 ** 00011 ** Licensees holding valid commercial KD Chart licenses may use this file in 00012 ** accordance with the KD Chart Commercial License Agreement provided with 00013 ** the Software. 00014 ** 00015 ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 00016 ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 00017 ** 00018 ** See http://www.kdab.net/kdchart for 00019 ** information about KDChart Commercial License Agreements. 00020 ** 00021 ** Contact info@kdab.net if any conditions of this 00022 ** licensing are not clear to you. 00023 ** 00024 **********************************************************************/ 00025 00026 #include "KDChartPieAttributes.h" 00027 #include "KDChartPieAttributes_p.h" 00028 00029 #include <QDebug> 00030 00031 #include <KDABLibFakes> 00032 00033 #define d d_func() 00034 00035 00036 using namespace KDChart; 00037 00038 00039 PieAttributes::Private::Private() 00040 : explodeFactor( 0.0 ) 00041 , tangentialGapFactor( 0.0 ) 00042 , radialGapFactor( 0.0 ) 00043 { 00044 } 00045 00046 00047 PieAttributes::PieAttributes() 00048 : _d( new Private() ) 00049 { 00050 } 00051 00052 PieAttributes::PieAttributes( const PieAttributes& r ) 00053 : _d( new Private( *r.d ) ) 00054 { 00055 } 00056 00057 PieAttributes& PieAttributes::operator= ( const PieAttributes& r ) 00058 { 00059 if( this == &r ) 00060 return *this; 00061 00062 *d = *r.d; 00063 00064 return *this; 00065 } 00066 00067 PieAttributes::~PieAttributes() 00068 { 00069 delete _d; _d = 0; 00070 } 00071 00072 00073 bool PieAttributes::operator==( const PieAttributes& r ) const 00074 { 00075 return 00076 explodeFactor() == r.explodeFactor() && 00077 gapFactor( true ) == r.gapFactor( true ) && 00078 gapFactor( false) == r.gapFactor( false); 00079 } 00080 00081 00082 void PieAttributes::init( ) 00083 { 00084 00085 } 00086 00087 void PieAttributes::setExplode( bool enabled ) 00088 { 00089 d->explodeFactor = (enabled ? 0.1 : 0.0); 00090 } 00091 00092 bool PieAttributes::explode() const 00093 { 00094 return (d->explodeFactor != 0.0); 00095 } 00096 00097 void PieAttributes::setExplodeFactor( qreal factor ) 00098 { 00099 d->explodeFactor = factor; 00100 } 00101 00102 qreal PieAttributes::explodeFactor() const 00103 { 00104 return d->explodeFactor; 00105 } 00106 00107 void PieAttributes::setGapFactor( bool circular, qreal factor ) 00108 { 00109 if ( circular ) 00110 d->tangentialGapFactor = factor; 00111 else 00112 d->radialGapFactor = factor; 00113 } 00114 00115 qreal PieAttributes::gapFactor( bool circular ) const 00116 { 00117 return circular ? d->tangentialGapFactor : d->radialGapFactor; 00118 } 00119 00120 #if !defined(QT_NO_DEBUG_STREAM) 00121 QDebug operator<<(QDebug dbg, const KDChart::PieAttributes& a) 00122 { 00123 dbg << "KDChart::PieAttributes("; 00124 dbg << "explodeFactor="<< a.explodeFactor() << ")"; 00125 return dbg; 00126 } 00127 #endif /* QT_NO_DEBUG_STREAM */ 00128