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

oofRepLayoutBand_RTFRender Class Reference
[RTF Report rendering.]

#include <oofrpRTF.h>

Inheritance diagram for oofRepLayoutBand_RTFRender:

Inheritance graph
[legend]
Collaboration diagram for oofRepLayoutBand_RTFRender:

Collaboration graph
[legend]
List of all members.

Detailed Description

Iterate block renderers according to the oofRepLayoutBand.

Uses \par and \tab tags to separate blocks.


Public Member Functions

 oofRepLayoutBand_RTFRender (oofRepLayoutBand *b)
virtual oofRepRenderclone (const oofRepDrawable *newOwner) const
virtual void draw ()
 Each layout band is a single paragraph which is assumed to have a right-aligned tab.

oofRepLayoutBandownerLayout () const
void getCurrentBlockCoords (short &outX, short &outY, oofRepBlock *&outBlock) const
virtual void finishConstruction ()
virtual void describeLayout ()
virtual long leftDrawMargin () const
virtual unsigned long width () const

Protected Member Functions

void GenerateTabList ()
 Will generate a set of tabstops for multiple paragraphs based on the blocks in the layout.

void SetCurrentBlockCoords (short inX, short inY, oofRepBlock *)

Protected Attributes

oofRepTabStopSet mTabs
oofRepLayoutBandmOwner
short mCurrentX
short mCurrentY
oofRepBlockmCurrentBlock

Friends

class oofRepLayoutBand


Constructor & Destructor Documentation

oofRepLayoutBand_RTFRender::oofRepLayoutBand_RTFRender oofRepLayoutBand b  )  [inline]
 


Member Function Documentation

oofRepRender * oofRepLayoutBand_RTFRender::clone const oofRepDrawable newOwner  )  const [virtual]
 

Implements oofRepRender.

virtual void oofRepRender::describeLayout  )  [inline, virtual, inherited]
 

Reimplemented in oofRepRenderDecorator, oofRepSpaceBand_XMLRender, oofRepGraphBand_XMLRender, oofRepLineBand_XMLRender, oofRepTextBlock_XMLRender, and oofRepPageNoBlock_XMLRender.

void oofRepLayoutBand_RTFRender::draw  )  [virtual]
 

Each layout band is a single paragraph which is assumed to have a right-aligned tab.

A single layout band may generate multiple paragraphs as it contains newline terminators on text blocks or the moveDownAfter flag is set on any form of block.

Layout using fixed width blocks
It's an easy trick to achieve controlled layout by specifying the width of the blocks in 72dpi pixels, rather than just letting blocks slide together.
It seems that Word requires tabstops defined in numerical order at the beginning of the paragraph, or blithely ignores them. (This is not clear in the RTF spec as being an official requirement, more likely MS laziness.)
We therefore prepass each paragraph generated by the layout band to generate the tab list up front.

Reimplemented from oofRepRender.

virtual void oofRepRender::finishConstruction  )  [inline, virtual, inherited]
 

Reimplemented in oofRepRenderDecorator, oofRepViewBand_MacRender, oofRepViewBand_Render, and oofRepViewBand_WinRender.

void oofRepLayoutBand_RTFRender::GenerateTabList  )  [protected]
 

Will generate a set of tabstops for multiple paragraphs based on the blocks in the layout.

Calling multiple times is safe, call mTabs.clear() if want to regenerate list.

Todo:
generate centred tabs

void oofRepLayoutBand_Render::getCurrentBlockCoords short &  outX,
short &  outY,
oofRepBlock *&  outBlock
const [inline, inherited]
 

long oofRepRender::leftDrawMargin  )  const [virtual, inherited]
 

Reimplemented in oofRepRenderDecorator.

oofRepLayoutBand * oofRepLayoutBand_Render::ownerLayout  )  const [inline, inherited]
 

void oofRepLayoutBand_Render::SetCurrentBlockCoords short  inX,
short  inY,
oofRepBlock
[inline, protected, inherited]
 

unsigned long oofRepRender::width  )  const [virtual, inherited]
 

Reimplemented in oofRepRenderDecorator, oofRepTextBlock_MacRender, oofRepPictBlock_MacRender, oofRepTextBlock_WinRender, and oofRepPictBlock_WinRender.


Friends And Related Function Documentation

friend class oofRepLayoutBand [friend, inherited]
 


Member Data Documentation

oofRepBlock* oofRepLayoutBand_Render::mCurrentBlock [protected, inherited]
 

short oofRepLayoutBand_Render::mCurrentX [protected, inherited]
 

short oofRepLayoutBand_Render::mCurrentY [protected, inherited]
 

oofRepLayoutBand* oofRepLayoutBand_Render::mOwner [protected, inherited]
 

oofRepTabStopSet oofRepLayoutBand_RTFRender::mTabs [protected]
 


The documentation for this class was generated from the following files:
Generated on Fri Jan 2 01:14:24 2004 for OOFILE by doxygen 1.3.5