Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

KDChart::AbstractAreaBase Class Reference

#include <KDChartAbstractAreaBase.h>

Inheritance diagram for KDChart::AbstractAreaBase:

[legend]
List of all members.

Detailed Description

Base class for AbstractArea and AbstractAreaWidget: An area in the chart with a background, a frame, etc.

AbstractAreaBase is the base class for all chart elements that have a set of background attributes and frame attributes, such as legends or axes.

Note:
Normally you should not use AbstractAreaBase directly, but derive your classes from AbstractArea or AbstractAreaWidget.

This classis not a QObject, so it is easier to inherit from it, if your are inheriting from a QObject too like AbstractAreaWidget does it.

See also:
AbstractArea, AbstractAreaWidget

Definition at line 69 of file KDChartAbstractAreaBase.h.

Public Member Functions

void alignToReferencePoint (const RelativePosition &position)
BackgroundAttributes backgroundAttributes () const
bool compare (const AbstractAreaBase *other) const
 Returns true if both areas have the same settings.

FrameAttributes frameAttributes () const
void getFrameLeadings (int &left, int &top, int &right, int &bottom) const
virtual void paintBackground (QPainter &painter, const QRect &rectangle)
virtual void paintFrame (QPainter &painter, const QRect &rectangle)
void setBackgroundAttributes (const BackgroundAttributes &a)
void setFrameAttributes (const FrameAttributes &a)

Static Public Member Functions

void paintBackgroundAttributes (QPainter &painter, const QRect &rectangle, const KDChart::BackgroundAttributes &attributes)
void paintFrameAttributes (QPainter &painter, const QRect &rectangle, const KDChart::FrameAttributes &attributes)

Protected Member Functions

 AbstractAreaBase ()
virtual QRect areaGeometry () const=0
QRect innerRect () const
virtual void positionHasChanged ()
virtual ~AbstractAreaBase ()


Constructor & Destructor Documentation

AbstractAreaBase::AbstractAreaBase  )  [protected]
 

Definition at line 57 of file KDChartAbstractAreaBase.cpp.

00057                                    :
00058     _d( new Private() )
00059 {
00060 }

AbstractAreaBase::~AbstractAreaBase  )  [protected, virtual]
 

Definition at line 62 of file KDChartAbstractAreaBase.cpp.

00063 {
00064     delete _d; _d = 0;
00065 }


Member Function Documentation

void AbstractAreaBase::alignToReferencePoint const RelativePosition position  ) 
 

Definition at line 90 of file KDChartAbstractAreaBase.cpp.

00091 {
00092     Q_UNUSED( position );
00093     // PENDING(kalle) FIXME
00094     qWarning( "Sorry, not implemented: void AbstractAreaBase::alignToReferencePoint( const RelativePosition& position )" );
00095 }

virtual QRect KDChart::AbstractAreaBase::areaGeometry  )  const [protected, pure virtual]
 

Implemented in KDChart::AbstractArea, KDChart::AbstractAreaWidget, and KDChart::TextArea.

Referenced by innerRect().

BackgroundAttributes AbstractAreaBase::backgroundAttributes  )  const
 

Definition at line 112 of file KDChartAbstractAreaBase.cpp.

References d.

Referenced by updateCommonBrush().

00113 {
00114     return d->backgroundAttributes;
00115 }

bool AbstractAreaBase::compare const AbstractAreaBase other  )  const
 

Returns true if both areas have the same settings.

Definition at line 75 of file KDChartAbstractAreaBase.cpp.

00076 {
00077     if( other == this ) return true;
00078     if( ! other ){
00079         //qDebug() << "CartesianAxis::compare() cannot compare to Null pointer";
00080         return false;
00081     }
00082     /*
00083     qDebug() << "AbstractAreaBase:" << (frameAttributes() == other->frameAttributes())
00084         << (backgroundAttributes() == other->backgroundAttributes()) << "\n";
00085     */
00086     return  (frameAttributes()      == other->frameAttributes()) &&
00087             (backgroundAttributes() == other->backgroundAttributes());
00088 }

FrameAttributes AbstractAreaBase::frameAttributes  )  const
 

Definition at line 102 of file KDChartAbstractAreaBase.cpp.

References d.

Referenced by KDChart::Legend::clone(), and updateCommonBrush().

00103 {
00104     return d->frameAttributes;
00105 }

void AbstractAreaBase::getFrameLeadings int &  left,
int &  top,
int &  right,
int &  bottom
const
 

Definition at line 204 of file KDChartAbstractAreaBase.cpp.

References d.

Referenced by innerRect(), and KDChart::AbstractAreaWidget::paintAll().

00205 {
00206     if( d && d->frameAttributes.isVisible() ){
00207         const int padding = qMax( d->frameAttributes.padding(), 0 );
00208         left   = padding;
00209         top    = padding;
00210         right  = padding;
00211         bottom = padding;
00212     }else{
00213         left   = 0;
00214         top    = 0;
00215         right  = 0;
00216         bottom = 0;
00217     }
00218 }

QRect AbstractAreaBase::innerRect  )  const [protected]
 

Definition at line 220 of file KDChartAbstractAreaBase.cpp.

References areaGeometry(), and getFrameLeadings().

Referenced by KDChart::TextArea::paintAll(), and KDChart::AbstractArea::paintAll().

00221 {
00222     int left;
00223     int top;
00224     int right;
00225     int bottom;
00226     getFrameLeadings( left, top, right, bottom );
00227     return
00228         QRect( QPoint(0,0), areaGeometry().size() )
00229             .adjusted( left, top, -right, -bottom );
00230 }

void AbstractAreaBase::paintBackground QPainter &  painter,
const QRect &  rectangle
[virtual]
 

Definition at line 188 of file KDChartAbstractAreaBase.cpp.

References d, and paintBackgroundAttributes().

Referenced by KDChart::TextArea::paintAll(), KDChart::AbstractAreaWidget::paintAll(), and KDChart::AbstractArea::paintAll().

00189 {
00190     Q_ASSERT_X ( d != 0, "AbstractAreaBase::paintBackground()",
00191                 "Private class was not initialized!" );
00192     paintBackgroundAttributes( painter, rect, d->backgroundAttributes );
00193 }

void AbstractAreaBase::paintBackgroundAttributes QPainter &  painter,
const QRect &  rectangle,
const KDChart::BackgroundAttributes attributes
[static]
 

Definition at line 119 of file KDChartAbstractAreaBase.cpp.

References KDChart::BackgroundAttributes::brush(), KDChart::BackgroundAttributes::isVisible(), KDChart::BackgroundAttributes::pixmap(), and KDChart::BackgroundAttributes::pixmapMode().

Referenced by paintBackground().

00121 {
00122     if( !attributes.isVisible() ) return;
00123 
00124     /* first draw the brush (may contain a pixmap)*/
00125     if( Qt::NoBrush != attributes.brush().style() ) {
00126         KDChart::PainterSaver painterSaver( &painter );
00127         painter.setPen( Qt::NoPen );
00128         const QPointF newTopLeft( painter.deviceMatrix().map( rect.topLeft() ) );
00129         painter.setBrushOrigin( newTopLeft );
00130         painter.setBrush( attributes.brush() );
00131         painter.drawRect( rect.adjusted( 0, 0, -1, -1 ) );
00132     }
00133     /* next draw the backPixmap over the brush */
00134     if( !attributes.pixmap().isNull() &&
00135         attributes.pixmapMode() != BackgroundAttributes::BackgroundPixmapModeNone ) {
00136         QPointF ol = rect.topLeft();
00137         if( BackgroundAttributes::BackgroundPixmapModeCentered == attributes.pixmapMode() )
00138         {
00139             ol.setX( rect.center().x() - attributes.pixmap().width() / 2 );
00140             ol.setY( rect.center().y() - attributes.pixmap().height()/ 2 );
00141             painter.drawPixmap( ol, attributes.pixmap() );
00142         } else {
00143             QMatrix m;
00144             double zW = (double)rect.width()  / (double)attributes.pixmap().width();
00145             double zH = (double)rect.height() / (double)attributes.pixmap().height();
00146             switch( attributes.pixmapMode() ) {
00147             case BackgroundAttributes::BackgroundPixmapModeScaled:
00148             {
00149                 double z;
00150                 z = qMin( zW, zH );
00151                 m.scale( z, z );
00152             }
00153             break;
00154             case BackgroundAttributes::BackgroundPixmapModeStretched:
00155                 m.scale( zW, zH );
00156                 break;
00157             default:
00158                 ; // Cannot happen, previously checked
00159             }
00160             QPixmap pm = attributes.pixmap().transformed( m );
00161             ol.setX( rect.center().x() - pm.width() / 2 );
00162             ol.setY( rect.center().y() - pm.height()/ 2 );
00163             painter.drawPixmap( ol, pm );
00164         }
00165     }
00166 }

void AbstractAreaBase::paintFrame QPainter &  painter,
const QRect &  rectangle
[virtual]
 

Definition at line 196 of file KDChartAbstractAreaBase.cpp.

References d, and paintFrameAttributes().

Referenced by KDChart::TextArea::paintAll(), KDChart::AbstractAreaWidget::paintAll(), and KDChart::AbstractArea::paintAll().

00197 {
00198     Q_ASSERT_X ( d != 0, "AbstractAreaBase::paintFrame()",
00199                 "Private class was not initialized!" );
00200     paintFrameAttributes( painter, rect, d->frameAttributes );
00201 }

void AbstractAreaBase::paintFrameAttributes QPainter &  painter,
const QRect &  rectangle,
const KDChart::FrameAttributes attributes
[static]
 

Definition at line 169 of file KDChartAbstractAreaBase.cpp.

References KDChart::FrameAttributes::isVisible(), and KDChart::FrameAttributes::pen().

Referenced by paintFrame().

00171 {
00172 
00173     if( !attributes.isVisible() ) return;
00174 
00175     // Note: We set the brush to NoBrush explicitely here.
00176     //       Otherwise we might get a filled rectangle, so any
00177     //       previously drawn background would be overwritten by that area.
00178 
00179     const QPen   oldPen(   painter.pen() );
00180     const QBrush oldBrush( painter.brush() );
00181     painter.setPen(   attributes.pen() );
00182     painter.setBrush( Qt::NoBrush );
00183     painter.drawRect( rect.adjusted( 0, 0, -1, -1 ) );
00184     painter.setBrush( oldBrush );
00185     painter.setPen(   oldPen );
00186 }

void AbstractAreaBase::positionHasChanged  )  [protected, virtual]
 

Reimplemented in KDChart::AbstractArea, KDChart::AbstractAreaWidget, and KDChart::TextArea.

Definition at line 232 of file KDChartAbstractAreaBase.cpp.

00233 {
00234     // this bloc left empty intentionally
00235 }

void AbstractAreaBase::setBackgroundAttributes const BackgroundAttributes a  ) 
 

Definition at line 107 of file KDChartAbstractAreaBase.cpp.

References d.

00108 {
00109     d->backgroundAttributes = a;
00110 }

void AbstractAreaBase::setFrameAttributes const FrameAttributes a  ) 
 

Definition at line 97 of file KDChartAbstractAreaBase.cpp.

References d.

Referenced by KDChart::Legend::clone().

00098 {
00099     d->frameAttributes = a;
00100 }


The documentation for this class was generated from the following files:
Generated on Thu May 10 11:06:29 2007 for KD Chart 2 by doxygen 1.3.6