Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

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

QWidgetmParent
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:
Generated on Thu May 10 11:06:33 2007 for KD Chart 2 by doxygen 1.3.6