# KDChartAbstractAreaBase.h

Go to the documentation of this file.

    00001 /* -*- Mode: C++ -*-
    00002    KDChart - a multi-platform charting engine
    00003    */
    00004
    00005 /****************************************************************************
    00006  ** Copyright (C) 2005-2007 Klarälvdalens Datakonsult AB.  All rights reserved.
    00007  **
    00008  ** This file is part of the KD Chart 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 KD Chart licenses may use this file in
    00016  ** accordance with the KD Chart 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.kdab.net/kdchart for
    00023  **   information about KD Chart Commercial License Agreements.
    00024  **
    00025  ** Contact info@kdab.net if any conditions of this
    00026  ** licensing are not clear to you.
    00027  **
    00028  **********************************************************************/
    00029
    00030 #ifndef KDCHARTABSTRACTAREABASE_H
    00031 #define KDCHARTABSTRACTAREABASE_H
    00032
    00033 #include <QPointF>
    00034 #include <QSizeF>
    00035 #include <QRectF>
    00036
    00037 #include "KDChartGlobal.h"
    00038 #include "KDChartLayoutItems.h"
    00039 #include "KDChartRelativePosition.h"
    00040 #include "KDChartAbstractAreaBase.h"
    00041
    00042
    00043 class QPainter;
    00044 class QString;
    00045 namespace KDChart {
    00046     class TextAttributes;
    00047     class BackgroundAttributes;
    00048     class FrameAttributes;
    00049     class PaintContext;
    00050
    00051
    00069 class KDCHART_EXPORT AbstractAreaBase
    00070 {
    00071     Q_DISABLE_COPY( AbstractAreaBase )
    00072     KDCHART_DECLARE_PRIVATE_BASE_POLYMORPHIC( AbstractAreaBase )
    00073
    00074 protected:
    00075     AbstractAreaBase();
    00076     virtual ~AbstractAreaBase() ;
    00077
    00078 public:
    00079 //    virtual AbstractAreaBase * clone() const = 0;
    00080
    00084     bool compare( const AbstractAreaBase* other )const;
    00085
    00086     void alignToReferencePoint( const RelativePosition& position );
    00087
    00088     void setFrameAttributes( const FrameAttributes &a );
    00089     FrameAttributes frameAttributes() const;
    00090
    00091     void setBackgroundAttributes( const BackgroundAttributes &a );
    00092     BackgroundAttributes backgroundAttributes() const;
    00093
    00094     virtual void paintBackground( QPainter& painter, const QRect& rectangle );
    00095     virtual void paintFrame( QPainter& painter, const QRect& rectangle );
    00096
    00097     static void paintBackgroundAttributes( QPainter& painter, const QRect& rectangle,
    00098         const KDChart::BackgroundAttributes& attributes );
    00099     static void paintFrameAttributes( QPainter& painter, const QRect& rectangle,
    00100         const KDChart::FrameAttributes& attributes );
    00101
    00107     void getFrameLeadings(int& left, int& top, int& right, int& bottom ) const;
    00108
    00109
    00110 protected:
    00116     QRect innerRect() const;
    00117
    00123     virtual QRect areaGeometry() const = 0;
    00124
    00131     virtual void positionHasChanged();
    00132
    00133 }; // End of class AbstractAreaBase
    00134
    00135 }
    00136 #endif // KDCHARTABSTRACTAREABASE_H