#include <KDChartAbstractAreaBase.h>
Inheritance diagram for KDChart::AbstractAreaBase:
AbstractAreaBase is the base class for all chart elements that have a set of background attributes and frame attributes, such as legends or axes.
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.
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 () |
|
Definition at line 57 of file KDChartAbstractAreaBase.cpp.
00057 :
00058 _d( new Private() )
00059 {
00060 }
|
|
Definition at line 62 of file KDChartAbstractAreaBase.cpp.
00063 {
00064 delete _d; _d = 0;
00065 }
|
|
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 } |
|
Implemented in KDChart::AbstractArea, KDChart::AbstractAreaWidget, and KDChart::TextArea. Referenced by innerRect(). |
|
Definition at line 112 of file KDChartAbstractAreaBase.cpp. References d. Referenced by updateCommonBrush().
00113 { 00114 return d->backgroundAttributes; 00115 } |
|
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 } |
|
Definition at line 102 of file KDChartAbstractAreaBase.cpp. References d. Referenced by KDChart::Legend::clone(), and updateCommonBrush().
00103 { 00104 return d->frameAttributes; 00105 } |
|
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 } |
|
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 } |
|
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 } |
|
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 } |
|
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 } |
|
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 } |
|
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 }
|
|
Definition at line 107 of file KDChartAbstractAreaBase.cpp. References d.
00108 { 00109 d->backgroundAttributes = a; 00110 } |
|
Definition at line 97 of file KDChartAbstractAreaBase.cpp. References d. Referenced by KDChart::Legend::clone().
00098 { 00099 d->frameAttributes = a; 00100 } |