Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #include "KDChartAbstractAreaWidget.h"
00024 #include "KDChartAbstractAreaWidget_p.h"
00025
00026 #include <KDABLibFakes>
00027
00028
00029 using namespace KDChart;
00030
00031
00032 AbstractAreaWidget::Private::Private()
00033 {
00034
00035 }
00036
00037 AbstractAreaWidget::Private::~Private()
00038 {
00039
00040 }
00041
00042
00043 void AbstractAreaWidget::Private::resizeLayout(
00044 AbstractAreaWidget* widget, const QSize& size )
00045 {
00046 if( size == currentLayoutSize ) return;
00047
00048 currentLayoutSize = size;
00049
00050
00051 int left;
00052 int top;
00053 int right;
00054 int bottom;
00055 widget->getFrameLeadings( left, top, right, bottom );
00056 const QSize innerSize( size.width() - left - right,
00057 size.height() - top - bottom );
00058
00059
00060
00061
00062 widget->resizeLayout( innerSize );
00063 }
00064
00065
00066 AbstractAreaWidget::AbstractAreaWidget( QWidget* parent )
00067 : QWidget( parent )
00068 , AbstractAreaBase( new Private() )
00069 {
00070 init();
00071 }
00072
00073 AbstractAreaWidget::~AbstractAreaWidget()
00074 {
00075
00076 }
00077
00078 void AbstractAreaWidget::init()
00079 {
00080
00081 }
00082
00083 void AbstractAreaWidget::needSizeHint()
00084 {
00085
00086 }
00087
00088 #define d d_func()
00089
00090 void AbstractAreaWidget::resizeLayout( const QSize& size )
00091 {
00092 Q_UNUSED( size );
00093
00094 }
00095
00096 void AbstractAreaWidget::paintEvent( QPaintEvent* event )
00097 {
00098 Q_UNUSED( event );
00099 QPainter painter( this );
00100 if( size() != d->currentLayoutSize ){
00101 d->resizeLayout( this, size() );
00102 }
00103 paintAll( painter );
00104 }
00105
00106 void AbstractAreaWidget::paintIntoRect( QPainter& painter, const QRect& rect )
00107 {
00108
00109
00110 if( rect.isEmpty() ) return;
00111
00112 d->resizeLayout( this, rect.size() );
00113
00114 const QPoint translation( rect.topLeft() );
00115 painter.translate( translation );
00116 paintAll( painter );
00117 painter.translate( -translation.x(), -translation.y() );
00118
00119
00120
00121
00122
00123
00124
00125
00126
00127
00128
00129
00130
00131
00132
00133
00134
00135 }
00136
00137 void AbstractAreaWidget::forceRebuild()
00138 {
00139
00140 }
00141
00142 void AbstractAreaWidget::paintAll( QPainter& painter )
00143 {
00144
00145
00146
00147 paintBackground( painter, QRect(QPoint(0, 0), size() ) );
00148 paintFrame( painter, QRect(QPoint(0, 0), size() ) );
00149
00150
00151
00152
00153
00154
00155
00156
00157
00158
00159
00160
00161
00162
00163
00164
00165
00166
00167
00168
00169
00170
00171 int left;
00172 int top;
00173 int right;
00174 int bottom;
00175 getFrameLeadings( left, top, right, bottom );
00176 const QPoint translation( left, top );
00177 painter.translate( translation );
00178 paint( &painter );
00179 painter.translate( -translation.x(), -translation.y() );
00180
00181 }
00182
00183 QRect AbstractAreaWidget::areaGeometry() const
00184 {
00185 return geometry();
00186 }
00187
00188 void AbstractAreaWidget::positionHasChanged()
00189 {
00190 emit positionChanged( this );
00191 }
00192
00193
00194
00195
00196
00197
00198
00199
00200
00201