Dillo v3.1.1-111-gd4f56d0d
Loading...
Searching...
No Matches
dw::core::Widget Class Referenceabstract

The base class of all dillo widgets. More...

#include <widget.hh>

Classes

class  WidgetImgRenderer
 Implementation which represents the whole widget. More...
 

Public Member Functions

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)
 Computes the final width if posible and constraints it by min-width and max-width.
 
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.
 
virtual void draw (View *view, Rectangle *area, DrawingContext *context)=0
 Area is given in widget coordinates.
 
void drawInterruption (View *view, Rectangle *area, DrawingContext *context)
 See Interrupted drawing for details.
 
virtual WidgetgetWidgetAtPoint (int x, int y, GettingWidgetAtPointContext *context)
 
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 void setAdjustMinWidth (bool adjustMinWidth)
 
static void adjustHeight (int *height, bool allowDecreaseHeight, int ascent, int descent)
 

Public Attributes

int parentRef
 This value is defined by the parent widget, and used for incremential resizing.
 

Static Public Attributes

static int CLASS_ID = -1
 

Protected Types

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

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 correctRequisitionViewport (Requisition *requisition, void(*splitHeightFun)(int, int *, int *), bool allowDecreaseWidth, bool allowDecreaseHeight)
 Corrects a requisition to fit in the viewport.
 
void correctReqWidthOfChild (Widget *child, Requisition *requisition, bool allowDecreaseWidth)
 Correct a child requisition to fit the parent.
 
void correctReqHeightOfChild (Widget *child, Requisition *requisition, void(*splitHeightFun)(int, int *, int *), bool allowDecreaseHeight)
 
bool correctReqAspectRatio (int pass, Widget *child, Requisition *requisition, bool allowDecreaseWidth, bool allowDecreaseHeight, void(*splitHeightFun)(int, int *, int *))
 Correct a child requisition aspect ratio if needed.
 
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 void notifySetAsTopLevel ()
 This method is called after a widget has been set as the top of a widget tree.
 
virtual void notifySetParent ()
 This method is called after a widget has been added to a parent.
 
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.
 

Protected Attributes

WidgetImgRendererwidgetImgRenderer
 
Allocation allocation
 The current allocation: size and position, always relative to the canvas.
 
float ratio
 Preferred aspect ratio of the widget.
 
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.
 

Private Member Functions

void queueResize (int ref, bool extremesChanged, bool fast)
 This method should be called, when a widget changes its size.
 
void queueResizeFast (int ref, bool extremesChanged)
 
bool resizeIdleEntered ()
 
void enterQueueResize ()
 
void leaveQueueResize ()
 
bool queueResizeEntered ()
 
void enterSizeAllocate ()
 
void leaveSizeAllocate ()
 
bool sizeAllocateEntered ()
 
void enterSizeRequest ()
 
void leaveSizeRequest ()
 
bool sizeRequestEntered ()
 
void enterGetExtremes ()
 
void leaveGetExtremes ()
 
bool getExtremesEntered ()
 

Private Attributes

Widgetparent
 The parent widget, NULL for top-level widgets.
 
WidgetquasiParent
 ...
 
Widgetgenerator
 The generating widget, NULL for top-level widgets, or if not set; in the latter case, the effective generator (see getGenerator) is the parent.
 
Widgetcontainer
 The containing widget, equivalent to the "containing block" defined by CSS.
 
WidgetReferencewidgetReference
 
style::Stylestyle
 
Flags flags
 
Requisition requisition
 Size_request() stores the result of the last call of size_request_impl().
 
SizeParams requisitionParams
 
Extremes extremes
 Analogue to dw::core::Widget::requisition.
 
SizeParams extremesParams
 
style::ColorbgColor
 See dw::core::Widget::setBgColor().
 
bool buttonSensitive
 See dw::core::Widget::setButtonSensitive().
 
bool buttonSensitiveSet
 See dw::core::Widget::setButtonSensitive().
 
void * deleteCallbackData
 
DW_Callback_t deleteCallbackFunc
 

Static Private Attributes

static bool adjustMinWidth = true
 

Friends

class Layout
 

Detailed Description

The base class of all dillo widgets.

See also
Dillo Widget Overview, Layout and Widgets

Definition at line 43 of file widget.hh.

Member Enumeration Documentation

◆ Flags

enum dw::core::Widget::Flags
protected
Enumerator
RESIZE_QUEUED 
Todo:
Comment this.
EXTREMES_QUEUED 
Todo:
Comment this.
NEEDS_RESIZE 

Set, when dw::core::Widget::requisition is not up to date anymore.

Todo:
Update, see RESIZE_QUEUED.
NEEDS_ALLOCATE 

Only used internally, set to enforce size allocation.

In some cases, the size of a widget remains the same, but the children are allocated at different positions and in different sizes, so that a simple comparison of old and new allocation is insufficient. Therefore, this flag is set (indirectly, as ALLOCATE_QUEUED) in queueResize.

ALLOCATE_QUEUED 
Todo:
Comment this.
EXTREMES_CHANGED 

Set, when dw::core::Widget::extremes is not up to date anymore.

Todo:
Update, see RESIZE_QUEUED.
WAS_ALLOCATED 

Set, when a widget was already once allocated,.

The dw::Image widget uses this flag, see dw::Image::setBuffer.

Definition at line 48 of file widget.hh.

Constructor & Destructor Documentation

◆ Widget()

◆ ~Widget()

Member Function Documentation

◆ addAnchor() [1/2]

char * dw::core::Widget::addAnchor ( const char *  name)
inlineprotected

Definition at line 397 of file widget.hh.

References dw::core::Layout::addAnchor(), and layout.

◆ addAnchor() [2/2]

char * dw::core::Widget::addAnchor ( const char *  name,
int  y 
)
inlineprotected

Definition at line 400 of file widget.hh.

References dw::core::Layout::addAnchor(), and layout.

◆ adjustHeight()

void dw::core::Widget::adjustHeight ( int *  height,
bool  allowDecreaseHeight,
int  ascent,
int  descent 
)
static

Definition at line 1083 of file widget.cc.

Referenced by correctReqHeightOfChild(), and correctRequisitionViewport().

◆ affectedByContainerSizeChange()

◆ affectsSizeChangeContainerChild()

◆ allocateQueued()

bool dw::core::Widget::allocateQueued ( )
inline

Definition at line 473 of file widget.hh.

References ALLOCATE_QUEUED, and flags.

Referenced by dw::core::Layout::resizeIdle().

◆ applyPerHeight()

int dw::core::Widget::applyPerHeight ( int  containerHeight,
style::Length  perHeight 
)
virtual

◆ applyPerWidth()

int dw::core::Widget::applyPerWidth ( int  containerWidth,
style::Length  perWidth 
)
virtual

◆ boxDiffHeight()

◆ boxDiffWidth()

◆ boxOffsetX()

◆ boxOffsetY()

◆ boxRestHeight()

◆ boxRestWidth()

◆ buttonPress()

bool dw::core::Widget::buttonPress ( EventButton event)

Definition at line 1284 of file widget.cc.

References buttonPressImpl().

Referenced by dw::core::Layout::processMouseEvent().

◆ buttonPressImpl()

bool dw::core::Widget::buttonPressImpl ( EventButton event)
protectedvirtual

Reimplemented in dw::Image, dw::Textblock, and dw::core::ui::Embed.

Definition at line 2204 of file widget.cc.

Referenced by buttonPress().

◆ buttonRelease()

bool dw::core::Widget::buttonRelease ( EventButton event)

Definition at line 1289 of file widget.cc.

References buttonReleaseImpl().

Referenced by dw::core::Layout::processMouseEvent().

◆ buttonReleaseImpl()

bool dw::core::Widget::buttonReleaseImpl ( EventButton event)
protectedvirtual

Reimplemented in dw::Image, and dw::Textblock.

Definition at line 2209 of file widget.cc.

Referenced by buttonRelease().

◆ calcExtraSpace()

void dw::core::Widget::calcExtraSpace ( int  numPos,
Widget **  references,
int *  x,
int *  y 
)

◆ calcExtraSpaceImpl()

void dw::core::Widget::calcExtraSpaceImpl ( int  numPos,
Widget **  references,
int *  x,
int *  y 
)
protectedvirtual

The actual implementation for calculating dw::core::Widget::extraSpace.

The implementation gets a clean value of dw::core::Widget::extraSpace, which is only corrected. To make sure all possible influences are considered, the implementation of the base class should be called, too.

Definition at line 1744 of file widget.cc.

Referenced by calcExtraSpace().

◆ calcFinalWidth()

void dw::core::Widget::calcFinalWidth ( style::Style style,
int  refWidth,
Widget refWidget,
int  limitMinWidth,
bool  forceValue,
int *  finalWidth 
)

Computes the final width if posible and constraints it by min-width and max-width.

This function performs a very particular computation. It will try to find the fixed width of the style provided by taking the refWidth or refWidget as the reference to expand relative values.

The value of *finalWidth is used to initialized the first value of width, so it can be used to initialize a width when the style sets the width property to auto.

If both the initial *finalWidth and the style with are -1, the value will be left as is, even if min-width and max-width could contraint the size. For the width to be constrained, either the initial *finalWidth or the computed width should return an absolute value.

Postcondition
If *finalWidth != -1 the computed *finalWidth value is guarantee not to be -1.

Definition at line 991 of file widget.cc.

References calcWidth(), DBG_OBJ_ENTER, DBG_OBJ_LEAVE_VAL, DBG_OBJ_MSGF, dw::core::style::StyleAttrs::maxWidth, dw::core::style::StyleAttrs::minWidth, style, and dw::core::style::StyleAttrs::width.

Referenced by correctRequisitionViewport(), correctReqWidthOfChild(), getAvailWidth(), dw::oof::OOFPosAbsLikeMgr::getAvailWidthOfChild(), and getAvailWidthOfChild().

◆ calcHeight()

◆ calcWidth()

int dw::core::Widget::calcWidth ( style::Length  cssValue,
int  refWidth,
Widget refWidget,
int  limitMinWidth,
bool  forceValue 
)

Computes a width value in pixels from cssValue.

If cssValue is absolute, the absolute value is used. If cssValue is relative, then it is applied to refWidth. Otherwise, -1 is used.

In any case, the returned value is clamped so that is not smaller than limitMinWidth.

Definition at line 932 of file widget.cc.

References dw::core::style::absLengthVal(), applyPerWidth(), boxDiffWidth(), DBG_OBJ_ENTER, DBG_OBJ_LEAVE_VAL, DBG_OBJ_MSG, DBG_OBJ_MSGF, getAvailWidth(), dw::core::style::isAbsLength(), dw::core::style::isPerLength(), lout::misc::max(), and dw::core::style::perLengthVal_useThisOnlyForDebugging().

Referenced by calcFinalWidth(), correctExtremes(), correctExtremesOfChild(), and getAvailWidthOfChild().

◆ changeAnchor()

void dw::core::Widget::changeAnchor ( char *  name,
int  y 
)
inlineprotected

Definition at line 403 of file widget.hh.

References dw::core::Layout::changeAnchor(), and layout.

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

◆ containerSizeChanged()

◆ containerSizeChangedForChildren()

◆ correctExtremes()

◆ correctExtremesOfChild()

◆ correctReqAspectRatio()

bool dw::core::Widget::correctReqAspectRatio ( int  pass,
Widget child,
Requisition requisition,
bool  allowDecreaseWidth,
bool  allowDecreaseHeight,
void(*)(int, int *, int *)  splitHeightFun 
)
protected

Correct a child requisition aspect ratio if needed.

After the parent widget corrects the requisition provided by the

Parameters
child,thepreferred aspect ratio may no longer be the current ratio. This method tries to adjust the size of the requisition so the aspect ratio is the preferred aspect ratio of the child.

It implements three passes: increase (0), decrease (1) or keep (2). In the increase pass, the size is increased to fill the aspect ratio. If after correcting the size, it is still not the preferred aspect ratio (maybe it breaks some other constraint), reducing the size will be attempted. If at the end, reducing the size doesn't fix the preferred aspect ratio, the size is kept as it is.

It can be called from the parent or the child itself, as it doesn't read any information from the current widget.

Returns
true if the requisition has been modified, false otherwise.

Definition at line 1958 of file widget.cc.

References dw::core::Requisition::ascent, boxDiffHeight(), boxDiffWidth(), DEBUG_MSG, dw::core::Requisition::descent, lout::identity::IdentifiableObject::getClassName(), dw::core::PASS_DECREASE, dw::core::PASS_INCREASE, dw::core::PASS_KEEP, ratio, requisition, and dw::core::Requisition::width.

Referenced by correctRequisition(), and correctRequisitionOfChild().

◆ correctReqHeightOfChild()

◆ correctRequisition()

◆ correctRequisitionOfChild()

◆ correctRequisitionViewport()

void dw::core::Widget::correctRequisitionViewport ( Requisition requisition,
void(*)(int, int *, int *)  splitHeightFun,
bool  allowDecreaseWidth,
bool  allowDecreaseHeight 
)
protected

Corrects a requisition to fit in the viewport.

Instead of asking the parent widget, it uses the viewport dimensions to correct the requisition if needed. This is used for the top level widget (the body) which doesn't have any parent.

Definition at line 768 of file widget.cc.

References adjustHeight(), dw::core::Requisition::ascent, calcFinalWidth(), calcHeight(), dw::core::Layout::canvasHeightGreater, dw::core::Requisition::descent, getMinWidth(), getStyle(), layout, requisition, dw::core::Layout::viewportHeight, dw::core::Layout::viewportWidth, dw::core::Layout::vScrollbarThickness, and dw::core::Requisition::width.

Referenced by correctRequisition().

◆ correctReqWidthOfChild()

void dw::core::Widget::correctReqWidthOfChild ( Widget child,
Requisition requisition,
bool  allowDecreaseWidth 
)
protected

Correct a child requisition to fit the parent.

The

Parameters
requisitionis adjusted in width so it fits in the current widget (parent).

Definition at line 2056 of file widget.cc.

References dw::core::Requisition::ascent, lout::misc::boolToStr(), calcFinalWidth(), container, DBG_OBJ_ENTER, DBG_OBJ_LEAVE_VAL, dw::core::Requisition::descent, getMinWidth(), getStyle(), quasiParent, requisition, and dw::core::Requisition::width.

Referenced by correctRequisitionOfChild(), and dw::core::ui::Embed::correctReqWidthOfChildNoRec().

◆ draw()

◆ drawBox()

void dw::core::Widget::drawBox ( View view,
style::Style style,
Rectangle area,
int  x,
int  y,
int  width,
int  height,
bool  inverse 
)

◆ drawInterruption()

void dw::core::Widget::drawInterruption ( View view,
Rectangle area,
DrawingContext context 
)

◆ drawSelected()

void dw::core::Widget::drawSelected ( View view,
Rectangle area 
)

Definition at line 1563 of file widget.cc.

◆ drawWidgetBox()

◆ enterGetExtremes()

void dw::core::Widget::enterGetExtremes ( )
inlineprivate

Definition at line 455 of file widget.hh.

References dw::core::Layout::getExtremesCounter, and layout.

Referenced by getExtremes().

◆ enterNotify()

void dw::core::Widget::enterNotify ( EventCrossing event)

Definition at line 1299 of file widget.cc.

References enterNotifyImpl().

Referenced by dw::core::Layout::enterNotify(), and dw::core::Layout::moveToWidget().

◆ enterNotifyImpl()

void dw::core::Widget::enterNotifyImpl ( EventCrossing event)
protectedvirtual

◆ enterQueueResize()

void dw::core::Widget::enterQueueResize ( )
inlineprivate

Definition at line 443 of file widget.hh.

References layout, and dw::core::Layout::queueResizeCounter.

Referenced by queueResize().

◆ enterSizeAllocate()

void dw::core::Widget::enterSizeAllocate ( )
inlineprivate

Definition at line 447 of file widget.hh.

References layout, and dw::core::Layout::sizeAllocateCounter.

Referenced by sizeAllocate().

◆ enterSizeRequest()

void dw::core::Widget::enterSizeRequest ( )
inlineprivate

Definition at line 451 of file widget.hh.

References layout, and dw::core::Layout::sizeRequestCounter.

Referenced by sizeRequest().

◆ extremesChanged()

◆ extremesQueued()

bool dw::core::Widget::extremesQueued ( )
inline

◆ getAdjustMinWidth()

virtual bool dw::core::Widget::getAdjustMinWidth ( )
inlinevirtual

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

Definition at line 532 of file widget.hh.

References adjustMinWidth.

Referenced by getMinWidth().

◆ getAllocation()

◆ getAvailHeight()

◆ getAvailHeightOfChild()

◆ getAvailWidth()

◆ getAvailWidthOfChild()

int dw::core::Widget::getAvailWidthOfChild ( Widget child,
bool  forceValue 
)
protectedvirtual

Computes the content width available of a child widget.

Parameters
childThe child widget of which the available width will be computed.
forceValueIf true, computes the width of the child with value "auto". Otherwise, it wont.
Returns
The available width in pixels or -1.

Reimplemented in dw::Textblock, and dw::core::ui::Embed.

Definition at line 1779 of file widget.cc.

References boxDiffWidth(), calcFinalWidth(), calcWidth(), container, DBG_OBJ_ENTER, DBG_OBJ_LEAVE_VAL, DBG_OBJ_MSG, DBG_OBJ_MSG_END, DBG_OBJ_MSG_START, getAvailWidth(), getAvailWidthOfChild(), getStyle(), dw::core::style::LENGTH_AUTO, lout::misc::max(), dw::core::style::StyleAttrs::maxWidth, dw::core::style::StyleAttrs::minWidth, parent, quasiParent, and dw::core::style::StyleAttrs::width.

Referenced by getAvailWidth(), and getAvailWidthOfChild().

◆ getBgColor()

style::Color * dw::core::Widget::getBgColor ( )

Get the actual background of a widget.

Definition at line 1431 of file widget.cc.

References dw::core::style::StyleAttrs::backgroundColor, bgColor, dw::core::Layout::getBgColor(), layout, parent, and style.

Referenced by a_Html_image_new(), dw::Textblock::drawSpace(), and dw::Textblock::drawWord0().

◆ getBorderArea()

void dw::core::Widget::getBorderArea ( int *  xBor,
int *  yBor,
int *  widthBor,
int *  heightBor 
)

◆ getContainer()

Widget * dw::core::Widget::getContainer ( )
inline

Definition at line 588 of file widget.hh.

References container.

◆ getContentHeight()

int dw::core::Widget::getContentHeight ( )
inlineprotected

Definition at line 208 of file widget.hh.

References boxDiffHeight(), and getHeight().

◆ getContentWidth()

int dw::core::Widget::getContentWidth ( )
inlineprotected

Definition at line 207 of file widget.hh.

References allocation, boxDiffWidth(), and dw::core::Allocation::width.

Referenced by dw::Table::drawLevel().

◆ getExtremes()

◆ getExtremesEntered()

bool dw::core::Widget::getExtremesEntered ( )
inlineprivate

Definition at line 457 of file widget.hh.

References dw::core::Layout::getExtremesCounter, and layout.

Referenced by sizeAllocate().

◆ getExtremesImpl()

void dw::core::Widget::getExtremesImpl ( Extremes extremes,
int  numPos,
Widget **  references,
int *  x,
int *  y 
)
protectedvirtual

See Sizes of Dillo Widgets.

Definition at line 1716 of file widget.cc.

References DBG_OBJ_ENTER0, DBG_OBJ_LEAVE, extremes, and getExtremesSimpl().

Referenced by getExtremes().

◆ getExtremesReference()

Widget * dw::core::Widget::getExtremesReference ( int  index)
virtual

◆ getExtremesSimpl()

void dw::core::Widget::getExtremesSimpl ( Extremes extremes)
protectedvirtual

Simple variant, to be implemented by widgets with extremes not depending on positions.

Reimplemented in dw::Bullet, dw::Image, dw::Ruler, dw::Table, dw::Textblock, dw::SimpleContainer, and dw::core::ui::Embed.

Definition at line 1725 of file widget.cc.

References lout::misc::notImplemented().

Referenced by getExtremesImpl().

◆ getFgColor()

style::Color * dw::core::Widget::getFgColor ( )

Get the actual foreground color of a widget.

Definition at line 1450 of file widget.cc.

References dw::core::style::StyleAttrs::color, parent, and style.

Referenced by a_Html_image_new().

◆ getGenerator()

Widget * dw::core::Widget::getGenerator ( )
inline

Definition at line 600 of file widget.hh.

References generator, and parent.

Referenced by getGeneratorLevel(), and dw::core::DeepIterator::getRespectiveParent().

◆ getGeneratorLevel()

int dw::core::Widget::getGeneratorLevel ( )

Get the level of the widget within the tree, regarting the generators, not the parents.

The root widget has the level 0.

Definition at line 1612 of file widget.cc.

References getGenerator().

Referenced by dw::core::DeepIterator::getRespectiveLevel().

◆ getHeight()

◆ getLayout()

Layout * dw::core::Widget::getLayout ( )
inline

Definition at line 602 of file widget.hh.

References layout.

Referenced by a_Html_image_new(), and dw::core::Iterator::scrollTo().

◆ getLevel()

int dw::core::Widget::getLevel ( )

Get the level of the widget within the tree.

The root widget has the level 0.

Definition at line 1593 of file widget.cc.

References parent.

Referenced by dw::oof::OOFAwareWidget::doesWidgetOOFInterruptDrawing(), getNearestCommonAncestor(), and dw::core::DeepIterator::getRespectiveLevel().

◆ getMarginArea()

void dw::core::Widget::getMarginArea ( int *  xMar,
int *  yMar,
int *  widthMar,
int *  heightMar 
)

◆ getMinWidth()

int dw::core::Widget::getMinWidth ( Extremes extremes,
bool  forceValue 
)

Used to evaluate Widget::adjustMinWidth.

If extremes == NULL, getExtremes is called. ForceValue is the same value passed to getAvailWidth etc.; if false, getExtremes is not called. A value of "false" is passed for "useCorrected" in the context of correctExtemes etc., to avoid cyclic dependencies.

Definition at line 620 of file widget.cc.

References dw::core::Extremes::adjustmentWidth, DBG_IF_RTFL, DBG_OBJ_ENTER, DBG_OBJ_LEAVE_VAL, extremes, getAdjustMinWidth(), getExtremes(), dw::core::Extremes::maxWidth, dw::core::Extremes::maxWidthIntrinsic, dw::core::Extremes::minWidth, and dw::core::Extremes::minWidthIntrinsic.

Referenced by correctExtremes(), correctExtremesOfChild(), correctRequisitionViewport(), correctReqWidthOfChild(), and dw::oof::OOFPosAbsLikeMgr::getAvailWidthOfChild().

◆ getNearestCommonAncestor()

Widget * dw::core::Widget::getNearestCommonAncestor ( Widget otherWidget)

Get the widget with the highest level, which is a direct ancestor of widget1 and widget2.

Definition at line 1629 of file widget.cc.

References getLevel(), MSG_WARN, and parent.

Referenced by dw::core::Layout::moveToWidget().

◆ getNextStackingContextMgr()

StackingContextMgr * dw::core::Widget::getNextStackingContextMgr ( )
inlineprotected

Definition at line 240 of file widget.hh.

References stackingContextMgr, and stackingContextWidget.

◆ getPaddingArea()

void dw::core::Widget::getPaddingArea ( int *  xPad,
int *  yPad,
int *  widthPad,
int *  heightPad 
)

Return the padding area (content plus padding).

Used as "reference area" (ee comment of "style::drawBackground") for backgrounds.

Definition at line 1690 of file widget.cc.

References dw::core::style::StyleAttrs::borderWidth, dw::core::style::Box::bottom, getBorderArea(), dw::core::style::Box::left, dw::core::style::Box::right, style, and dw::core::style::Box::top.

Referenced by drawBox(), and drawWidgetBox().

◆ getParent()

◆ getStyle()

style::Style * dw::core::Widget::getStyle ( )
inline

Definition at line 482 of file widget.hh.

References style.

Referenced by dw::Textblock::accumulateWordForLine(), dw::Table::actuallyCalcCellSizes(), dw::core::StackingContextMgr::addChildSCWidget(), dw::Textblock::addLine(), dw::oof::OOFFloatsMgr::addWidgetOOF(), affectedByContainerSizeChange(), dw::oof::OOFFloatsMgr::affectsLeftBorder(), dw::oof::OOFFloatsMgr::affectsRightBorder(), affectsSizeChangeContainerChild(), dw::Table::apportionRowSpan(), boxOffsetX(), boxOffsetY(), boxRestHeight(), boxRestWidth(), dw::Table::calcAvailWidthForDescendant(), dw::oof::OOFFloatsMgr::calcFloatX(), dw::oof::OOFPosAbsLikeMgr::calcHPosAndSizeChildOfChild(), dw::oof::OOFPosAbsLikeMgr::calcVPosAndSizeChildOfChild(), dw::Textblock::changeLinkColor(), dw::oof::OOFFloatsMgr::collidesH(), dw::oof::OOFPosAbsMgr::containerBoxOffsetX(), dw::oof::OOFPosAbsMgr::containerBoxOffsetY(), dw::oof::OOFPosAbsMgr::containerBoxRestHeight(), dw::oof::OOFPosAbsMgr::containerBoxRestWidth(), correctExtremes(), dw::core::ui::ComplexButtonResource::correctExtremesOfChild(), correctExtremesOfChild(), correctReqHeightOfChild(), dw::core::ui::ComplexButtonResource::correctRequisitionOfChild(), correctRequisitionViewport(), correctReqWidthOfChild(), dw::Bullet::draw(), dw::core::StackingContextMgr::draw(), dw::Table::drawLevel(), enterNotifyImpl(), dw::Textblock::findLineIndexWhenNotAllocated(), dw::Textblock::TextblockIterator::getAllocation(), getAvailHeight(), dw::oof::OOFPosAbsLikeMgr::getAvailHeightOfChild(), getAvailHeightOfChild(), getAvailWidth(), dw::oof::OOFPosAbsLikeMgr::getAvailWidthOfChild(), getAvailWidthOfChild(), dw::oof::OOFFloatsMgr::getBorder(), dw::oof::OOFPosRelMgr::getChildPosX(), dw::oof::OOFPosRelMgr::getChildPosY(), dw::oof::OOFFloatsMgr::getClearPosition(), dw::Bullet::getExtremesSimpl(), dw::Table::getExtremesSimpl(), dw::oof::OOFFloatsMgr::getFloatsExtremes(), dw::oof::OOFFloatsMgr::getFloatsListsAndSide(), dw::oof::OOFAwareWidget::getOOFMIndex(), dw::oof::OOFPositionedMgr::getPosBottom(), dw::oof::OOFPositionedMgr::getPosLeft(), dw::oof::OOFPositionedMgr::getPosRight(), dw::oof::OOFPositionedMgr::getPosTop(), dw::core::StackingContextMgr::getWidgetAtPoint(), dw::Textblock::handOverBreak(), dw::Textblock::initLine1Offset(), dw::core::StackingContextMgr::isEstablishingStackingContext(), dw::oof::OOFAwareWidget::isOOFContainer(), leaveNotifyImpl(), dw::Textblock::motionNotifyImpl(), dw::oof::OOFPosAbsLikeMgr::posXAbsolute(), dw::oof::OOFPosAbsLikeMgr::posYAbsolute(), dw::Textblock::showMissingLines(), dw::Table::sizeAllocateImpl(), dw::Textblock::sizeRequestImpl(), dw::Bullet::sizeRequestSimpl(), dw::Table::sizeRequestSimpl(), dw::Textblock::updateReference(), dw::Textblock::usesMaxGeneratorWidth(), dw::Textblock::yOffsetOfLineCreated(), and dw::Textblock::yOffsetOfLineToBeCreated().

◆ getTopLevel()

Widget * dw::core::Widget::getTopLevel ( )

Get the widget at the root of the tree, this widget is part from.

Definition at line 1578 of file widget.cc.

References parent.

Referenced by dw::core::Layout::moveToWidget().

◆ getWidgetAtPoint()

◆ getWidgetAtPointInterrupted()

Widget * dw::core::Widget::getWidgetAtPointInterrupted ( int  x,
int  y,
GettingWidgetAtPointContext context 
)

◆ getWidgetReference()

WidgetReference * dw::core::Widget::getWidgetReference ( )
inline

Definition at line 594 of file widget.hh.

References widgetReference.

Referenced by dw::oof::OOFFloatsMgr::updateGenerators().

◆ inAllocation()

◆ intersects()

bool dw::core::Widget::intersects ( Widget refWidget,
Rectangle area,
Rectangle intersection 
)

Calculates the intersection of the visible allocation (i.

e. the intersection with the visible parent allocation) and "area" (in widget coordinates referring to "refWidget"), returned in intersection (in widget coordinates).

Typically used by containers when drawing their children (passing "this" as "refWidget"). Returns whether intersection is not empty.

Definition at line 151 of file widget.cc.

References allocation, DBG_OBJ_ENTER, DBG_OBJ_LEAVE_VAL, DBG_OBJ_LEAVE_VAL0, DBG_OBJ_MSG, DBG_OBJ_MSGF, dw::core::Rectangle::height, dw::core::Rectangle::intersectsWith(), parent, wasAllocated(), dw::core::Rectangle::width, dw::core::Rectangle::x, dw::core::Allocation::x, dw::core::Rectangle::y, and dw::core::Allocation::y.

Referenced by dw::oof::OOFPositionedMgr::draw(), dw::SimpleContainer::draw(), dw::core::StackingContextMgr::draw(), dw::oof::OOFFloatsMgr::drawFloats(), drawInterruption(), and dw::Textblock::drawLine().

◆ isBlockLevel()

bool dw::core::Widget::isBlockLevel ( )
virtual

◆ isButtonSensitive()

bool dw::core::Widget::isButtonSensitive ( )
inline

Definition at line 585 of file widget.hh.

References buttonSensitive.

Referenced by dw::core::Layout::processMouseEvent().

◆ isPossibleContainer()

bool dw::core::Widget::isPossibleContainer ( )
virtual

Definition at line 2198 of file widget.cc.

References isBlockLevel().

◆ iterator()

virtual Iterator * dw::core::Widget::iterator ( Content::Type  mask,
bool  atEnd 
)
pure virtual

Return an iterator for this widget.

mask can narrow the types returned by the iterator, this can enhance performance quite much, e.g. when only searching for child widgets.

With atEnd == false, the iterator starts before the beginning, i.e. the first call of dw::core::Iterator::next will let the iterator point on the first piece of contents. Likewise, With atEnd == true, the iterator starts after the last piece of contents, call dw::core::Iterator::prev in this case.

Implemented in dw::core::ui::Embed, dw::Bullet, dw::Image, dw::Ruler, dw::Table, dw::Textblock, and dw::SimpleContainer.

Referenced by dw::core::CharIterator::CharIterator(), containerSizeChangedForChildren(), dw::core::DeepIterator::DeepIterator(), dw::core::Layout::detachWidget(), dw::core::DeepIterator::next(), dw::core::DeepIterator::prev(), dw::core::DeepIterator::searchDownward(), and dw::core::DeepIterator::searchSideward().

◆ leaveGetExtremes()

void dw::core::Widget::leaveGetExtremes ( )
inlineprivate

Definition at line 456 of file widget.hh.

References dw::core::Layout::getExtremesCounter, and layout.

Referenced by getExtremes().

◆ leaveNotify()

void dw::core::Widget::leaveNotify ( EventCrossing event)

Definition at line 1304 of file widget.cc.

References leaveNotifyImpl().

Referenced by dw::core::Layout::leaveNotify(), and dw::core::Layout::moveToWidget().

◆ leaveNotifyImpl()

void dw::core::Widget::leaveNotifyImpl ( EventCrossing event)
protectedvirtual

◆ leaveQueueResize()

void dw::core::Widget::leaveQueueResize ( )
inlineprivate

Definition at line 444 of file widget.hh.

References layout, and dw::core::Layout::queueResizeCounter.

Referenced by queueResize().

◆ leaveSizeAllocate()

void dw::core::Widget::leaveSizeAllocate ( )
inlineprivate

Definition at line 448 of file widget.hh.

References layout, and dw::core::Layout::sizeAllocateCounter.

Referenced by sizeAllocate().

◆ leaveSizeRequest()

void dw::core::Widget::leaveSizeRequest ( )
inlineprivate

Definition at line 452 of file widget.hh.

References layout, and dw::core::Layout::sizeRequestCounter.

Referenced by sizeRequest().

◆ markExtremesChange()

void dw::core::Widget::markExtremesChange ( int  ref)
protectedvirtual

See Sizes of Dillo Widgets.

Reimplemented in dw::Textblock.

Definition at line 1753 of file widget.cc.

Referenced by queueResize().

◆ markSizeChange()

void dw::core::Widget::markSizeChange ( int  ref)
protectedvirtual

See Sizes of Dillo Widgets.

Reimplemented in dw::Textblock.

Definition at line 1749 of file widget.cc.

Referenced by queueResize().

◆ motionNotify()

bool dw::core::Widget::motionNotify ( EventMotion event)

Definition at line 1294 of file widget.cc.

References motionNotifyImpl().

Referenced by dw::core::Layout::processMouseEvent().

◆ motionNotifyImpl()

bool dw::core::Widget::motionNotifyImpl ( EventMotion event)
protectedvirtual

Reimplemented in dw::Image, and dw::Textblock.

Definition at line 2214 of file widget.cc.

Referenced by motionNotify().

◆ needsAllocate()

bool dw::core::Widget::needsAllocate ( )
inline

Definition at line 472 of file widget.hh.

References flags, and NEEDS_ALLOCATE.

Referenced by dw::core::Layout::resizeIdle(), and sizeAllocate().

◆ needsResize()

bool dw::core::Widget::needsResize ( )
inline

◆ notifySetAsTopLevel()

void dw::core::Widget::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 in dw::oof::OOFAwareWidget, and dw::Textblock.

Definition at line 2179 of file widget.cc.

Referenced by dw::core::Layout::addWidget().

◆ notifySetParent()

void dw::core::Widget::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 in dw::oof::OOFAwareWidget, and dw::Textblock.

Definition at line 2188 of file widget.cc.

Referenced by setParent().

◆ numGetExtremesReferences()

int dw::core::Widget::numGetExtremesReferences ( )
virtual

See Sizes of Dillo Widgets (or Size requisitions depending on positions).

Reimplemented in dw::Textblock.

Definition at line 1190 of file widget.cc.

◆ numSizeRequestReferences()

int dw::core::Widget::numSizeRequestReferences ( )
virtual

◆ printFlag()

void dw::core::Widget::printFlag ( Flags  f)
inlineprotected

◆ queueDraw()

void dw::core::Widget::queueDraw ( )
inlineprotected

◆ queueDrawArea()

◆ queueResize() [1/2]

void dw::core::Widget::queueResize ( int  ref,
bool  extremesChanged 
)
inlineprotected

Definition at line 307 of file widget.hh.

References extremesChanged(), and queueResize().

◆ queueResize() [2/2]

◆ queueResizeEntered()

bool dw::core::Widget::queueResizeEntered ( )
inlineprivate

Definition at line 445 of file widget.hh.

References layout, and dw::core::Layout::queueResizeCounter.

Referenced by getExtremes(), sizeAllocate(), and sizeRequest().

◆ queueResizeFast()

void dw::core::Widget::queueResizeFast ( int  ref,
bool  extremesChanged 
)
inlineprivate

Definition at line 185 of file widget.hh.

References extremesChanged(), and queueResize().

Referenced by containerSizeChanged().

◆ removeAnchor()

void dw::core::Widget::removeAnchor ( char *  name)
inlineprotected

Definition at line 406 of file widget.hh.

References layout, and dw::core::Layout::removeAnchor().

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

◆ removeChild()

void dw::core::Widget::removeChild ( Widget child)
virtual

Definition at line 2236 of file widget.cc.

References lout::misc::notImplemented().

Referenced by ~Widget().

◆ resizeDrawImpl()

virtual void dw::core::Widget::resizeDrawImpl ( )
inlineprotectedvirtual

Called after sizeAllocateImpl() to redraw necessary areas.

By default the whole widget is redrawn.

Reimplemented in dw::Table, and dw::Textblock.

Definition at line 346 of file widget.hh.

References queueDraw().

Referenced by sizeAllocate().

◆ resizeIdleEntered()

bool dw::core::Widget::resizeIdleEntered ( )
inlineprivate

Definition at line 441 of file widget.hh.

References layout, and dw::core::Layout::resizeIdleCounter.

Referenced by sizeAllocate().

◆ resizeQueued()

bool dw::core::Widget::resizeQueued ( )
inline

◆ scrollTo()

void dw::core::Widget::scrollTo ( HPosition  hpos,
VPosition  vpos,
int  x,
int  y,
int  width,
int  height 
)

◆ selectionHandleEvent()

bool dw::core::Widget::selectionHandleEvent ( SelectionState::EventType  eventType,
Iterator it,
int  charPos,
int  linkNo,
MousePositionEvent event 
)
inlineprotected

◆ setAdjustMinWidth()

static void dw::core::Widget::setAdjustMinWidth ( bool  adjustMinWidth)
inlinestatic

Definition at line 463 of file widget.hh.

References adjustMinWidth.

Referenced by main().

◆ setBgColor()

void dw::core::Widget::setBgColor ( style::Color bgColor)

Set the background "behind" the widget, if it is not the background of the parent widget, e.g.

the background of a table row.

Definition at line 1423 of file widget.cc.

References bgColor.

◆ setButtonSensitive()

void dw::core::Widget::setButtonSensitive ( bool  buttonSensitive)

◆ setCursor()

void dw::core::Widget::setCursor ( style::Cursor  cursor)
inlineprotected

Definition at line 411 of file widget.hh.

References layout, and dw::core::Layout::setCursor().

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

◆ setDeleteCallback()

void dw::core::Widget::setDeleteCallback ( DW_Callback_t  func,
void *  data 
)
inline

Definition at line 437 of file widget.hh.

References deleteCallbackData, and deleteCallbackFunc.

◆ setFlags()

void dw::core::Widget::setFlags ( Flags  f)
inlineprotected

Definition at line 299 of file widget.hh.

References flags, and printFlag().

Referenced by getExtremes(), queueResize(), dw::core::Layout::resizeIdle(), sizeAllocate(), and sizeRequest().

◆ setGenerator()

void dw::core::Widget::setGenerator ( Widget generator)
inline

Definition at line 480 of file widget.hh.

References generator.

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

◆ setParent()

◆ setQuasiParent()

void dw::core::Widget::setQuasiParent ( Widget quasiParent)

Definition at line 288 of file widget.cc.

References DBG_OBJ_SET_PTR, and quasiParent.

◆ setStyle()

void dw::core::Widget::setStyle ( style::Style style)
virtual

Change the style of a widget.

The old style is automatically unreferred, the new is referred. If this call causes the widget to change its size, dw::core::Widget::queueResize is called.

Reimplemented in dw::core::ui::Embed.

Definition at line 1316 of file widget.cc.

References dw::core::style::StyleAttrs::backgroundColor, dw::core::style::StyleAttrs::backgroundImage, dw::core::style::StyleAttrs::borderWidth, dw::core::style::Box::bottom, DBG_OBJ_ASSOC_CHILD, DBG_OBJ_SET_COL, DBG_OBJ_SET_NUM, DBG_OBJ_SET_SYM, dw::core::style::StyleAttrs::display, dw::core::style::DISPLAY_BLOCK, dw::core::style::DISPLAY_INLINE, dw::core::style::DISPLAY_INLINE_BLOCK, dw::core::style::DISPLAY_LIST_ITEM, dw::core::style::DISPLAY_NONE, dw::core::style::DISPLAY_TABLE, dw::core::style::DISPLAY_TABLE_CELL, dw::core::style::DISPLAY_TABLE_FOOTER_GROUP, dw::core::style::DISPLAY_TABLE_HEADER_GROUP, dw::core::style::DISPLAY_TABLE_ROW, dw::core::style::DISPLAY_TABLE_ROW_GROUP, dw::core::style::ColorAttrs::getColor(), dw::core::style::StyleAttrs::hBorderSpacing, dw::core::style::StyleAttrs::height, dw::core::StackingContextMgr::isEstablishingStackingContext(), layout, dw::core::style::Box::left, dw::core::style::StyleAttrs::margin, dw::core::style::StyleAttrs::maxHeight, dw::core::style::StyleAttrs::maxWidth, dw::core::style::StyleAttrs::minHeight, dw::core::style::StyleAttrs::minWidth, dw::core::style::StyleAttrs::padding, dw::core::style::StyleImage::putExternalImgRenderer(), queueDraw(), queueResize(), dw::core::style::Style::ref(), dw::core::style::StyleImage::removeExternalImgRenderer(), dw::core::style::Box::right, dw::core::style::StyleAttrs::sizeDiffs(), stackingContextMgr, stackingContextWidget, style, dw::core::style::Box::top, dw::core::style::Style::unref(), dw::core::Layout::updateCursor(), dw::core::style::StyleAttrs::vBorderSpacing, widgetImgRenderer, and dw::core::style::StyleAttrs::width.

Referenced by dw::Textblock::addWidget(), dw::Textblock::changeLinkColor(), Html_input_image(), Html_set_collapsing_border_model(), Html_set_separate_border_model(), Html_tag_content_hr(), Html_tag_open_body(), Html_tag_open_button(), main(), dw::core::ui::Embed::setStyle(), and textTimeout().

◆ setWidgetReference()

void dw::core::Widget::setWidgetReference ( WidgetReference widgetReference)
inline

Definition at line 595 of file widget.hh.

References DBG_OBJ_SET_PTR, and widgetReference.

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

◆ sizeAllocate()

◆ sizeAllocateEntered()

bool dw::core::Widget::sizeAllocateEntered ( )
inlineprivate

Definition at line 449 of file widget.hh.

References layout, and dw::core::Layout::sizeAllocateCounter.

◆ sizeAllocateImpl()

void dw::core::Widget::sizeAllocateImpl ( Allocation allocation)
protectedvirtual

See Sizes of Dillo Widgets.

Reimplemented in dw::core::ui::Embed, dw::Image, dw::Table, dw::Textblock, and dw::SimpleContainer.

Definition at line 1731 of file widget.cc.

Referenced by sizeAllocate().

◆ sizeRequest()

◆ sizeRequestEntered()

bool dw::core::Widget::sizeRequestEntered ( )
inlineprivate

Definition at line 453 of file widget.hh.

References layout, and dw::core::Layout::sizeRequestCounter.

Referenced by sizeAllocate().

◆ sizeRequestImpl()

void dw::core::Widget::sizeRequestImpl ( Requisition requisition,
int  numPos,
Widget **  references,
int *  x,
int *  y 
)
protectedvirtual

See Sizes of Dillo Widgets.

Definition at line 1701 of file widget.cc.

References DBG_OBJ_ENTER0, DBG_OBJ_LEAVE, requisition, and sizeRequestSimpl().

Referenced by sizeRequest().

◆ sizeRequestReference()

Widget * dw::core::Widget::sizeRequestReference ( int  index)
virtual

◆ sizeRequestSimpl()

void dw::core::Widget::sizeRequestSimpl ( Requisition requisition)
protectedvirtual

Simple variant, to be implemented by widgets with sizes not depending on positions.

Reimplemented in dw::Bullet, dw::Image, dw::Ruler, dw::Table, dw::SimpleContainer, and dw::core::ui::Embed.

Definition at line 1710 of file widget.cc.

References lout::misc::notImplemented().

Referenced by sizeRequestImpl().

◆ unsetFlags()

void dw::core::Widget::unsetFlags ( Flags  f)
inlineprotected

Definition at line 301 of file widget.hh.

References flags, and printFlag().

Referenced by getExtremes(), dw::core::Layout::resizeIdle(), sizeAllocate(), and sizeRequest().

◆ usesAvailHeight()

bool dw::core::Widget::usesAvailHeight ( )
protectedvirtual

Must be implemengted by a method returning true, when getAvailHeight() is called.

Definition at line 537 of file widget.cc.

Referenced by affectedByContainerSizeChange(), and affectsSizeChangeContainerChild().

◆ usesAvailWidth()

bool dw::core::Widget::usesAvailWidth ( )
protectedvirtual

Must be implemengted by a method returning true, when getAvailWidth() is called.

Reimplemented in dw::Ruler, dw::Table, and dw::Textblock.

Definition at line 528 of file widget.cc.

Referenced by affectedByContainerSizeChange(), and affectsSizeChangeContainerChild().

◆ wasAllocated()

Friends And Related Symbol Documentation

◆ Layout

friend class Layout
friend

Definition at line 45 of file widget.hh.

Member Data Documentation

◆ adjustMinWidth

bool dw::core::Widget::adjustMinWidth = true
staticprivate

Definition at line 122 of file widget.hh.

Referenced by getAdjustMinWidth(), and setAdjustMinWidth().

◆ allocation

◆ bgColor

style::Color* dw::core::Widget::bgColor
private

See dw::core::Widget::setBgColor().

Definition at line 172 of file widget.hh.

Referenced by drawWidgetBox(), getBgColor(), setBgColor(), and Widget().

◆ buttonSensitive

bool dw::core::Widget::buttonSensitive
private

◆ buttonSensitiveSet

bool dw::core::Widget::buttonSensitiveSet
private

See dw::core::Widget::setButtonSensitive().

Definition at line 182 of file widget.hh.

Referenced by setButtonSensitive(), setParent(), and Widget().

◆ CLASS_ID

int dw::core::Widget::CLASS_ID = -1
static

Definition at line 461 of file widget.hh.

Referenced by Widget().

◆ container

Widget* dw::core::Widget::container
private

◆ deleteCallbackData

void* dw::core::Widget::deleteCallbackData
private

Definition at line 433 of file widget.hh.

Referenced by setDeleteCallback(), Widget(), and ~Widget().

◆ deleteCallbackFunc

DW_Callback_t dw::core::Widget::deleteCallbackFunc
private

Definition at line 434 of file widget.hh.

Referenced by setDeleteCallback(), Widget(), and ~Widget().

◆ extraSpace

◆ extremes

◆ extremesParams

SizeParams dw::core::Widget::extremesParams
private

Definition at line 167 of file widget.hh.

Referenced by getExtremes(), and Widget().

◆ flags

◆ generator

Widget* dw::core::Widget::generator
private

The generating widget, NULL for top-level widgets, or if not set; in the latter case, the effective generator (see getGenerator) is the parent.

Definition at line 139 of file widget.hh.

Referenced by dw::oof::OOFFloatsMgr::Float::CompareGBAndExtIndex::compare(), getGenerator(), setGenerator(), and Widget().

◆ layout

◆ parent

◆ parentRef

◆ quasiParent

◆ ratio

float dw::core::Widget::ratio
protected

Preferred aspect ratio of the widget.

Set to 0 when there is none. It is computed as width / height.

Definition at line 214 of file widget.hh.

Referenced by dw::Textblock::BadnessAndPenalty::calcBadness(), correctReqAspectRatio(), dw::Textblock::BadnessAndPenalty::intoStringBuffer(), dw::Textblock::BadnessAndPenalty::lineLoose(), dw::Textblock::BadnessAndPenalty::lineTight(), and Widget().

◆ requisition

◆ requisitionParams

SizeParams dw::core::Widget::requisitionParams
private

Definition at line 161 of file widget.hh.

Referenced by sizeRequest(), and Widget().

◆ stackingContextMgr

StackingContextMgr* dw::core::Widget::stackingContextMgr
protected

Set iff this widget constitutes a stacking context, as defined by CSS.

Definition at line 232 of file widget.hh.

Referenced by dw::core::Layout::addWidget(), dw::oof::OOFAwareWidget::drawLevel(), getNextStackingContextMgr(), dw::oof::OOFAwareWidget::getWidgetAtPointLevel(), setParent(), setStyle(), Widget(), and ~Widget().

◆ stackingContextWidget

Widget* dw::core::Widget::stackingContextWidget
protected

The bottom-most ancestor (or this) for which stackingContextMgr is set.

Definition at line 238 of file widget.hh.

Referenced by dw::core::Layout::addWidget(), dw::oof::OOFAwareWidget::doesWidgetOOFInterruptDrawing(), getNextStackingContextMgr(), setParent(), and setStyle().

◆ style

◆ widgetImgRenderer

WidgetImgRenderer* dw::core::Widget::widgetImgRenderer
protected

Definition at line 119 of file widget.hh.

Referenced by setStyle(), Widget(), and ~Widget().

◆ widgetReference

WidgetReference* dw::core::Widget::widgetReference
private

Definition at line 148 of file widget.hh.

Referenced by getWidgetReference(), and setWidgetReference().


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