#include <KDChartLayoutItems.h>
Inheritance diagram for KDChart::MarkerLayoutItem:
Public Member Functions | |
virtual Qt::Orientations | expandingDirections () const |
virtual QRect | geometry () const |
virtual bool | isEmpty () const |
MarkerLayoutItem (AbstractDiagram *diagram, const MarkerAttributes &marker, const QBrush &brush, const QPen &pen, Qt::Alignment alignment=0) | |
virtual QSize | maximumSize () const |
virtual QSize | minimumSize () const |
virtual void | paint (QPainter *) |
virtual void | paintAll (QPainter &painter) |
Default impl: just call paint. | |
virtual void | paintCtx (PaintContext *context) |
Default impl: Paint the complete item using its layouted position and size. | |
QLayout * | parentLayout () |
void | removeFromParentLayout () |
virtual void | setGeometry (const QRect &r) |
void | setParentLayout (QLayout *lay) |
virtual void | setParentWidget (QWidget *widget) |
Inform the item about its widget: This enables the item, to trigger that widget's update, whenever the size of the item's contents has changed. | |
virtual QSize | sizeHint () const |
virtual void | sizeHintChanged () const |
Report changed size hint: ask the parent widget to recalculate the layout. | |
Static Public Member Functions | |
void | paintIntoRect (QPainter *painter, const QRect &rect, AbstractDiagram *diagram, const MarkerAttributes &marker, const QBrush &brush, const QPen &pen) |
Protected Attributes | |
QWidget * | mParent |
QLayout * | mParentLayout |
|
Definition at line 521 of file KDChartLayoutItems.cpp.
00525 : AbstractLayoutItem( alignment ) 00526 , mDiagram( diagram ) 00527 , mMarker( marker ) 00528 , mBrush( brush ) 00529 , mPen( pen ) 00530 { 00531 } |
|
Definition at line 533 of file KDChartLayoutItems.cpp.
00534 { 00535 return 0; // Grow neither vertically nor horizontally 00536 } |
|
Definition at line 538 of file KDChartLayoutItems.cpp.
00539 {
00540 return mRect;
00541 }
|
|
Definition at line 543 of file KDChartLayoutItems.cpp.
00544 { 00545 return false; // never empty, otherwise the layout item would not exist 00546 } |
|
Definition at line 548 of file KDChartLayoutItems.cpp. References sizeHint().
00549 { 00550 return sizeHint(); // PENDING(kalle) Review, quite inflexible 00551 } |
|
Definition at line 553 of file KDChartLayoutItems.cpp. References sizeHint().
00554 { 00555 return sizeHint(); // PENDING(kalle) Review, quite inflexible 00556 } |
|
Implements KDChart::AbstractLayoutItem. Definition at line 569 of file KDChartLayoutItems.cpp. References paintIntoRect().
00570 { 00571 paintIntoRect( painter, mRect, mDiagram, mMarker, mBrush, mPen ); 00572 } |
|
Default impl: just call paint. Derived classes like KDChart::AbstractArea are providing additional action here. Reimplemented in KDChart::AbstractArea, and KDChart::TextArea. Definition at line 69 of file KDChartLayoutItems.cpp. References KDChart::AbstractLayoutItem::paint().
00070 { 00071 paint( &painter ); 00072 } |
|
Default impl: Paint the complete item using its layouted position and size.
Reimplemented in KDChart::CartesianAxis. Definition at line 77 of file KDChartLayoutItems.cpp. References KDChart::AbstractLayoutItem::paint(), and KDChart::PaintContext::painter().
00078 { 00079 if( context ) 00080 paint( context->painter() ); 00081 } |
|
Definition at line 574 of file KDChartLayoutItems.cpp. References KDChart::MarkerAttributes::markerSize(), and KDChart::AbstractDiagram::paintMarker(). Referenced by paint().
00581 { 00582 if( ! rect.isValid() ) 00583 return; 00584 00585 // The layout management may assign a larger rect than what we 00586 // wanted. We need to adjust the position. 00587 const QSize siz = marker.markerSize().toSize(); 00588 QPointF pos = rect.topLeft(); 00589 pos += QPointF( static_cast<qreal>(( rect.width() - siz.width()) / 2.0 ), 00590 static_cast<qreal>(( rect.height() - siz.height()) / 2.0 ) ); 00591 00592 #ifdef DEBUG_ITEMS_PAINT 00593 QPointF oldPos = pos; 00594 #endif 00595 00596 // And finally, drawMarker() assumes the position to be the center 00597 // of the marker, adjust again. 00598 pos += QPointF( static_cast<qreal>( siz.width() ) / 2.0, 00599 static_cast<qreal>( siz.height() )/ 2.0 ); 00600 00601 diagram->paintMarker( painter, marker, brush, pen, pos.toPoint(), siz ); 00602 00603 #ifdef DEBUG_ITEMS_PAINT 00604 const QPen oldPen( painter->pen() ); 00605 painter->setPen( Qt::red ); 00606 painter->drawRect( QRect(oldPos.toPoint(), siz) ); 00607 painter->setPen( oldPen ); 00608 #endif 00609 } |
|
Definition at line 74 of file KDChartLayoutItems.h.
00075 { 00076 return mParentLayout; 00077 } |
|
Definition at line 78 of file KDChartLayoutItems.h. Referenced by KDChart::Chart::takeCoordinatePlane().
00079 { 00080 if( mParentLayout ){ 00081 if( widget() ) 00082 mParentLayout->removeWidget( widget() ); 00083 else 00084 mParentLayout->removeItem( this ); 00085 } 00086 } |
|
Definition at line 558 of file KDChartLayoutItems.cpp.
00559 { 00560 mRect = r; 00561 } |
|
Definition at line 70 of file KDChartLayoutItems.h.
00071 { 00072 mParentLayout = lay; 00073 } |
|
Inform the item about its widget: This enables the item, to trigger that widget's update, whenever the size of the item's contents has changed. Thus, you need to call setParentWidget on every item, that has a non-fixed size. Definition at line 64 of file KDChartLayoutItems.cpp. References KDChart::AbstractLayoutItem::mParent. Referenced by KDChart::Legend::buildLegend(), and KDChart::AbstractCartesianDiagram::takeAxis().
00065 { 00066 mParent = widget; 00067 } |
|
Definition at line 563 of file KDChartLayoutItems.cpp. References KDChart::MarkerAttributes::markerSize(). Referenced by maximumSize(), and minimumSize().
00564 { 00565 //qDebug() << "KDChart::MarkerLayoutItem::sizeHint() returns:"<<mMarker.markerSize().toSize(); 00566 return mMarker.markerSize().toSize(); 00567 } |
|
Report changed size hint: ask the parent widget to recalculate the layout.
Definition at line 86 of file KDChartLayoutItems.cpp. Referenced by KDChart::TextLayoutItem::sizeHint().
00087 { 00088 // This is exactly like what QWidget::updateGeometry does. 00089 // qDebug("KDChart::AbstractLayoutItem::sizeHintChanged() called"); 00090 if( mParent ) { 00091 if ( mParent->layout() ) 00092 mParent->layout()->invalidate(); 00093 else 00094 QApplication::postEvent( mParent, new QEvent( QEvent::LayoutRequest ) ); 00095 } 00096 } |
|
Definition at line 88 of file KDChartLayoutItems.h. Referenced by KDChart::AbstractLayoutItem::setParentWidget(). |
|
Definition at line 89 of file KDChartLayoutItems.h. |