00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
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
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 };
00134
00135 }
00136 #endif // KDCHARTABSTRACTAREABASE_H