#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. |
1.3.6