Dillo v3.1.1-46-g8a360e32
Loading...
Searching...
No Matches
dw::oof::OOFAwareWidget Class Reference

Base class for widgets which can act as container and generator for widgets out of flow. More...

#include <oofawarewidget.hh>

Classes

class  OOFAwareWidgetIterator
 

Public Types

enum  {
  SL_START , SL_BACKGROUND , SL_SC_BOTTOM , SL_IN_FLOW ,
  SL_OOF_REF , SL_OOF_CONT , SL_SC_TOP , SL_END
}
 

Public Member Functions

 OOFAwareWidget ()
 
 ~OOFAwareWidget ()
 
core::RequisitiongetRequisitionWithoutOOF ()
 
bool doesWidgetOOFInterruptDrawing (Widget *widget)
 
void draw (core::View *view, core::Rectangle *area, core::DrawingContext *context)
 Area is given in widget coordinates.
 
virtual void updateReference (int ref)
 Update content in flow, down from ref.
 
virtual void widgetRefSizeChanged (int externalIndex)
 Called by an implementation of dw::oof::OutOfFlowMgr (actually only OOFPosRelMgr) for the generator of a widget out of flow, when the reference size has changed.
 
virtual void oofSizeChanged (bool extremesChanged)
 Called by an implementation of dw::oof::OutOfFlowMgr when the size of the container has changed, typically in sizeAllocateEnd.
 
virtual int getGeneratorX (int oofmIndex)
 Return position relative to container, not regarding margin/border/padding, Called by OOFFloatsMgr to position floats.
 
virtual int getGeneratorY (int oofmIndex)
 Return position relative to container, not regarding margin/border/padding, Called by OOFFloatsMgr to position floats.
 
virtual int getGeneratorWidth ()
 Return width including margin/border/padding Called by OOFFloatsMgr to position floats.
 
virtual int getMaxGeneratorWidth ()
 
virtual bool usesMaxGeneratorWidth ()
 
virtual bool isPossibleOOFContainer (int oofmIndex)
 
virtual bool isPossibleOOFContainerParent (int oofmIndex)
 
- Public Member Functions inherited from dw::core::Widget
void setDeleteCallback (DW_Callback_t func, void *data)
 
 Widget ()
 
 ~Widget ()
 
bool resizeQueued ()
 
bool extremesQueued ()
 
bool needsResize ()
 
bool needsAllocate ()
 
bool allocateQueued ()
 
bool extremesChanged ()
 
bool wasAllocated ()
 
void setParent (Widget *parent)
 
void setQuasiParent (Widget *quasiParent)
 
void setGenerator (Widget *generator)
 
style::StylegetStyle ()
 
AllocationgetAllocation ()
 
bool inAllocation (int x, int y)
 
int boxOffsetX ()
 
int boxRestWidth ()
 
int boxDiffWidth ()
 
int boxOffsetY ()
 
int boxRestHeight ()
 
int boxDiffHeight ()
 
virtual int numSizeRequestReferences ()
 See Sizes of Dillo Widgets (or Size requisitions depending on positions).
 
virtual WidgetsizeRequestReference (int index)
 See Sizes of Dillo Widgets (or Size requisitions depending on positions).
 
virtual int numGetExtremesReferences ()
 See Sizes of Dillo Widgets (or Size requisitions depending on positions).
 
virtual WidgetgetExtremesReference (int index)
 See Sizes of Dillo Widgets (or Size requisitions depending on positions).
 
void sizeRequest (Requisition *requisition, int numPos=0, Widget **references=NULL, int *x=NULL, int *y=NULL)
 This method is a wrapper for Widget::sizeRequestImpl(); it calls the latter only when needed.
 
void getExtremes (Extremes *extremes, int numPos=0, Widget **references=NULL, int *x=NULL, int *y=NULL)
 Wrapper for Widget::getExtremesImpl().
 
void sizeAllocate (Allocation *allocation)
 Wrapper for Widget::sizeAllocateImpl, calls the latter only when needed.
 
void calcExtraSpace (int numPos, Widget **references, int *x, int *y)
 Calculates dw::core::Widget::extraSpace.
 
int getAvailWidth (bool forceValue)
 Return available width including margin/border/padding (extraSpace?), not only the content width.
 
int getAvailHeight (bool forceValue)
 Return available height including margin/border/padding (extraSpace?), not only the content height.
 
virtual bool getAdjustMinWidth ()
 
void correctRequisition (Requisition *requisition, void(*splitHeightFun)(int, int *, int *), bool allowDecreaseWidth, bool allowDecreaseHeight)
 
void correctExtremes (Extremes *extremes, bool useAdjustmentWidth)
 
int calcWidth (style::Length cssValue, int refWidth, Widget *refWidget, int limitMinWidth, bool forceValue)
 Computes a width value in pixels from cssValue.
 
void calcFinalWidth (style::Style *style, int refWidth, Widget *refWidget, int limitMinWidth, bool forceValue, int *finalWidth)
 
int calcHeight (style::Length cssValue, bool usePercentage, int refHeight, Widget *refWidget, bool forceValue)
 
virtual int applyPerWidth (int containerWidth, style::Length perWidth)
 
virtual int applyPerHeight (int containerHeight, style::Length perHeight)
 
int getMinWidth (Extremes *extremes, bool forceValue)
 Used to evaluate Widget::adjustMinWidth.
 
virtual bool isBlockLevel ()
 
virtual bool isPossibleContainer ()
 
void containerSizeChanged ()
 
bool intersects (Widget *refWidget, Rectangle *area, Rectangle *intersection)
 Calculates the intersection of the visible allocation (i.
 
void drawInterruption (View *view, Rectangle *area, DrawingContext *context)
 See Interrupted drawing for details.
 
WidgetgetWidgetAtPointInterrupted (int x, int y, GettingWidgetAtPointContext *context)
 
bool buttonPress (EventButton *event)
 
bool buttonRelease (EventButton *event)
 
bool motionNotify (EventMotion *event)
 
void enterNotify (EventCrossing *event)
 
void leaveNotify (EventCrossing *event)
 
virtual void setStyle (style::Style *style)
 Change the style of a widget.
 
void setBgColor (style::Color *bgColor)
 Set the background "behind" the widget, if it is not the background of the parent widget, e.g.
 
style::ColorgetBgColor ()
 Get the actual background of a widget.
 
style::ColorgetFgColor ()
 Get the actual foreground color of a widget.
 
void drawBox (View *view, style::Style *style, Rectangle *area, int x, int y, int width, int height, bool inverse)
 Draw borders and background of a widget part, which allocation is given by (x, y, width, height) (widget coordinates).
 
void drawWidgetBox (View *view, Rectangle *area, bool inverse)
 Draw borders and background of a widget.
 
void drawSelected (View *view, Rectangle *area)
 
void setButtonSensitive (bool buttonSensitive)
 
bool isButtonSensitive ()
 
WidgetgetParent ()
 
WidgetgetContainer ()
 
WidgetgetTopLevel ()
 Get the widget at the root of the tree, this widget is part from.
 
int getLevel ()
 Get the level of the widget within the tree.
 
int getGeneratorLevel ()
 Get the level of the widget within the tree, regarting the generators, not the parents.
 
WidgetgetNearestCommonAncestor (Widget *otherWidget)
 Get the widget with the highest level, which is a direct ancestor of widget1 and widget2.
 
WidgetReferencegetWidgetReference ()
 
void setWidgetReference (WidgetReference *widgetReference)
 
WidgetgetGenerator ()
 
LayoutgetLayout ()
 
void scrollTo (HPosition hpos, VPosition vpos, int x, int y, int width, int height)
 
void getMarginArea (int *xMar, int *yMar, int *widthMar, int *heightMar)
 
void getBorderArea (int *xBor, int *yBor, int *widthBor, int *heightBor)
 
void getPaddingArea (int *xPad, int *yPad, int *widthPad, int *heightPad)
 Return the padding area (content plus padding).
 
virtual Iteratoriterator (Content::Type mask, bool atEnd)=0
 Return an iterator for this widget.
 
virtual void removeChild (Widget *child)
 
- Public Member Functions inherited from lout::identity::IdentifiableObject
 IdentifiableObject ()
 
void intoStringBuffer (misc::StringBuffer *sb)
 Store a textual representation of the object in a misc::StringBuffer.
 
int getClassId ()
 Returns the class identifier.
 
const char * getClassName ()
 Return the name, under which the class of this object was registered.
 
bool instanceOf (int otherClassId)
 Returns, whether this class is an instance of the class, given by otherClassId, or of a sub class of this class.
 
- Public Member Functions inherited from lout::object::Object
virtual ~Object ()
 The destructor is defined as virtual (but not abstract), so that destruction of Object's works properly.
 
virtual bool equals (Object *other)
 Returns, whether two objects are equal.
 
virtual int hashValue ()
 Return a hash value for the object.
 
virtual Objectclone ()
 Return an exact copy of the object.
 
const char * toString ()
 Use object::Object::intoStringBuffer to return a textual representation of the object.
 
virtual size_t sizeOf ()
 Return the number of bytes, this object totally uses.
 

Static Public Member Functions

static const char * stackingLevelText (int level)
 
static bool testStyleFloat (core::style::Style *style)
 
static bool testStyleAbsolutelyPositioned (core::style::Style *style)
 
static bool testStyleFixedlyPositioned (core::style::Style *style)
 
static bool testStyleRelativelyPositioned (core::style::Style *style)
 
static bool testStylePositioned (core::style::Style *style)
 
static bool testStyleOutOfFlow (core::style::Style *style)
 
static bool testWidgetFloat (Widget *widget)
 
static bool testWidgetAbsolutelyPositioned (Widget *widget)
 
static bool testWidgetFixedlyPositioned (Widget *widget)
 
static bool testWidgetRelativelyPositioned (Widget *widget)
 
static bool testWidgetPositioned (Widget *widget)
 
static bool testWidgetOutOfFlow (Widget *widget)
 
- Static Public Member Functions inherited from dw::core::Widget
static void setAdjustMinWidth (bool adjustMinWidth)
 
static void adjustHeight (int *height, bool allowDecreaseHeight, int ascent, int descent)
 

Static Public Attributes

static int CLASS_ID = -1
 
- Static Public Attributes inherited from dw::core::Widget
static int CLASS_ID = -1
 

Protected Types

enum  {
  OOFM_FLOATS , OOFM_ABSOLUTE , OOFM_RELATIVE , OOFM_FIXED ,
  NUM_OOFM
}
 
enum  { PARENT_REF_OOFM_BITS = 3 , PARENT_REF_OOFM_MASK = (1 << PARENT_REF_OOFM_BITS) - 1 }
 
- Protected Types inherited from dw::core::Widget
enum  Flags {
  RESIZE_QUEUED = 1 << 0 , EXTREMES_QUEUED = 1 << 1 , NEEDS_RESIZE = 1 << 2 , NEEDS_ALLOCATE = 1 << 3 ,
  ALLOCATE_QUEUED = 1 << 4 , EXTREMES_CHANGED = 1 << 5 , WAS_ALLOCATED = 1 << 6
}
 

Protected Member Functions

bool isParentRefOOF (int parentRef)
 
int makeParentRefInFlow (int inFlowSubRef)
 
int getParentRefInFlowSubRef (int parentRef)
 
int makeParentRefOOF (int oofmIndex, int oofmSubRef)
 
int getParentRefOOFSubRef (int parentRef)
 
int getParentRefOOFIndex (int parentRef)
 
oof::OutOfFlowMgrgetParentRefOutOfFlowMgr (int parentRef)
 
bool isWidgetOOF (Widget *widget)
 
int getWidgetInFlowSubRef (Widget *widget)
 
int getWidgetOOFSubRef (Widget *widget)
 
int getWidgetOOFIndex (Widget *widget)
 
oof::OutOfFlowMgrgetWidgetOutOfFlowMgr (Widget *widget)
 
OutOfFlowMgrsearchOutOfFlowMgr (int oofmIndex)
 
void initOutOfFlowMgrs ()
 
void correctRequisitionByOOF (core::Requisition *requisition, void(*splitHeightFun)(int, int *, int *))
 
void correctExtremesByOOF (core::Extremes *extremes)
 
void sizeAllocateStart (core::Allocation *allocation)
 
void sizeAllocateEnd ()
 
void containerSizeChangedForChildrenOOF ()
 
virtual void drawLevel (core::View *view, core::Rectangle *area, int level, core::DrawingContext *context)
 
void drawOOF (core::View *view, core::Rectangle *area, core::DrawingContext *context)
 
WidgetgetWidgetAtPoint (int x, int y, core::GettingWidgetAtPointContext *context)
 
virtual WidgetgetWidgetAtPointLevel (int x, int y, int level, core::GettingWidgetAtPointContext *context)
 
WidgetgetWidgetOOFAtPoint (int x, int y, core::GettingWidgetAtPointContext *context)
 
void notifySetAsTopLevel ()
 This method is called after a widget has been set as the top of a widget tree.
 
void notifySetParent ()
 This method is called after a widget has been added to a parent.
 
void removeChild (Widget *child)
 
virtual bool adjustExtraSpaceWhenCorrectingRequisitionByOOF ()
 
- Protected Member Functions inherited from dw::core::Widget
int getHeight ()
 
int getContentWidth ()
 
int getContentHeight ()
 
StackingContextMgrgetNextStackingContextMgr ()
 
void printFlag (Flags f)
 
void setFlags (Flags f)
 
void unsetFlags (Flags f)
 
void queueDraw ()
 
void queueDrawArea (int x, int y, int width, int height)
 
void queueResize (int ref, bool extremesChanged)
 
virtual void sizeRequestImpl (Requisition *requisition, int numPos, Widget **references, int *x, int *y)
 See Sizes of Dillo Widgets.
 
virtual void sizeRequestSimpl (Requisition *requisition)
 Simple variant, to be implemented by widgets with sizes not depending on positions.
 
virtual void getExtremesImpl (Extremes *extremes, int numPos, Widget **references, int *x, int *y)
 See Sizes of Dillo Widgets.
 
virtual void getExtremesSimpl (Extremes *extremes)
 Simple variant, to be implemented by widgets with extremes not depending on positions.
 
virtual void calcExtraSpaceImpl (int numPos, Widget **references, int *x, int *y)
 The actual implementation for calculating dw::core::Widget::extraSpace.
 
virtual void sizeAllocateImpl (Allocation *allocation)
 See Sizes of Dillo Widgets.
 
virtual void resizeDrawImpl ()
 Called after sizeAllocateImpl() to redraw necessary areas.
 
virtual void markSizeChange (int ref)
 See Sizes of Dillo Widgets.
 
virtual void markExtremesChange (int ref)
 See Sizes of Dillo Widgets.
 
virtual int getAvailWidthOfChild (Widget *child, bool forceValue)
 Computes the content width available of a child widget.
 
virtual int getAvailHeightOfChild (Widget *child, bool forceValue)
 
virtual void correctRequisitionOfChild (Widget *child, Requisition *requisition, void(*splitHeightFun)(int, int *, int *), bool allowDecreaseWidth, bool allowDecreaseHeight)
 
void correctReqWidthOfChild (Widget *child, Requisition *requisition, bool allowDecreaseWidth)
 
void correctReqHeightOfChild (Widget *child, Requisition *requisition, void(*splitHeightFun)(int, int *, int *), bool allowDecreaseHeight)
 
virtual void correctExtremesOfChild (Widget *child, Extremes *extremes, bool useAdjustmentWidth)
 
virtual void containerSizeChangedForChildren ()
 
virtual bool affectedByContainerSizeChange ()
 
virtual bool affectsSizeChangeContainerChild (Widget *child)
 
virtual bool usesAvailWidth ()
 Must be implemengted by a method returning true, when getAvailWidth() is called.
 
virtual bool usesAvailHeight ()
 Must be implemengted by a method returning true, when getAvailHeight() is called.
 
virtual bool buttonPressImpl (EventButton *event)
 
virtual bool buttonReleaseImpl (EventButton *event)
 
virtual bool motionNotifyImpl (EventMotion *event)
 
virtual void enterNotifyImpl (EventCrossing *event)
 
virtual void leaveNotifyImpl (EventCrossing *event)
 
char * addAnchor (const char *name)
 
char * addAnchor (const char *name, int y)
 
void changeAnchor (char *name, int y)
 
void removeAnchor (char *name)
 
void setCursor (style::Cursor cursor)
 
bool selectionHandleEvent (SelectionState::EventType eventType, Iterator *it, int charPos, int linkNo, MousePositionEvent *event)
 
- Protected Member Functions inherited from lout::identity::IdentifiableObject
void registerName (const char *className, int *classId)
 This method must be called in the constructor for the sub class.
 

Static Protected Member Functions

static int getOOFMIndex (Widget *widget)
 
static bool isOOFContainer (Widget *widget, int oofmIndex)
 

Protected Attributes

OOFAwareWidgetoofContainer [NUM_OOFM]
 
OutOfFlowMgroutOfFlowMgr [NUM_OOFM]
 
core::Requisition requisitionWithoutOOF
 
- Protected Attributes inherited from dw::core::Widget
WidgetImgRendererwidgetImgRenderer
 
Allocation allocation
 The current allocation: size and position, always relative to the canvas.
 
Layoutlayout
 
style::Box extraSpace
 Space around the margin box.
 
StackingContextMgrstackingContextMgr
 Set iff this widget constitutes a stacking context, as defined by CSS.
 
WidgetstackingContextWidget
 The bottom-most ancestor (or this) for which stackingContextMgr is set.
 

Static Protected Attributes

static const char * OOFM_NAME [NUM_OOFM]
 

Additional Inherited Members

- Public Attributes inherited from dw::core::Widget
int parentRef
 This value is defined by the parent widget, and used for incremential resizing.
 

Detailed Description

Base class for widgets which can act as container and generator for widgets out of flow.

(Perhaps it should be diffenciated between the two roles, container and generator, but this would make multiple inheritance necessary.)

See Handling Elements Out Of Flow for an overview.

Requirements for sub classes (in most cases refer to dw::Textblock as a good example):

For both generators and containers of floats (which is only implemented by dw::Textblock) it gets a bit more complicated.

Todo:
Currently, on the level of dw::oof::OOFAwareWidget, nothing is done about dw::core::Widget::markSizeChange and dw::core::Widget::markExtremesChange. This does not matter, though: dw::Textblock takes care of these, and dw::Table is only connected to subclasses of dw::oof::OOFPositionedMgr, which do care about these. However, this should be considered for completeness.

Definition at line 77 of file oofawarewidget.hh.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
protected
Enumerator
OOFM_FLOATS 
OOFM_ABSOLUTE 
OOFM_RELATIVE 
OOFM_FIXED 
NUM_OOFM 

Definition at line 80 of file oofawarewidget.hh.

◆ anonymous enum

anonymous enum
protected
Enumerator
PARENT_REF_OOFM_BITS 
PARENT_REF_OOFM_MASK 

Definition at line 82 of file oofawarewidget.hh.

◆ anonymous enum

anonymous enum
Enumerator
SL_START 
SL_BACKGROUND 
SL_SC_BOTTOM 
SL_IN_FLOW 
SL_OOF_REF 
SL_OOF_CONT 
SL_SC_TOP 
SL_END 

Definition at line 194 of file oofawarewidget.hh.

Constructor & Destructor Documentation

◆ OOFAwareWidget()

dw::oof::OOFAwareWidget::OOFAwareWidget ( )

◆ ~OOFAwareWidget()

dw::oof::OOFAwareWidget::~OOFAwareWidget ( )

Member Function Documentation

◆ adjustExtraSpaceWhenCorrectingRequisitionByOOF()

bool dw::oof::OOFAwareWidget::adjustExtraSpaceWhenCorrectingRequisitionByOOF ( )
protectedvirtual

Reimplemented in dw::AlignedTableCell, and dw::SimpleTableCell.

Definition at line 611 of file oofawarewidget.cc.

Referenced by correctRequisitionByOOF().

◆ containerSizeChangedForChildrenOOF()

void dw::oof::OOFAwareWidget::containerSizeChangedForChildrenOOF ( )
protected

◆ correctExtremesByOOF()

◆ correctRequisitionByOOF()

◆ doesWidgetOOFInterruptDrawing()

◆ draw()

void dw::oof::OOFAwareWidget::draw ( core::View view,
core::Rectangle area,
core::DrawingContext context 
)
virtual

Area is given in widget coordinates.

Implements dw::core::Widget.

Reimplemented in dw::Ruler.

Definition at line 386 of file oofawarewidget.cc.

References DBG_OBJ_ENTER, DBG_OBJ_LEAVE, drawLevel(), dw::core::Rectangle::height, SL_END, SL_START, dw::core::Rectangle::width, dw::core::Rectangle::x, and dw::core::Rectangle::y.

◆ drawLevel()

◆ drawOOF()

void dw::oof::OOFAwareWidget::drawOOF ( core::View view,
core::Rectangle area,
core::DrawingContext context 
)
protected

Definition at line 447 of file oofawarewidget.cc.

References dw::oof::OutOfFlowMgr::draw(), NUM_OOFM, and outOfFlowMgr.

Referenced by drawLevel().

◆ getGeneratorWidth()

int dw::oof::OOFAwareWidget::getGeneratorWidth ( )
virtual

Return width including margin/border/padding Called by OOFFloatsMgr to position floats.

Reimplemented in dw::Textblock.

Definition at line 583 of file oofawarewidget.cc.

References lout::misc::notImplemented().

Referenced by dw::oof::OOFFloatsMgr::calcFloatX(), dw::oof::OOFFloatsMgr::getFloatsExtremes(), and dw::Textblock::getGeneratorRest().

◆ getGeneratorX()

int dw::oof::OOFAwareWidget::getGeneratorX ( int  oofmIndex)
virtual

Return position relative to container, not regarding margin/border/padding, Called by OOFFloatsMgr to position floats.

Reimplemented in dw::Textblock.

Definition at line 571 of file oofawarewidget.cc.

References lout::misc::notImplemented().

Referenced by dw::oof::OOFFloatsMgr::calcFloatX(), and dw::oof::OOFFloatsMgr::getBorder().

◆ getGeneratorY()

int dw::oof::OOFAwareWidget::getGeneratorY ( int  oofmIndex)
virtual

Return position relative to container, not regarding margin/border/padding, Called by OOFFloatsMgr to position floats.

Reimplemented in dw::Textblock.

Definition at line 577 of file oofawarewidget.cc.

References lout::misc::notImplemented().

Referenced by dw::oof::OOFFloatsMgr::TBInfo::ComparePosition::compare(), and dw::oof::OOFFloatsMgr::getClearPosition().

◆ getMaxGeneratorWidth()

int dw::oof::OOFAwareWidget::getMaxGeneratorWidth ( )
virtual

◆ getOOFMIndex()

◆ getParentRefInFlowSubRef()

int dw::oof::OOFAwareWidget::getParentRefInFlowSubRef ( int  parentRef)
inlineprotected

◆ getParentRefOOFIndex()

int dw::oof::OOFAwareWidget::getParentRefOOFIndex ( int  parentRef)
inlineprotected

◆ getParentRefOOFSubRef()

int dw::oof::OOFAwareWidget::getParentRefOOFSubRef ( int  parentRef)
inlineprotected

◆ getParentRefOutOfFlowMgr()

oof::OutOfFlowMgr * dw::oof::OOFAwareWidget::getParentRefOutOfFlowMgr ( int  parentRef)
inlineprotected

◆ getRequisitionWithoutOOF()

core::Requisition * dw::oof::OOFAwareWidget::getRequisitionWithoutOOF ( )
inline

Definition at line 243 of file oofawarewidget.hh.

References requisitionWithoutOOF.

◆ getWidgetAtPoint()

Widget * dw::oof::OOFAwareWidget::getWidgetAtPoint ( int  x,
int  y,
core::GettingWidgetAtPointContext context 
)
protectedvirtual

◆ getWidgetAtPointLevel()

◆ getWidgetInFlowSubRef()

int dw::oof::OOFAwareWidget::getWidgetInFlowSubRef ( Widget widget)
inlineprotected

Definition at line 143 of file oofawarewidget.hh.

References getParentRefInFlowSubRef().

Referenced by dw::Textblock::addParbreak().

◆ getWidgetOOFAtPoint()

Widget * dw::oof::OOFAwareWidget::getWidgetOOFAtPoint ( int  x,
int  y,
core::GettingWidgetAtPointContext context 
)
protected

◆ getWidgetOOFIndex()

int dw::oof::OOFAwareWidget::getWidgetOOFIndex ( Widget widget)
inlineprotected

◆ getWidgetOOFSubRef()

int dw::oof::OOFAwareWidget::getWidgetOOFSubRef ( Widget widget)
inlineprotected

Definition at line 146 of file oofawarewidget.hh.

References getParentRefOOFSubRef().

◆ getWidgetOutOfFlowMgr()

oof::OutOfFlowMgr * dw::oof::OOFAwareWidget::getWidgetOutOfFlowMgr ( Widget widget)
inlineprotected

◆ initOutOfFlowMgrs()

void dw::oof::OOFAwareWidget::initOutOfFlowMgrs ( )
protected

◆ isOOFContainer()

◆ isParentRefOOF()

bool dw::oof::OOFAwareWidget::isParentRefOOF ( int  parentRef)
inlineprotected

◆ isPossibleOOFContainer()

bool dw::oof::OOFAwareWidget::isPossibleOOFContainer ( int  oofmIndex)
virtual

Reimplemented in dw::Textblock.

Definition at line 601 of file oofawarewidget.cc.

References OOFM_FLOATS.

◆ isPossibleOOFContainerParent()

bool dw::oof::OOFAwareWidget::isPossibleOOFContainerParent ( int  oofmIndex)
virtual

Reimplemented in dw::Textblock.

Definition at line 606 of file oofawarewidget.cc.

References OOFM_FLOATS.

Referenced by isOOFContainer().

◆ isWidgetOOF()

bool dw::oof::OOFAwareWidget::isWidgetOOF ( Widget widget)
inlineprotected

◆ makeParentRefInFlow()

◆ makeParentRefOOF()

int dw::oof::OOFAwareWidget::makeParentRefOOF ( int  oofmIndex,
int  oofmSubRef 
)
inlineprotected

Definition at line 129 of file oofawarewidget.hh.

References PARENT_REF_OOFM_BITS.

Referenced by dw::Textblock::addWidget().

◆ notifySetAsTopLevel()

void dw::oof::OOFAwareWidget::notifySetAsTopLevel ( )
protectedvirtual

This method is called after a widget has been set as the top of a widget tree.

A widget may override this method when it is necessary to be notified.

Reimplemented from dw::core::Widget.

Reimplemented in dw::Textblock.

Definition at line 86 of file oofawarewidget.cc.

References DBG_OBJ_ARRSET_PTR, NUM_OOFM, and oofContainer.

◆ notifySetParent()

void dw::oof::OOFAwareWidget::notifySetParent ( )
protectedvirtual

This method is called after a widget has been added to a parent.

A widget may override this method when it is necessary to be notified.

Reimplemented from dw::core::Widget.

Reimplemented in dw::Textblock.

Definition at line 185 of file oofawarewidget.cc.

References CLASS_ID, DBG_OBJ_ARRSET_PTR, dw::core::Widget::getParent(), isOOFContainer(), NUM_OOFM, and oofContainer.

◆ oofSizeChanged()

void dw::oof::OOFAwareWidget::oofSizeChanged ( bool  extremesChanged)
virtual

Called by an implementation of dw::oof::OutOfFlowMgr when the size of the container has changed, typically in sizeAllocateEnd.

Reimplemented in dw::Textblock.

Definition at line 558 of file oofawarewidget.cc.

References dw::core::Widget::containerSizeChanged(), DBG_OBJ_ENTER, DBG_OBJ_LEAVE, dw::core::Widget::extremesChanged(), and dw::core::Widget::queueResize().

Referenced by dw::oof::OOFPositionedMgr::sizeAllocateEnd().

◆ removeChild()

void dw::oof::OOFAwareWidget::removeChild ( Widget child)
protected

Definition at line 540 of file oofawarewidget.cc.

References isWidgetOOF().

◆ searchOutOfFlowMgr()

◆ sizeAllocateEnd()

void dw::oof::OOFAwareWidget::sizeAllocateEnd ( )
protected

◆ sizeAllocateStart()

void dw::oof::OOFAwareWidget::sizeAllocateStart ( core::Allocation allocation)
protected

◆ stackingLevelText()

const char * dw::oof::OOFAwareWidget::stackingLevelText ( int  level)
static

◆ testStyleAbsolutelyPositioned()

static bool dw::oof::OOFAwareWidget::testStyleAbsolutelyPositioned ( core::style::Style style)
inlinestatic

◆ testStyleFixedlyPositioned()

static bool dw::oof::OOFAwareWidget::testStyleFixedlyPositioned ( core::style::Style style)
inlinestatic

◆ testStyleFloat()

static bool dw::oof::OOFAwareWidget::testStyleFloat ( core::style::Style style)
inlinestatic

◆ testStyleOutOfFlow()

static bool dw::oof::OOFAwareWidget::testStyleOutOfFlow ( core::style::Style style)
inlinestatic

◆ testStylePositioned()

static bool dw::oof::OOFAwareWidget::testStylePositioned ( core::style::Style style)
inlinestatic

◆ testStyleRelativelyPositioned()

static bool dw::oof::OOFAwareWidget::testStyleRelativelyPositioned ( core::style::Style style)
inlinestatic

◆ testWidgetAbsolutelyPositioned()

static bool dw::oof::OOFAwareWidget::testWidgetAbsolutelyPositioned ( Widget widget)
inlinestatic

◆ testWidgetFixedlyPositioned()

static bool dw::oof::OOFAwareWidget::testWidgetFixedlyPositioned ( Widget widget)
inlinestatic

◆ testWidgetFloat()

static bool dw::oof::OOFAwareWidget::testWidgetFloat ( Widget widget)
inlinestatic

Definition at line 227 of file oofawarewidget.hh.

References testStyleFloat().

Referenced by getOOFMIndex(), and dw::Textblock::usesMaxGeneratorWidth().

◆ testWidgetOutOfFlow()

static bool dw::oof::OOFAwareWidget::testWidgetOutOfFlow ( Widget widget)
inlinestatic

Definition at line 240 of file oofawarewidget.hh.

References testStyleOutOfFlow().

Referenced by dw::Textblock::addWidget(), and isOOFContainer().

◆ testWidgetPositioned()

static bool dw::oof::OOFAwareWidget::testWidgetPositioned ( Widget widget)
inlinestatic

Definition at line 237 of file oofawarewidget.hh.

References testStylePositioned().

Referenced by isOOFContainer().

◆ testWidgetRelativelyPositioned()

static bool dw::oof::OOFAwareWidget::testWidgetRelativelyPositioned ( Widget widget)
inlinestatic

Definition at line 234 of file oofawarewidget.hh.

References testStyleRelativelyPositioned().

Referenced by getOOFMIndex().

◆ updateReference()

void dw::oof::OOFAwareWidget::updateReference ( int  ref)
virtual

Update content in flow, down from ref.

Uses e. g. when floats sizes have changed.

Reimplemented in dw::Textblock.

Definition at line 548 of file oofawarewidget.cc.

References lout::misc::notImplemented().

◆ usesMaxGeneratorWidth()

bool dw::oof::OOFAwareWidget::usesMaxGeneratorWidth ( )
virtual

◆ widgetRefSizeChanged()

void dw::oof::OOFAwareWidget::widgetRefSizeChanged ( int  externalIndex)
virtual

Called by an implementation of dw::oof::OutOfFlowMgr (actually only OOFPosRelMgr) for the generator of a widget out of flow, when the reference size has changed.

(The size of the reference is 0 * 0 for all other implementations of dw::oof::OutOfFlowMgr.)

Reimplemented in dw::Textblock.

Definition at line 553 of file oofawarewidget.cc.

References lout::misc::notImplemented().

Referenced by dw::oof::OOFPosRelMgr::markSizeChange().

Member Data Documentation

◆ CLASS_ID

int dw::oof::OOFAwareWidget::CLASS_ID = -1
static

◆ oofContainer

◆ OOFM_NAME

const char * dw::oof::OOFAwareWidget::OOFM_NAME
staticprotected
Initial value:
= {
"FLOATS", "ABSOLUTE", "RELATIVE", "FIXED"
}

Definition at line 81 of file oofawarewidget.hh.

Referenced by dw::Textblock::addWidget(), correctExtremesByOOF(), correctRequisitionByOOF(), and getOOFMIndex().

◆ outOfFlowMgr

◆ requisitionWithoutOOF

core::Requisition dw::oof::OOFAwareWidget::requisitionWithoutOOF
protected

Definition at line 155 of file oofawarewidget.hh.

Referenced by correctRequisitionByOOF(), and getRequisitionWithoutOOF().


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