# KDChartGridAttributes.cpp

Go to the documentation of this file.

    00001 /****************************************************************************
    00002  ** Copyright (C) 2006 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 "KDChartGridAttributes.h"
    00027
    00028 #include <QPen>
    00029 #include <QDebug>
    00030
    00031 #include <KDABLibFakes>
    00032
    00033 #define d d_func()
    00034
    00035 using namespace KDChart;
    00036
    00037 class GridAttributes::Private
    00038 {
    00039     friend class GridAttributes;
    00040 public:
    00041     Private();
    00042 private:
    00043     bool visible;
    00044     KDChartEnums::GranularitySequence sequence;
    00045     qreal stepWidth;
    00046     qreal subStepWidth;
    00047     bool adjustLower;
    00048     bool adjustUpper;
    00049     QPen pen;
    00050     bool subVisible;
    00051     QPen subPen;
    00052     QPen zeroPen;
    00053 };
    00054
    00055 GridAttributes::Private::Private()
    00056     : visible( true ),
    00057       sequence( KDChartEnums::GranularitySequence_10_20 ),
    00058       stepWidth( 0.0 ),
    00059       subStepWidth( 0.0 ),
    00060       adjustLower( true ),
    00061       adjustUpper( true ),
    00062       pen( QColor(0xa0, 0xa0, 0xa0 ) ),
    00063       subVisible( true ),
    00064       subPen( QColor(0xd0, 0xd0, 0xd0 ) ),
    00065       zeroPen( QColor( 0x00, 0x00, 0x80 ) )
    00066 {
    00067     pen.setCapStyle(     Qt::FlatCap );
    00068     subPen.setCapStyle(  Qt::FlatCap );
    00069     zeroPen.setCapStyle( Qt::FlatCap );
    00070 }
    00071
    00072
    00073 GridAttributes::GridAttributes()
    00074     : _d( new Private() )
    00075 {
    00076     // this bloc left empty intentionally
    00077 }
    00078
    00079 GridAttributes::GridAttributes( const GridAttributes& r )
    00080     : _d( new Private( *r.d ) )
    00081 {
    00082 }
    00083
    00084 GridAttributes & GridAttributes::operator=( const GridAttributes& r )
    00085 {
    00086     if( this == &r )
    00087         return *this;
    00088
    00089     *d = *r.d;
    00090
    00091     return *this;
    00092 }
    00093
    00094 GridAttributes::~GridAttributes()
    00095 {
    00096     delete _d; _d = 0;
    00097 }
    00098
    00099
    00100 bool GridAttributes::operator==( const GridAttributes& r ) const
    00101 {
    00102     return  isGridVisible() == r.isGridVisible() &&
    00103             gridGranularitySequence() == r.gridGranularitySequence() &&
    00104             adjustLowerBoundToGrid() == r.adjustLowerBoundToGrid() &&
    00105             adjustUpperBoundToGrid() == r.adjustUpperBoundToGrid() &&
    00106             gridPen() == r.gridPen() &&
    00107             isSubGridVisible() == r.isSubGridVisible() &&
    00108             subGridPen() == r.subGridPen() &&
    00109             zeroLinePen() == r.zeroLinePen();
    00110 }
    00111
    00112
    00113 void GridAttributes::setGridVisible( bool visible )
    00114 {
    00115     d->visible = visible;
    00116 }
    00117
    00118 bool GridAttributes::isGridVisible() const
    00119 {
    00120     return d->visible;
    00121 }
    00122
    00141 void GridAttributes::setGridStepWidth( qreal stepWidth )
    00142 {
    00143     d->stepWidth = stepWidth;
    00144 }
    00145
    00152 qreal GridAttributes::gridStepWidth() const
    00153 {
    00154     return d->stepWidth;
    00155 }
    00156
    00157
    00172 void GridAttributes::setGridSubStepWidth( qreal subStepWidth )
    00173 {
    00174     d->subStepWidth = subStepWidth;
    00175 }
    00176
    00183 qreal GridAttributes::gridSubStepWidth() const
    00184 {
    00185     return d->subStepWidth;
    00186 }
    00187
    00205 void GridAttributes::setGridGranularitySequence( KDChartEnums::GranularitySequence sequence )
    00206 {
    00207     d->sequence = sequence;
    00208 }
    00209
    00216 KDChartEnums::GranularitySequence GridAttributes::gridGranularitySequence() const
    00217 {
    00218     return d->sequence;
    00219 }
    00220
    00221 void GridAttributes::setAdjustBoundsToGrid( bool adjustLower, bool adjustUpper )
    00222 {
    00223     d->adjustLower = adjustLower;
    00224     d->adjustUpper = adjustUpper;
    00225 }
    00226 bool GridAttributes::adjustLowerBoundToGrid() const
    00227 {
    00228     return d->adjustLower;
    00229 }
    00230 bool GridAttributes::adjustUpperBoundToGrid() const
    00231 {
    00232     return d->adjustUpper;
    00233 }
    00234
    00235 void GridAttributes::setGridPen( const QPen & pen )
    00236 {
    00237     d->pen = pen;
    00238     d->pen.setCapStyle( Qt::FlatCap );
    00239 }
    00240
    00241 QPen GridAttributes::gridPen() const
    00242 {
    00243     return d->pen;
    00244 }
    00245
    00246 void GridAttributes::setSubGridVisible( bool visible )
    00247 {
    00248     d->subVisible = visible;
    00249 }
    00250
    00251 bool GridAttributes::isSubGridVisible() const
    00252 {
    00253     return d->subVisible;
    00254 }
    00255
    00256 void GridAttributes::setSubGridPen( const QPen & pen )
    00257 {
    00258     d->subPen = pen;
    00259     d->subPen.setCapStyle( Qt::FlatCap );
    00260 }
    00261
    00262 QPen GridAttributes::subGridPen() const
    00263 {
    00264     return d->subPen;
    00265 }
    00266
    00267 void GridAttributes::setZeroLinePen( const QPen & pen )
    00268 {
    00269     d->zeroPen = pen;
    00270     d->zeroPen.setCapStyle( Qt::FlatCap );
    00271 }
    00272
    00273 QPen GridAttributes::zeroLinePen() const
    00274 {
    00275     return d->zeroPen;
    00276 }
    00277
    00278 #if !defined(QT_NO_DEBUG_STREAM)
    00279 QDebug operator<<(QDebug dbg, const KDChart::GridAttributes& a)
    00280 {
    00281     dbg << "KDChart::GridAttributes("
    00282             << "visible="<<a.isGridVisible()
    00283             << "subVisible="<<a.isSubGridVisible()
    00284             // KDChartEnums::GranularitySequence sequence;
    00285             << "stepWidth=" << a.gridStepWidth()
    00286             << "subStepWidth=" << a.gridSubStepWidth()
    00287             << "pen="<<a.gridPen()
    00288             << "subPen="<<a.subGridPen()
    00289             << "zeroPen="<<a.zeroLinePen()
    00290             << ")";
    00291     return dbg;
    00292 }
    00293 #endif /* QT_NO_DEBUG_STREAM */
    00294