KDChart::AbstractLayoutItem Class Reference

#include <KDChartLayoutItems.h>

Inheritance diagram for KDChart::AbstractLayoutItem:

Inheritance graph
[legend]
Collaboration diagram for KDChart::AbstractLayoutItem:

Collaboration graph
[legend]
List of all members.

Detailed Description

Base class for all layout items of KD Chart.

Definition at line 50 of file KDChartLayoutItems.h.

Public Member Functions

 AbstractLayoutItem (Qt::Alignment itemAlignment=0)
virtual void paint (QPainter *)=0
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 ()
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 void sizeHintChanged () const
 Report changed size hint: ask the parent widget to recalculate the layout.

Protected Attributes

QWidgetmParent
QLayout * mParentLayout


Constructor & Destructor Documentation

KDChart::AbstractLayoutItem::AbstractLayoutItem ( Qt::Alignment  itemAlignment = 0  ) 

Definition at line 53 of file KDChartLayoutItems.h.

00053                                                             :
00054             QLayoutItem( itemAlignment ),
00055             mParent( 0 ),
00056             mParentLayout( 0 ) {}


Member Function Documentation

virtual void KDChart::AbstractLayoutItem::paint ( QPainter *   )  [pure virtual]

Implemented in KDChart::CartesianAxis, KDChart::CartesianCoordinatePlane, KDChart::TextLayoutItem, KDChart::MarkerLayoutItem, KDChart::LineLayoutItem, KDChart::LineWithMarkerLayoutItem, KDChart::HorizontalLineLayoutItem, KDChart::VerticalLineLayoutItem, KDChart::AutoSpacerLayoutItem, KDChart::PolarCoordinatePlane, KDChart::TernaryAxis, and KDChart::TernaryCoordinatePlane.

Referenced by KDChart::Legend::paint(), paintAll(), KDChart::AbstractArea::paintAll(), and paintCtx().

void KDChart::AbstractLayoutItem::paintAll ( QPainter &  painter  )  [virtual]

Default impl: just call paint.

Derived classes like KDChart::AbstractArea are providing additional action here.

Reimplemented in KDChart::AbstractArea, KDChart::TextArea, and KDChart::TernaryAxis.

Definition at line 69 of file KDChartLayoutItems.cpp.

References paint().

00070 {
00071     paint( &painter );
00072 }

void KDChart::AbstractLayoutItem::paintCtx ( PaintContext context  )  [virtual]

Default impl: Paint the complete item using its layouted position and size.

Reimplemented in KDChart::CartesianAxis, and KDChart::TernaryAxis.

Definition at line 77 of file KDChartLayoutItems.cpp.

References paint(), and KDChart::PaintContext::painter().

00078 {
00079     if( context )
00080         paint( context->painter() );
00081 }

QLayout* KDChart::AbstractLayoutItem::parentLayout (  ) 

Definition at line 76 of file KDChartLayoutItems.h.

00077         {
00078             return mParentLayout;
00079         }

void KDChart::AbstractLayoutItem::removeFromParentLayout (  ) 

Definition at line 80 of file KDChartLayoutItems.h.

Referenced by KDChart::Chart::takeCoordinatePlane().

00081         {
00082             if( mParentLayout ){
00083                 if( widget() )
00084                     mParentLayout->removeWidget( widget() );
00085                 else
00086                     mParentLayout->removeItem( this );
00087             }
00088         }

void KDChart::AbstractLayoutItem::setParentLayout ( QLayout *  lay  ) 

Definition at line 72 of file KDChartLayoutItems.h.

00073         {
00074             mParentLayout = lay;
00075         }

void KDChart::AbstractLayoutItem::setParentWidget ( QWidget widget  )  [virtual]

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 mParent.

Referenced by KDChart::HeaderFooter::setParent(), and KDChart::AbstractCartesianDiagram::takeAxis().

00065 {
00066     mParent = widget;
00067 }

void KDChart::AbstractLayoutItem::sizeHintChanged (  )  const [virtual]

Report changed size hint: ask the parent widget to recalculate the layout.

Definition at line 86 of file KDChartLayoutItems.cpp.

References mParent.

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]

Definition at line 90 of file KDChartLayoutItems.h.

Referenced by setParentWidget(), KDChart::TextLayoutItem::setText(), KDChart::TextLayoutItem::setTextAttributes(), and sizeHintChanged().

QLayout* KDChart::AbstractLayoutItem::mParentLayout [protected]

Definition at line 91 of file KDChartLayoutItems.h.

Referenced by KDChart::AutoSpacerLayoutItem::paint().


The documentation for this class was generated from the following files:
Generated on Mon Sep 17 16:18:06 2007 for KD Chart 2 by  doxygen 1.5.1