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

OOF_InteractionPageAreas Class Reference
[Report Editing support]

#include <oofrepeditx.h>

Inheritance diagram for OOF_InteractionPageAreas:

Inheritance graph
[legend]
Collaboration diagram for OOF_InteractionPageAreas:

Collaboration graph
[legend]
List of all members.

Detailed Description

Areas in just one page.

Assumes linearly ascending page coordinates used in searching findAreaBelowAndRightOf.


Public Member Functions

 OOF_InteractionPageAreas ()
virtual ~OOF_InteractionPageAreas ()
void pageAdoptsEditLink (oofRepEditLink *)
 add edit link entry to page, which implies adoption of link if 1st time added to a page

void addInteractionArea (short inX, short inY, short inCol, long inRow, oofRepEditLink *, oofRepInteractorStrategy *inInteractor=0, short inWidth=0, short inHeight=0)
void addInteractionArea (const OOF_InteractionArea &)
void changeAreasToNewLink (long matchingRow, oofRepEditLink *matchingLink, oofRepEditLink *newLink)
void startNonEditableArea (unsigned long newY)
 Sensible algorithm is only set those in the last row however earlier rows will then match due to their zero height.

OOF_InteractionAreafindAreaBelowAndRightOf (short inX, short inY)
OOF_InteractionArealastAreaAdded () const
 may return NULL if none on page yet

void start ()
bool more () const
void next ()
unsigned long count () const

Protected Member Functions

virtual void * AllocBits (unsigned long) const
virtual void DeleteBits (bool becauseExpanding)
bool Invariant () const
 Guarantee members managing storage are consistent.

unsigned long AllocSlot ()
void ExpandToInclude (unsigned long indexToCover)
virtual void * CloneBits () const

Protected Attributes

OOF_InteractionAreamAreas
 typed reference to mBits

OOF_ExpandableLongArray mOwnedLinks
 secondary array of owned objects

void ** mUserStorage
void * mBits
unsigned long mNextFreeEntry
unsigned long mNumSlots
unsigned long mInternalIter
unsigned long mSlotSize
unsigned int mExpansionChunk


Constructor & Destructor Documentation

OOF_InteractionPageAreas::OOF_InteractionPageAreas  ) 
 

OOF_InteractionPageAreas::~OOF_InteractionPageAreas  )  [virtual]
 


Member Function Documentation

void OOF_InteractionPageAreas::addInteractionArea const OOF_InteractionArea  ) 
 

void OOF_InteractionPageAreas::addInteractionArea short  inX,
short  inY,
short  inCol,
long  inRow,
oofRepEditLink inEditor,
oofRepInteractorStrategy inInteractor = 0,
short  inWidth = 0,
short  inHeight = 0
 

Parameters:
inWidth is allowed to be zero as it's the X offset and order of blocks that matters.

void * OOF_InteractionPageAreas::AllocBits unsigned  long  )  const [protected, virtual]
 

Implements oofArray.

unsigned long oofArray::AllocSlot  )  [protected, inherited]
 

void OOF_InteractionPageAreas::changeAreasToNewLink long  matchingRow,
oofRepEditLink matchingLink,
oofRepEditLink newLink
 

void * oofArray::CloneBits  )  const [protected, virtual, inherited]
 

unsigned long oofArray::count  )  const [inline, inherited]
 

void OOF_InteractionPageAreas::DeleteBits bool  becauseExpanding  )  [protected, virtual]
 

Implements oofArray.

void oofArray::ExpandToInclude unsigned long  indexToCover  )  [protected, inherited]
 

OOF_InteractionArea * OOF_InteractionPageAreas::findAreaBelowAndRightOf short  inX,
short  inY
 

bool oofArray::Invariant  )  const [inline, protected, inherited]
 

Guarantee members managing storage are consistent.

Note: we assume a user may cause mInternalIter to go out of bounds.

OOF_InteractionArea * OOF_InteractionPageAreas::lastAreaAdded  )  const
 

may return NULL if none on page yet

bool oofArray::more  )  const [inline, inherited]
 

void oofArray::next  )  [inline, inherited]
 

void OOF_InteractionPageAreas::pageAdoptsEditLink oofRepEditLink inLink  ) 
 

add edit link entry to page, which implies adoption of link if 1st time added to a page

void oofArray::start  )  [inline, inherited]
 

void OOF_InteractionPageAreas::startNonEditableArea unsigned long  newY  ) 
 

Sensible algorithm is only set those in the last row however earlier rows will then match due to their zero height.

So must take care of all zero heights

Note main assumption is that a row either has zero height throughout or not, which matches the behaviour of view and layout bands.

A layout band mixing zero and fixed heights would be a problem!


Member Data Documentation

OOF_InteractionArea* OOF_InteractionPageAreas::mAreas [protected]
 

typed reference to mBits

void* oofArray::mBits [protected, inherited]
 

unsigned int oofArray::mExpansionChunk [protected, inherited]
 

unsigned long oofArray::mInternalIter [protected, inherited]
 

unsigned long oofArray::mNextFreeEntry [protected, inherited]
 

unsigned long oofArray::mNumSlots [protected, inherited]
 

OOF_ExpandableLongArray OOF_InteractionPageAreas::mOwnedLinks [protected]
 

secondary array of owned objects

unsigned long oofArray::mSlotSize [protected, inherited]
 

void** oofArray::mUserStorage [protected, inherited]
 


The documentation for this class was generated from the following files:
Generated on Thu Jan 1 21:39:37 2004 for OOFILE by doxygen 1.3.5