# KDChart::MarkerLayoutItem Class Reference

`#include <KDChartLayoutItems.h>`

Inheritance diagram for KDChart::MarkerLayoutItem:

[legend]
Collaboration diagram for KDChart::MarkerLayoutItem:
[legend]
List of all members.

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

## Constructor & Destructor Documentation

KDChart::MarkerLayoutItem::MarkerLayoutItem | ( | AbstractDiagram * | diagram,
|  | const MarkerAttributes & | marker,
|  | const QBrush & | brush,
|  | const QPen & | pen,
|  | Qt::Alignment | alignment = 0
| ) |

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 }

## Member Function Documentation

Qt::Orientations KDChart::MarkerLayoutItem::expandingDirections | ( |  | ) | const`[virtual]`

Definition at line 533 of file KDChartLayoutItems.cpp.

    00534 {
    00535     return 0; // Grow neither vertically nor horizontally
    00536 }

QRect KDChart::MarkerLayoutItem::geometry | ( |  | ) | const`[virtual]`

Definition at line 538 of file KDChartLayoutItems.cpp.

    00539 {
    00540     return mRect;
    00541 }

bool KDChart::MarkerLayoutItem::isEmpty | ( |  | ) | const`[virtual]`

Definition at line 543 of file KDChartLayoutItems.cpp.

    00544 {
    00545     return false; // never empty, otherwise the layout item would not exist
    00546 }

QSize KDChart::MarkerLayoutItem::maximumSize | ( |  | ) | const`[virtual]`

Definition at line 548 of file KDChartLayoutItems.cpp.

References sizeHint().

    00549 {
    00550     return sizeHint(); // PENDING(kalle) Review, quite inflexible
    00551 }

QSize KDChart::MarkerLayoutItem::minimumSize | ( |  | ) | const`[virtual]`

Definition at line 553 of file KDChartLayoutItems.cpp.

References sizeHint().

    00554 {
    00555     return sizeHint(); // PENDING(kalle) Review, quite inflexible
    00556 }

void KDChart::MarkerLayoutItem::paint | ( | QPainter * |  | ) | `[virtual]`

Implements KDChart::AbstractLayoutItem.

Definition at line 569 of file KDChartLayoutItems.cpp.

References paintIntoRect().

    00570 {
    00571     paintIntoRect( painter, mRect, mDiagram, mMarker, mBrush, mPen );
    00572 }

void KDChart::AbstractLayoutItem::paintAll | ( | QPainter & | painter | ) | `[virtual, inherited]`

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 }

void KDChart::AbstractLayoutItem::paintCtx | ( | PaintContext * | context | ) | `[virtual, inherited]`

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 }

void KDChart::MarkerLayoutItem::paintIntoRect | ( | QPainter * | painter,
|  | const QRect & | rect,
|  | AbstractDiagram * | diagram,
|  | const MarkerAttributes & | marker,
|  | const QBrush & | brush,
|  | const QPen & | pen
| ) | `[static]`

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 }

QLayout* KDChart::AbstractLayoutItem::parentLayout | ( |  | ) | `[inherited]`

Definition at line 74 of file KDChartLayoutItems.h.

    00075         {
    00076             return mParentLayout;
    00077         }

void KDChart::AbstractLayoutItem::removeFromParentLayout | ( |  | ) | `[inherited]`

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         }

void KDChart::MarkerLayoutItem::setGeometry | ( | const QRect & | r | ) | `[virtual]`

Definition at line 558 of file KDChartLayoutItems.cpp.

    00559 {
    00560     mRect = r;
    00561 }

void KDChart::AbstractLayoutItem::setParentLayout | ( | QLayout * | lay | ) | `[inherited]`

Definition at line 70 of file KDChartLayoutItems.h.

    00071         {
    00072             mParentLayout = lay;
    00073         }

void KDChart::AbstractLayoutItem::setParentWidget | ( | QWidget * | widget | ) | `[virtual, inherited]`

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 }

QSize KDChart::MarkerLayoutItem::sizeHint | ( |  | ) | const`[virtual]`

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 }

void KDChart::AbstractLayoutItem::sizeHintChanged | ( |  | ) | const`[virtual, inherited]`

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 }

## Member Data Documentation

QWidget* KDChart::AbstractLayoutItem::mParent `[protected, inherited]`

| Definition at line 88 of file KDChartLayoutItems.h. Referenced by KDChart::AbstractLayoutItem::setParentWidget().

QLayout* KDChart::AbstractLayoutItem::mParentLayout `[protected, inherited]`

| Definition at line 89 of file KDChartLayoutItems.h.

The documentation for this class was generated from the following files:

- KDChartLayoutItems.h
- KDChartLayoutItems.cpp