Dillo
|
A Widget for rendering text blocks, i.e. paragraphs or sequences of paragraphs. More...
#include <textblock.hh>
Classes | |
struct | Anchor |
class | BadnessAndPenalty |
struct | DivChar |
struct | Line |
struct | Paragraph |
class | SpaceImgRenderer |
class | TextblockIterator |
struct | Word |
class | WordImgRenderer |
Implementation used for words. More... | |
Public Member Functions | |
Textblock (bool limitTextWidth) | |
~Textblock () | |
core::Iterator * | iterator (core::Content::Type mask, bool atEnd) |
Return an iterator for this widget. More... | |
void | flush () |
void | addText (const char *text, size_t len, core::style::Style *style) |
void | addText (const char *text, core::style::Style *style) |
void | addWidget (core::Widget *widget, core::style::Style *style) |
bool | addAnchor (const char *name, core::style::Style *style) |
void | addSpace (core::style::Style *style) |
void | addBreakOption (core::style::Style *style, bool forceBreak) |
void | addParbreak (int space, core::style::Style *style) |
void | addLinebreak (core::style::Style *style) |
void | handOverBreak (core::style::Style *style) |
void | changeLinkColor (int link, int newColor) |
void | changeWordStyle (int from, int to, core::style::Style *style, bool includeFirstSpace, bool includeLastSpace) |
void | updateReference (int ref) |
void | widgetRefSizeChanged (int externalIndex) |
void | clearPositionChanged () |
void | oofSizeChanged (bool extremesChanged) |
int | getGeneratorX (int oofmIndex) |
int | getGeneratorY (int oofmIndex) |
int | getGeneratorWidth (int callerX, int callerWidth) |
int | getMaxGeneratorWidth () |
bool | usesMaxGeneratorWidth () |
bool | isPossibleOOFContainer (int oofmIndex) |
bool | isPossibleOOFContainerParent (int oofmIndex) |
Public Member Functions inherited from dw::RegardingBorder | |
RegardingBorder () | |
~RegardingBorder () | |
Public Member Functions inherited from dw::oof::OOFAwareWidget | |
OOFAwareWidget () | |
~OOFAwareWidget () | |
core::Requisition * | getRequisitionWithoutOOF () |
bool | doesWidgetOOFInterruptDrawing (Widget *widget) |
void | draw (core::View *view, core::Rectangle *area, core::DrawingContext *context) |
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::Style * | getStyle () |
Allocation * | getAllocation () |
bool | inAllocation (int x, int y) |
int | boxOffsetX () |
int | boxRestWidth () |
int | boxDiffWidth () |
int | boxOffsetY () |
int | boxRestHeight () |
int | boxDiffHeight () |
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. More... | |
void | getExtremes (Extremes *extremes, int numPos=0, Widget **references=NULL, int *x=NULL, int *y=NULL) |
Wrapper for Widget::getExtremesImpl(). More... | |
void | sizeAllocate (Allocation *allocation) |
Wrapper for Widget::sizeAllocateImpl, calls the latter only when needed. More... | |
void | calcExtraSpace (int numPos, Widget **references, int *x, int *y) |
Calculates dw::core::Widget::extraSpace. More... | |
int | getAvailWidth (bool forceValue) |
int | getAvailHeight (bool forceValue) |
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) |
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. More... | |
virtual bool | isPossibleContainer () |
void | containerSizeChanged () |
bool | 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). More... | |
void | drawInterruption (View *view, Rectangle *area, DrawingContext *context) |
Widget * | getWidgetAtPointInterrupted (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. More... | |
void | 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. More... | |
style::Color * | getBgColor () |
Get the actual background of a widget. More... | |
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). More... | |
void | drawWidgetBox (View *view, Rectangle *area, bool inverse) |
Draw borders and background of a widget. More... | |
void | drawSelected (View *view, Rectangle *area) |
void | setButtonSensitive (bool buttonSensitive) |
bool | isButtonSensitive () |
Widget * | getParent () |
Widget * | getContainer () |
Widget * | getTopLevel () |
Get the widget at the root of the tree, this widget is part from. More... | |
int | getLevel () |
Get the level of the widget within the tree. More... | |
int | getGeneratorLevel () |
Get the level of the widget within the tree, regarting the generators, not the parents. More... | |
Widget * | getNearestCommonAncestor (Widget *otherWidget) |
Get the widget with the highest level, which is a direct ancestor of widget1 and widget2. More... | |
WidgetReference * | getWidgetReference () |
void | setWidgetReference (WidgetReference *widgetReference) |
Widget * | getGenerator () |
Layout * | getLayout () |
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). More... | |
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. More... | |
int | getClassId () |
Returns the class identifier. More... | |
const char * | getClassName () |
Return the name, under which the class of this object was registered. More... | |
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. More... | |
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. More... | |
virtual bool | equals (Object *other) |
Returns, whether two objects are equal. More... | |
virtual int | hashValue () |
Return a hash value for the object. More... | |
virtual Object * | clone () |
Return an exact copy of the object. More... | |
const char * | toString () |
Use object::Object::intoStringBuffer to return a textual representation of the object. More... | |
virtual size_t | sizeOf () |
Return the number of bytes, this object totally uses. More... | |
Static Public Member Functions | |
static void | setPenaltyHyphen (int penaltyHyphen) |
static void | setPenaltyHyphen2 (int penaltyHyphen2) |
static void | setPenaltyEmDashLeft (int penaltyLeftEmDash) |
static void | setPenaltyEmDashRight (int penaltyRightEmDash) |
static void | setPenaltyEmDashRight2 (int penaltyRightEmDash2) |
static void | setStretchabilityFactor (int stretchabilityFactor) |
static bool | mustAddBreaks (core::style::Style *style) |
Static Public Member Functions inherited from dw::oof::OOFAwareWidget | |
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::RegardingBorder | |
static int | CLASS_ID = -1 |
Static Public Attributes inherited from dw::oof::OOFAwareWidget | |
static int | CLASS_ID = -1 |
Static Public Attributes inherited from dw::core::Widget | |
static int | CLASS_ID = -1 |
Protected Member Functions | |
void | queueDrawRange (int index1, int index2) |
int | calcVerticalBorder (int widgetPadding, int widgetBorder, int widgetMargin, int lineBorderTotal, int lineMarginTotal) |
void | getWordExtremes (Word *word, core::Extremes *extremes) |
void | justifyLine (Line *line, int diff) |
Line * | addLine (int firstWord, int lastWord, int newLastOofPos, bool temporary, int minHeight) |
void | rewrap () |
void | fillParagraphs () |
void | initNewLine () |
void | calcBorders (int lastOofRef, int height) |
void | showMissingLines () |
void | removeTemporaryLines () |
void | decorateText (core::View *view, core::style::Style *style, core::style::Color::Shading shading, int x, int yBase, int width) |
void | drawText (core::View *view, core::style::Style *style, core::style::Color::Shading shading, int x, int y, const char *text, int start, int len, bool isStart, bool isEnd) |
void | drawWord (Line *line, int wordIndex1, int wordIndex2, core::View *view, core::Rectangle *area, int xWidget, int yWidgetBase) |
void | drawWord0 (int wordIndex1, int wordIndex2, const char *text, int totalWidth, bool drawHyphen, core::style::Style *style, core::View *view, core::Rectangle *area, int xWidget, int yWidgetBase) |
void | drawSpace (int wordIndex, core::View *view, core::Rectangle *area, int xWidget, int yWidgetBase) |
void | drawLine (Line *line, core::View *view, core::Rectangle *area, core::DrawingContext *context) |
int | findLineIndex (int y) |
int | findLineIndexWhenNotAllocated (int y) |
int | findLineIndexWhenAllocated (int y) |
int | findLineIndex (int y, int ascent) |
int | findLineOfWord (int wordIndex) |
Find the line of word wordIndex. More... | |
int | findParagraphOfWord (int wordIndex) |
Find the paragraph of word wordIndex. More... | |
Word * | findWord (int x, int y, bool *inSpace) |
Find the index of the word, or -1. More... | |
Word * | addWord (int width, int ascent, int descent, short flags, core::style::Style *style) |
void | breakAdded () |
void | initWord (int wordNo) |
void | cleanupWord (int wordNo) |
void | removeWordImgRenderer (int wordNo) |
void | setWordImgRenderer (int wordNo) |
void | removeSpaceImgRenderer (int wordNo) |
void | setSpaceImgRenderer (int wordNo) |
void | fillWord (int wordNo, int width, int ascent, int descent, short flags, core::style::Style *style) |
void | fillSpace (int wordNo, core::style::Style *style) |
void | setBreakOption (Word *word, core::style::Style *style, int breakPenalty1, int breakPenalty2, bool forceBreak) |
bool | isBreakAllowedInWord (Word *word) |
bool | isBreakAllowed (core::style::Style *style) |
int | textWidth (const char *text, int start, int len, core::style::Style *style, bool isStart, bool isEnd) |
void | calcTextSize (const char *text, size_t len, core::style::Style *style, core::Requisition *size, bool isStart, bool isEnd) |
bool | calcSizeOfWidgetInFlow (int wordIndex, Widget *widget, core::Requisition *size) |
bool | findSizeRequestReference (Widget *reference, int *xRef=NULL, int *yRef=NULL) |
bool | findSizeRequestReference (int oofmIndex, int *xRef=NULL, int *yRef=NULL) |
bool | mustBorderBeRegarded (Line *line) |
bool | mustBorderBeRegarded (int lineNo) |
int | lineYOffsetWidget (Line *line, core::Allocation *allocation) |
int | lineYOffsetWidget (Line *line) |
int | lineYOffsetCanvas (Line *line, core::Allocation *allocation) |
int | lineYOffsetCanvas (Line *line) |
int | lineYOffsetWidget (int lineIndex) |
int | lineYOffsetWidget (int lineIndex, core::Allocation *allocation) |
int | lineYOffsetCanvas (int lineIndex) |
int | calcPenaltyIndexForNewLine () |
RegardingBorder * | getWidgetRegardingBorderForLine (Line *line) |
RegardingBorder * | getWidgetRegardingBorderForLine (int lineNo) |
RegardingBorder * | getWidgetRegardingBorderForLine (int firstWord, int lastWord) |
int | yOffsetOfLineToBeCreated (int *lastMargin=NULL) |
int | yOffsetOfLineCreated (Line *line) |
bool | sendSelectionEvent (core::SelectionState::EventType eventType, core::MousePositionEvent *event) |
Send event to selection. More... | |
void | processWord (int wordIndex) |
virtual int | wordWrap (int wordIndex, bool wrapAll) |
int | wrapWordInFlow (int wordIndex, bool wrapAll) |
int | wrapWordOofRef (int wordIndex, bool wrapAll) |
void | balanceBreakPosAndHeight (int wordIndex, int firstIndex, int *searchUntil, bool tempNewLine, int penaltyIndex, bool borderIsCalculated, bool *thereWillBeMoreSpace, bool wrapAll, int *diffWords, int *wordIndexEnd, int *lastFloatPos, bool regardBorder, int *height, int *breakPos) |
int | searchBreakPos (int wordIndex, int firstIndex, int *searchUntil, bool tempNewLine, int penaltyIndex, bool thereWillBeMoreSpace, bool wrapAll, int *diffWords, int *wordIndexEnd, int *addIndex1=NULL) |
int | searchMinBap (int firstWord, int lastWordm, int penaltyIndex, bool thereWillBeMoreSpace, bool correctAtEnd) |
int | considerHyphenation (int firstIndex, int breakPos) |
bool | isHyphenationCandidate (Word *word) |
int | calcLinePartHeight (int firstWord, int lastWord) |
void | handleWordExtremes (int wordIndex) |
void | correctLastWordExtremes () |
int | getLineShrinkability (int lastWordIndex) |
int | getLineStretchability (int lastWordIndex) |
int | hyphenateWord (int wordIndex, int *addIndex1=NULL) |
void | moveWordIndices (int wordIndex, int num, int *addIndex1=NULL) |
void | accumulateWordForLine (int lineIndex, int wordIndex) |
void | accumulateWordData (int wordIndex) |
int | calcLineBreakWidth (int lineIndex) |
void | initLine1Offset (int wordIndex) |
void | alignLine (int lineIndex) |
void | calcTextOffset (int lineIndex, int totalWidth) |
void | drawLevel (core::View *view, core::Rectangle *area, int level, core::DrawingContext *context) |
Widget * | getWidgetAtPointLevel (int x, int y, int level, core::GettingWidgetAtPointContext *context) |
void | sizeRequestImpl (core::Requisition *requisition, int numPos, Widget **references, int *x, int *y) |
int | numSizeRequestReferences () |
See Sizes of Dillo Widgets (or Size requisitions depending on positions). More... | |
Widget * | sizeRequestReference (int index) |
See Sizes of Dillo Widgets (or Size requisitions depending on positions). More... | |
void | getExtremesSimpl (core::Extremes *extremes) |
Simple variant, to be implemented by widgets with extremes not depending on positions. More... | |
int | numGetExtremesReferences () |
See Sizes of Dillo Widgets (or Size requisitions depending on positions). More... | |
Widget * | getExtremesReference (int index) |
See Sizes of Dillo Widgets (or Size requisitions depending on positions). More... | |
void | notifySetAsTopLevel () |
This method is called after a widget has been set as the top of a widget tree. More... | |
void | notifySetParent () |
This method is called after a widget has been added to a parent. More... | |
void | sizeAllocateImpl (core::Allocation *allocation) |
See Sizes of Dillo Widgets. More... | |
void | calcExtraSpaceImpl (int numPos, Widget **references, int *x, int *y) |
int | getAvailWidthOfChild (core::Widget *child, bool forceValue) |
int | getAvailHeightOfChild (core::Widget *child, bool forceValue) |
void | containerSizeChangedForChildren () |
bool | affectsSizeChangeContainerChild (Widget *child) |
bool | usesAvailWidth () |
Must be implemengted by a method returning true, when getAvailWidth() is called. More... | |
void | resizeDrawImpl () |
Called after sizeAllocateImpl() to redraw necessary areas. By default the whole widget is redrawn. More... | |
void | markSizeChange (int ref) |
See Sizes of Dillo Widgets. More... | |
void | markExtremesChange (int ref) |
See Sizes of Dillo Widgets. More... | |
bool | isBlockLevel () |
bool | buttonPressImpl (core::EventButton *event) |
bool | buttonReleaseImpl (core::EventButton *event) |
bool | motionNotifyImpl (core::EventMotion *event) |
void | enterNotifyImpl (core::EventCrossing *event) |
void | leaveNotifyImpl (core::EventCrossing *event) |
void | removeChild (Widget *child) |
void | addText0 (const char *text, size_t len, short flags, core::style::Style *style, core::Requisition *size) |
void | calcTextSizes (const char *text, size_t textLen, core::style::Style *style, int numBreaks, int *breakPos, core::Requisition *wordSize) |
int | getGeneratorRest (int oofmIndex) |
Protected Member Functions inherited from dw::oof::OOFAwareWidget | |
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::OutOfFlowMgr * | getParentRefOutOfFlowMgr (int parentRef) |
bool | isWidgetOOF (Widget *widget) |
int | getWidgetInFlowSubRef (Widget *widget) |
int | getWidgetOOFSubRef (Widget *widget) |
int | getWidgetOOFIndex (Widget *widget) |
oof::OutOfFlowMgr * | getWidgetOutOfFlowMgr (Widget *widget) |
OutOfFlowMgr * | searchOutOfFlowMgr (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 () |
void | drawOOF (core::View *view, core::Rectangle *area, core::DrawingContext *context) |
Widget * | getWidgetAtPoint (int x, int y, core::GettingWidgetAtPointContext *context) |
Widget * | getWidgetOOFAtPoint (int x, int y, core::GettingWidgetAtPointContext *context) |
void | removeChild (Widget *child) |
virtual bool | adjustExtraSpaceWhenCorrectingRequisitionByOOF () |
Protected Member Functions inherited from dw::core::Widget | |
int | getHeight () |
int | getContentWidth () |
int | getContentHeight () |
StackingContextMgr * | getNextStackingContextMgr () |
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. More... | |
virtual void | sizeRequestSimpl (Requisition *requisition) |
Simple variant, to be implemented by widgets with sizes not depending on positions. More... | |
virtual void | getExtremesImpl (Extremes *extremes, int numPos, Widget **references, int *x, int *y) |
See Sizes of Dillo Widgets. More... | |
virtual void | calcExtraSpaceImpl (int numPos, Widget **references, int *x, int *y) |
The actual implementation for calculating dw::core::Widget::extraSpace. More... | |
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 bool | affectedByContainerSizeChange () |
virtual bool | affectsSizeChangeContainerChild (Widget *child) |
virtual bool | usesAvailHeight () |
Must be implemengted by a method returning true, when getAvailHeight() is called. More... | |
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. See class comment for details. More... | |
Static Protected Member Functions | |
static int | getSpaceShrinkability (struct Word *word) |
static int | getSpaceStretchability (struct Word *word) |
Static Protected Member Functions inherited from dw::oof::OOFAwareWidget | |
static int | getOOFMIndex (Widget *widget) |
static bool | isOOFContainer (Widget *widget, int oofmIndex) |
Static Protected Attributes | |
static int | penalties [PENALTY_NUM][2] |
static int | stretchabilityFactor = 100 |
Static Protected Attributes inherited from dw::oof::OOFAwareWidget | |
static const char * | OOFM_NAME [NUM_OOFM] |
Private Types | |
enum | { PENALTY_FORCE_BREAK = INT_MIN, PENALTY_PROHIBIT_BREAK = INT_MAX } |
enum | { PENALTY_HYPHEN, PENALTY_EM_DASH_LEFT, PENALTY_EM_DASH_RIGHT, PENALTY_NUM } |
enum | { NUM_DIV_CHARS = 4 } |
Static Private Attributes | |
static DivChar | divChars [NUM_DIV_CHARS] |
static const char * | hyphenDrawChar = "-" |
Friends | |
class | TextblockIterator |
Additional Inherited Members | |
Public Types inherited from dw::oof::OOFAwareWidget | |
enum | { SL_START, SL_BACKGROUND, SL_SC_BOTTOM, SL_IN_FLOW, SL_OOF_REF, SL_OOF_CONT, SL_SC_TOP, SL_END } |
Public Attributes inherited from dw::core::Widget | |
int | parentRef |
This value is defined by the parent widget, and used for incremential resizing. More... | |
Protected Types inherited from dw::oof::OOFAwareWidget | |
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 } |
A Widget for rendering text blocks, i.e. paragraphs or sequences of paragraphs.
dw::Textblock uses the signals defined in dw::core::Layout::LinkReceiver, related to links. The coordinates are always -1.
The idea behind this is that every paragraph has a specific vertical space around and that they are combined to one space, according to rules stated below. A paragraph consists either of the lines between two paragraph breaks within a dw::Textblock, or of a dw::Textblock within a dw::Textblock, in a single line; the latter is used for indented boxes and list items.
The rules:
If a paragraph is following by another, the space between them is the maximum of both box spaces:
are combined like this:
a) If one paragraph is the first paragraph within another, the upper space of these paragraphs collapse. b) The analogue is the case for the last box:
If B and C are put into A, the result is:
For achieving this, there are some features of dw::Textblock:
Consequent breaks are automatically combined, according to rule 1. See the code of dw::Textblock::addParBreak for details.
If a break is added as the first word of the dw::Textblock within another dw::Textblock, collapsing according to rule 2a is done automatically. See the code of dw::Textblock::addParBreak.
Collapsing margins, as defined in the CSS2 specification, are, supported in addition to collapsing spaces. Also, spaces and margins collapse themselves. I. e., the space between two paragraphs is the maximum of the space calculated as described in "Collapsing Spaces" and the space calculated according to the rules for collapsing margins.
(This is an intermediate hybrid state, collapsing spaces are used in the current version of dillo, while I implemented collapsing margins for the CSS prototype and integrated it already into the main trunk. For a pure CSS-based dillo, collapsing spaces will not be needed anymore, and may be removed for simplicity.)
Currently implemented cases:
Open issues:
For similar reasons, backgrounds to not work exactly. Usage of Widget::extraSpace should fix this, but it is only fully working in the GROWS branch (http://flpsed.org/hgweb/dillo_grows).
Update: This needs to be re-evaluated.
There are 4 lists, dw::Textblock::words, dw::Textblock::paragraphs, dw::Textblock::lines, and dw::Textblock::anchors. The word list is quite static; only new words may be added. A word is either text, a widget, or a break.
Lines refer to the word list (first and last). They are completely redundant, i.e., they can be rebuilt from the words. Lines can be rewrapped either completely or partially (see "Incremental Resizing" below). For the latter purpose, several values are accumulated in the lines. See dw::Textblock::Line for details.
A recent change was the introduction of the paragraphs list, which works quite similar, is also redundant, but is used to calculate the extremes, not the size.
Anchors associate the anchor name with the index of the next word at the point of the anchor.
dw::Textblock makes use of incremental resizing as described in Sizes of Dillo Widgets. The parentRef is, for children of a dw::Textblock, simply the number of the line. [Update: Incorrect; see Handling Elements Out Of Flow.]
Generally, there are three cases which may change the size of the widget:
The line break size of the widget has changed, e.g., because the user has changed the size of the browser window. In this case, it is necessary to rewrap all the lines.
A child widget has changed its size. In this case, only a rewrap down from the line where this widget is located is necessary.
(This case is very important for tables. Tables are quite at the bottom, so that a partial rewrap is relevant. Otherwise, tables change their size quite often, so that this is necessary for a fast, non-blocking rendering)
The state of the size calculation is stored in wrapRef within dw::Textblock, which has the value -1 if no rewrapping of lines necessary, or otherwise the line from which a rewrap is necessary.
See
|
private |
This class encapsulates the badness/penalty calculation, and so (i) makes changes (hopefully) simpler, and (ii) hides the integer arithmetic (floating point arithmetic avoided for performance reasons). Unfortunately, the value range of the badness is not well defined, so fiddling with the penalties is a bit difficult.
Enumerator | |
---|---|
PENALTY_FORCE_BREAK | |
PENALTY_PROHIBIT_BREAK |
|
private |
dw::Textblock::Textblock | ( | bool | limitTextWidth | ) |
dw::Textblock::~Textblock | ( | ) |
References DBG_OBJ_DELETE, and dw::Textblock::Anchor::name.
|
protected |
References dw::core::Requisition::ascent, dw::Textblock::Word::badnessAndPenalty, dw::Textblock::BadnessAndPenalty::calcBadness(), DBG_IF_RTFL, DBG_MSG_WORD, DBG_OBJ_ARRATTRSET_SYM, DBG_OBJ_ENTER, DBG_OBJ_LEAVE, DBG_OBJ_MSGF, dw::core::Requisition::descent, lout::misc::StringBuffer::getChars(), dw::Textblock::Word::hyphenWidth, dw::Textblock::BadnessAndPenalty::intoStringBuffer(), lout::misc::max(), dw::Textblock::Word::maxAscent, dw::Textblock::Word::maxDescent, dw::Textblock::Word::origSpace, dw::Textblock::Word::size, dw::Textblock::Word::totalSpaceShrinkability, dw::Textblock::Word::totalSpaceStretchability, dw::Textblock::Word::totalWidth, and dw::core::Requisition::width.
|
protected |
References dw::core::Requisition::ascent, dw::core::style::Font::ascent, dw::Textblock::Line::borderAscent, dw::Textblock::Line::borderDescent, dw::core::style::Box::bottom, dw::core::Content::breakSpace, dw::Textblock::Line::breakSpace, dw::Textblock::Word::content, dw::Textblock::Line::contentAscent, dw::Textblock::Line::contentDescent, DBG_MSG_WORD, DBG_OBJ_ENTER, DBG_OBJ_LEAVE, DBG_OBJ_MSGF, DBG_OBJ_SET_NUM_O, DBG_SET_WORD, dw::core::Requisition::descent, dw::core::style::Font::descent, dw::core::style::StyleAttrs::font, dw::core::Widget::getStyle(), dw::core::style::StyleAttrs::margin, dw::Textblock::Line::marginAscent, dw::Textblock::Line::marginDescent, lout::misc::max(), dw::core::Widget::parentRef, dw::core::WidgetReference::parentRef, dw::Textblock::Word::size, dw::Textblock::Word::style, dw::core::style::Box::top, dw::core::Content::type, dw::core::style::StyleAttrs::valign, dw::core::style::VALIGN_SUB, dw::core::style::VALIGN_SUPER, dw::core::Content::widget, and dw::core::Content::widgetReference.
bool dw::Textblock::addAnchor | ( | const char * | name, |
core::style::Style * | style | ||
) |
Add an anchor to the page. "name" is copied, so no strdup is necessary for the caller.
Return true on success, and false, when this anchor had already been added to the widget tree.
References lout::misc::boolToStr(), DBG_OBJ_ENTER, DBG_OBJ_LEAVE_VAL, dw::Textblock::Anchor::name, and dw::Textblock::Anchor::wordIndex.
Referenced by textTimeout().
void dw::Textblock::addBreakOption | ( | core::style::Style * | style, |
bool | forceBreak | ||
) |
Add a break option (see setBreakOption() for details). Used instead of addSpace for ideographic characters.
When "forceBreak" is true, a break is even possible within PRE etc.
References DBG_OBJ_ENTER, DBG_OBJ_LEAVE, and DBG_SET_WORD.
|
protected |
References dw::Textblock::Line::borderAscent, dw::Textblock::Line::borderDescent, dw::Textblock::Line::breakSpace, dw::Textblock::Line::contentAscent, dw::Textblock::Line::contentDescent, DBG_MSG_WORD, DBG_OBJ_ARRATTRSET_NUM, DBG_OBJ_ENTER, DBG_OBJ_MSGF, DBG_OBJ_SET_NUM, dw::Textblock::Word::effSpace, dw::Textblock::Line::firstWord, dw::Textblock::Line::lastOofRefPositionedBeforeThisLine, dw::Textblock::Line::lastWord, dw::Textblock::Line::leftOffset, dw::Textblock::Line::marginAscent, dw::Textblock::Line::marginDescent, lout::misc::max(), dw::Textblock::Line::maxLineWidth, dw::Textblock::Word::origSpace, dw::Textblock::Line::rightOffset, dw::Textblock::Line::top, and dw::Textblock::Word::totalWidth.
void dw::Textblock::addLinebreak | ( | core::style::Style * | style | ) |
References dw::core::style::Font::ascent, dw::Textblock::Word::badnessAndPenalty, dw::core::Content::breakSpace, dw::Textblock::Word::content, DBG_OBJ_ASSOC_CHILD, DBG_OBJ_ENTER, DBG_OBJ_LEAVE, DBG_SET_WORD, dw::core::style::Font::descent, dw::core::style::StyleAttrs::font, dw::Textblock::BadnessAndPenalty::setPenalty(), and dw::core::Content::type.
Referenced by main(), and textTimeout().
void dw::Textblock::addParbreak | ( | int | space, |
core::style::Style * | style | ||
) |
Cause a paragraph break
References dw::Textblock::Word::badnessAndPenalty, dw::Textblock::Line::borderDescent, dw::core::Content::breakSpace, dw::Textblock::Line::breakSpace, dw::Textblock::Word::content, DBG_OBJ_ASSOC_CHILD, DBG_OBJ_ENTER, DBG_OBJ_LEAVE, DBG_OBJ_MSG, DBG_SET_WORD, dw::core::Widget::getParent(), hasListitemValue, lines, dw::Textblock::Line::marginDescent, lout::misc::max(), mustQueueResize, dw::core::Widget::queueResize(), dw::Textblock::BadnessAndPenalty::setPenalty(), dw::core::Content::type, and words.
Referenced by handOverBreak(), main(), and textTimeout().
void dw::Textblock::addSpace | ( | core::style::Style * | style | ) |
?
References DBG_OBJ_ENTER, DBG_OBJ_LEAVE, and DBG_SET_WORD.
Referenced by addTextToFloatTimeout(), dw::ListItem::initWithText(), dw::ListItem::initWithWidget(), main(), and textTimeout().
void dw::Textblock::addText | ( | const char * | text, |
size_t | len, | ||
core::style::Style * | style | ||
) |
Add a word to the page structure. If it contains dividing characters (hard or soft hyphens, em-dashes, etc.), it is divided.
References DBG_OBJ_ENTER, DBG_OBJ_LEAVE, DBG_SET_WORD, dw::core::style::StyleAttrs::font, dw::Textblock::Word::hyphenWidth, layout, lout::unicode::nextUtf8Char(), PRINTF, PUTCHAR, and dw::Textblock::Word::style.
Referenced by addText(), addTextToFloatTimeout(), dw::ListItem::initWithText(), main(), and textTimeout().
|
inline |
References addText().
|
protected |
Add a word (without hyphens) to the page structure.
References dw::core::Requisition::ascent, dw::Textblock::Word::content, DBG_OBJ_ASSOC_CHILD, DBG_OBJ_ENTER, DBG_OBJ_LEAVE, DBG_SET_WORD, dw::core::Requisition::descent, layout, dw::core::Content::text, dw::core::Content::type, and dw::core::Requisition::width.
void dw::Textblock::addWidget | ( | core::Widget * | widget, |
core::style::Style * | style | ||
) |
Add a widget (word type) to the page.
References dw::oof::OutOfFlowMgr::addWidgetOOF(), dw::core::Requisition::ascent, dw::oof::OutOfFlowMgr::calcWidgetRefSize(), dw::Textblock::Word::content, DBG_OBJ_ENTER, DBG_OBJ_LEAVE, DBG_OBJ_MSG, DBG_OBJ_MSGF, DBG_OBJ_SET_NUM_O, DBG_SET_WORD, dw::core::Requisition::descent, lout::identity::IdentifiableObject::instanceOf(), dw::core::Widget::parentRef, dw::core::Widget::setGenerator(), dw::core::Widget::setParent(), dw::core::Widget::setStyle(), dw::core::Widget::setWidgetReference(), dw::core::Content::type, dw::core::Content::widgetReference, and dw::core::Requisition::width.
Referenced by dw::ListItem::initWithWidget(), main(), and textTimeout().
|
protected |
Add a new word (text, widget etc.) to a page.
References DBG_OBJ_ENTER, DBG_OBJ_LEAVE, and DBG_OBJ_SET_NUM.
|
protected |
|
protected |
Align the line.
References dw::Textblock::Line::alignment, dw::Textblock::Word::content, DBG_OBJ_ENTER, DBG_OBJ_LEAVE, DBG_OBJ_MSG, dw::Textblock::Line::firstWord, dw::Textblock::Line::lastWord, dw::Textblock::Line::leftOffset, dw::Textblock::Line::rightOffset, dw::Textblock::Word::style, dw::core::style::TEXT_ALIGN_CENTER, dw::core::style::TEXT_ALIGN_JUSTIFY, dw::core::style::TEXT_ALIGN_LEFT, dw::core::style::TEXT_ALIGN_RIGHT, dw::core::style::TEXT_ALIGN_STRING, dw::core::style::StyleAttrs::textAlign, dw::Textblock::Word::totalWidth, and dw::core::Content::type.
|
protected |
References DBG_OBJ_ENTER, DBG_OBJ_LEAVE_VAL, DBG_OBJ_MSG, and DBG_OBJ_MSGF.
|
protected |
Called directly after a (line or paragraph) break has been added.
|
protectedvirtual |
Reimplemented from dw::core::Widget.
|
protectedvirtual |
Reimplemented from dw::core::Widget.
|
protected |
References DBG_OBJ_ENTER, DBG_OBJ_LEAVE, DBG_OBJ_MSGF, DBG_OBJ_SET_BOOL, DBG_OBJ_SET_NUM, dw::oof::OutOfFlowMgr::getLeftBorder(), dw::oof::OutOfFlowMgr::getLeftFloatHeight(), dw::oof::OutOfFlowMgr::getRightBorder(), dw::oof::OutOfFlowMgr::getRightFloatHeight(), dw::oof::OutOfFlowMgr::hasFloatLeft(), dw::oof::OutOfFlowMgr::hasFloatRight(), and lout::misc::max().
|
protected |
References DBG_OBJ_ENTER0, DBG_OBJ_LEAVE, and lout::misc::max().
|
protected |
References DBG_OBJ_ENTER, DBG_OBJ_LEAVE_VAL, layout, and lout::misc::max().
|
protected |
|
inlineprotected |
References dw::Textblock::Word::DIV_CHAR_AT_EOL, dw::Textblock::Line::firstWord, dw::Textblock::Word::flags, lout::misc::SimpleVector< T >::getLastRef(), lout::misc::NotSoSimpleVector< T >::getRef(), dw::Textblock::Line::lastWord, dw::Textblock::Word::PERM_DIV_CHAR, and lout::misc::SimpleVector< T >::size().
|
protected |
Calculate the size of a widget, and return whether it has to be positioned at the top of the line.
References lout::misc::boolToStr(), DBG_OBJ_ASSOC_CHILD, DBG_OBJ_ENTER, DBG_OBJ_LEAVE_VAL, DBG_OBJ_MSG, DBG_OBJ_MSGF, dw::core::style::DISPLAY_BLOCK, dw::core::style::DISPLAY_LIST_ITEM, dw::core::style::DISPLAY_TABLE, and lout::misc::min().
|
protected |
References dw::Textblock::Line::alignment, lout::misc::assertNotReached(), DBG_OBJ_ARRATTRSET_NUM, DBG_OBJ_ENTER, DBG_OBJ_LEAVE, DBG_OBJ_MSGF, dw::Textblock::Line::firstWord, dw::Textblock::Line::lastWord, dw::Textblock::Line::leftOffset, dw::Textblock::Line::rightOffset, and dw::Textblock::Line::textOffset.
|
protected |
Calculate the size of a text word.
For "isStart" and "isEnd" see textWidth and drawText.
References dw::core::style::absLengthVal(), dw::core::Requisition::ascent, dw::core::style::Font::ascent, dw::core::Requisition::descent, dw::core::style::Font::descent, dw::core::style::StyleAttrs::font, dw::core::style::isAbsLength(), dw::core::style::LENGTH_AUTO, dw::core::style::StyleAttrs::lineHeight, lout::misc::max(), dw::core::style::multiplyWithPerLengthRounded(), lout::misc::roundInt(), dw::core::style::FontAttrs::size, dw::core::style::StyleAttrs::valign, dw::core::style::VALIGN_SUB, dw::core::style::VALIGN_SUPER, and dw::core::Requisition::width.
|
protected |
References PRINTF, PUTCHAR, and dw::core::Requisition::width.
|
protected |
References DBG_OBJ_ENTER, and DBG_OBJ_LEAVE_VAL.
void dw::Textblock::changeLinkColor | ( | int | link, |
int | newColor | ||
) |
References dw::Textblock::Line::borderAscent, dw::Textblock::Line::borderDescent, dw::core::style::StyleAttrs::color, dw::Textblock::Word::content, dw::Textblock::Line::firstWord, dw::core::Widget::getStyle(), layout, dw::core::style::StyleAttrs::setBorderColor(), dw::core::Widget::setStyle(), dw::Textblock::Word::spaceStyle, dw::Textblock::Word::style, dw::core::Content::type, dw::core::style::Style::unref(), dw::core::Content::widget, and dw::core::style::StyleAttrs::x_link.
void dw::Textblock::changeWordStyle | ( | int | from, |
int | to, | ||
core::style::Style * | style, | ||
bool | includeFirstSpace, | ||
bool | includeLastSpace | ||
) |
|
protected |
|
virtual |
TODO Needed after SRDOP?
Reimplemented from dw::oof::OOFAwareWidget.
References DBG_OBJ_ENTER0, and DBG_OBJ_LEAVE.
|
protected |
Suggest a word to hyphenate, when breaking at breakPos is planned. Return a word index or -1, when hyphenation makes no sense.
References dw::Textblock::Word::badnessAndPenalty, dw::Textblock::BadnessAndPenalty::lineLoose(), and dw::Textblock::BadnessAndPenalty::lineTight().
|
protectedvirtual |
Reimplemented from dw::core::Widget.
References dw::core::Widget::containerSizeChanged(), dw::Textblock::Word::content, DBG_OBJ_ENTER0, DBG_OBJ_LEAVE, dw::core::Content::type, and dw::core::Content::widget.
|
protected |
Called when something changed for the last word (space, hyphens etc.).
References dw::Textblock::Word::badnessAndPenalty, dw::Textblock::Word::flags, dw::Textblock::BadnessAndPenalty::lineCanBeBroken(), dw::Textblock::Paragraph::parAdjustmentWidth, dw::Textblock::Paragraph::parMin, dw::Textblock::Paragraph::parMinIntrinsic, and PRINTF.
|
protected |
References dw::core::style::Font::ascent, dw::core::style::StyleAttrs::color, dw::core::style::Font::descent, dw::core::View::drawRectangle(), dw::core::style::StyleAttrs::font, dw::core::style::TEXT_DECORATION_LINE_THROUGH, dw::core::style::TEXT_DECORATION_OVERLINE, dw::core::style::TEXT_DECORATION_UNDERLINE, dw::core::style::StyleAttrs::textDecoration, and dw::core::style::Font::xHeight.
|
protectedvirtual |
Reimplemented from dw::oof::OOFAwareWidget.
References dw::Textblock::Word::content, DBG_OBJ_ENTER, DBG_OBJ_LEAVE, DBG_OBJ_MSGF, dw::core::Widget::drawInterruption(), dw::core::Rectangle::height, dw::core::Content::type, dw::core::WidgetReference::widget, dw::core::Content::widget, dw::core::Content::widgetReference, dw::core::Rectangle::width, dw::core::Rectangle::x, and dw::core::Rectangle::y.
|
protected |
References dw::Textblock::Line::borderAscent, dw::Textblock::Line::borderDescent, dw::Textblock::Word::content, DBG_MSG_WORD, DBG_OBJ_ENTER, DBG_OBJ_LEAVE, DBG_OBJ_MSG_END, DBG_OBJ_MSG_START, DBG_OBJ_MSGF, dw::core::Widget::draw(), dw::Textblock::Word::effSpace, dw::Textblock::Line::firstWord, dw::core::style::StyleAttrs::hasBackground(), dw::core::Rectangle::height, dw::Textblock::Word::hyphenWidth, dw::core::Widget::intersects(), dw::Textblock::Line::lastWord, dw::Textblock::Word::size, dw::Textblock::Word::spaceStyle, dw::Textblock::Word::style, dw::Textblock::Line::textOffset, dw::core::Content::type, dw::core::Content::widget, dw::core::Rectangle::width, dw::core::Requisition::width, dw::core::Rectangle::x, and dw::core::Rectangle::y.
|
protected |
References dw::core::style::Font::ascent, dw::core::style::StyleAttrs::backgroundColor, dw::core::style::Font::descent, dw::core::View::drawRectangle(), dw::Textblock::Word::effSpace, dw::core::style::StyleAttrs::font, dw::core::HIGHLIGHT_NUM_LAYERS, dw::Textblock::Word::spaceStyle, dw::core::style::StyleAttrs::textDecoration, dw::core::style::StyleAttrs::valign, dw::core::style::VALIGN_SUB, and dw::core::style::VALIGN_SUPER.
|
protected |
References dw::core::style::StyleAttrs::color, dw::core::View::drawText(), dw::core::style::StyleAttrs::font, layout, dw::core::style::TEXT_TRANSFORM_CAPITALIZE, dw::core::style::TEXT_TRANSFORM_LOWERCASE, dw::core::style::TEXT_TRANSFORM_NONE, dw::core::style::TEXT_TRANSFORM_UPPERCASE, and dw::core::style::StyleAttrs::textTransform.
|
protected |
Draw a word of text.
Since hyphenated words consist of multiple instance of dw::Textblock::Word, which should be drawn as a whole (to preserve kerning etc.; see Changes in Line-Breaking and Hyphenation), two indices are passed. See also drawLine(), where drawWord() is called.
References dw::Textblock::Line::borderAscent, dw::Textblock::Line::borderDescent, dw::Textblock::Word::content, dw::core::style::StyleAttrs::hasBackground(), dw::Textblock::Line::lastWord, dw::Textblock::Word::size, dw::core::Content::text, and dw::core::Requisition::width.
|
protected |
TODO Comment
References dw::core::style::Font::ascent, dw::core::style::StyleAttrs::backgroundColor, dw::core::style::Font::descent, dw::core::View::drawRectangle(), dw::core::style::StyleAttrs::font, dw::core::HIGHLIGHT_NUM_LAYERS, lout::misc::min(), dw::core::style::StyleAttrs::textDecoration, dw::core::style::StyleAttrs::valign, dw::core::style::VALIGN_SUB, and dw::core::style::VALIGN_SUPER.
|
protectedvirtual |
Reimplemented from dw::core::Widget.
|
protected |
Counter part to rewrap(), but for extremes, not size calculation.
References DBG_OBJ_ENTER0, DBG_OBJ_LEAVE, DBG_OBJ_MSGF, DBG_OBJ_SET_NUM, lout::misc::max(), and lout::misc::min().
|
protected |
References dw::Textblock::Word::content, DBG_OBJ_ENTER, DBG_OBJ_LEAVE, DBG_OBJ_MSGF, dw::Textblock::Word::effSpace, dw::core::style::StyleAttrs::font, dw::Textblock::Word::origSpace, dw::core::style::Style::ref(), dw::core::Content::space, dw::Textblock::Word::spaceStyle, dw::core::style::Font::spaceWidth, dw::core::Content::type, dw::core::style::Style::unref(), dw::core::style::WHITE_SPACE_NORMAL, dw::core::style::WHITE_SPACE_NOWRAP, dw::core::style::WHITE_SPACE_PRE, dw::core::style::WHITE_SPACE_PRE_LINE, dw::core::style::WHITE_SPACE_PRE_WRAP, dw::core::style::StyleAttrs::whiteSpace, and dw::core::style::StyleAttrs::wordSpacing.
|
protected |
References dw::core::Requisition::ascent, dw::Textblock::Word::badnessAndPenalty, dw::Textblock::Word::content, DBG_SET_WORD_SIZE, dw::core::Requisition::descent, dw::Textblock::Word::effSpace, dw::Textblock::Word::flags, dw::Textblock::Word::hyphenWidth, dw::Textblock::Word::origSpace, dw::core::style::Style::ref(), dw::Textblock::BadnessAndPenalty::setPenalty(), dw::Textblock::Word::size, dw::core::Content::space, dw::Textblock::Word::spaceStyle, dw::Textblock::Word::style, and dw::core::Requisition::width.
|
protected |
Find the first line index that includes y, which is given in widget coordinates.
|
protected |
References dw::core::Allocation::ascent, DBG_OBJ_ENTER, and DBG_OBJ_LEAVE_VAL.
|
protected |
|
protected |
|
protected |
Find the line of word wordIndex.
Referenced by dw::Textblock::TextblockIterator::getAllocation().
|
protected |
Find the paragraph of word wordIndex.
|
protected |
Referenced by findSizeRequestReference().
|
inlineprotected |
References findSizeRequestReference(), and dw::oof::OOFAwareWidget::oofContainer.
|
protected |
Find the index of the word, or -1.
References dw::core::Requisition::ascent, dw::core::style::Font::ascent, dw::Textblock::Line::borderAscent, dw::Textblock::Line::borderDescent, dw::Textblock::Word::effSpace, dw::Textblock::Line::firstWord, dw::core::style::StyleAttrs::font, dw::Textblock::Word::size, dw::Textblock::Word::spaceStyle, dw::Textblock::Line::textOffset, and dw::core::Requisition::width.
void dw::Textblock::flush | ( | ) |
References DBG_OBJ_ENTER0, DBG_OBJ_LEAVE, and DBG_OBJ_MSG.
Referenced by addTextToFloatTimeout(), main(), and textTimeout().
|
protectedvirtual |
Reimplemented from dw::core::Widget.
Referenced by dw::SimpleTableCell::getAvailHeightOfChild(), and dw::AlignedTableCell::getAvailHeightOfChild().
|
protectedvirtual |
Reimplemented from dw::core::Widget.
References DBG_OBJ_ENTER, DBG_OBJ_LEAVE_VAL, DBG_OBJ_MSG, dw::core::style::LENGTH_AUTO, lout::misc::max(), dw::core::Extremes::maxWidth, and dw::tablecell::usesMaxGeneratorWidth().
Referenced by dw::SimpleTableCell::getAvailWidthOfChild(), and dw::AlignedTableCell::getAvailWidthOfChild().
|
protectedvirtual |
See Sizes of Dillo Widgets (or Size requisitions depending on positions).
Reimplemented from dw::core::Widget.
|
protectedvirtual |
Simple variant, to be implemented by widgets with extremes not depending on positions.
Reimplemented from dw::core::Widget.
References dw::core::Extremes::adjustmentWidth, DBG_OBJ_ENTER0, DBG_OBJ_LEAVE, DBG_OBJ_MSGF, DBG_OBJ_SET_NUM, dw::Textblock::Paragraph::maxParAdjustmentWidth, dw::Textblock::Paragraph::maxParMax, dw::Textblock::Paragraph::maxParMaxIntrinsic, dw::Textblock::Paragraph::maxParMin, dw::Textblock::Paragraph::maxParMinIntrinsic, dw::core::Extremes::maxWidth, dw::core::Extremes::maxWidthIntrinsic, dw::core::Extremes::minWidth, and dw::core::Extremes::minWidthIntrinsic.
|
protected |
References lout::misc::assertNotReached(), DBG_OBJ_ENTER, and DBG_OBJ_LEAVE_VAL.
|
virtual |
Return width including margin/border/padding Called by OOFFloatsMgr to position floats.
In somce cases (as in dw::Textblock::getGeneratorRest), the value is not up to date; for this, the caller may pass its position relative to this widget, as well as its width, which are used for adjustments. (See comment in dw::Textblock::getGeneratorRest.)
Reimplemented from dw::oof::OOFAwareWidget.
References DBG_OBJ_ENTER, DBG_OBJ_LEAVE_VAL, lout::misc::max(), lout::misc::min(), and dw::tablecell::usesMaxGeneratorWidth().
|
virtual |
Return position relative to container, not regarding margin/border/padding, Called by OOFFloatsMgr to position floats.
Reimplemented from dw::oof::OOFAwareWidget.
References lout::misc::assertNotReached(), DBG_OBJ_ENTER, and DBG_OBJ_LEAVE_VAL.
|
virtual |
Return position relative to container, not regarding margin/border/padding, Called by OOFFloatsMgr to position floats.
Reimplemented from dw::oof::OOFAwareWidget.
References lout::misc::assertNotReached(), DBG_OBJ_ENTER, and DBG_OBJ_LEAVE_VAL.
|
protected |
|
protected |
|
virtual |
Reimplemented from dw::oof::OOFAwareWidget.
References DBG_OBJ_ENTER0, and DBG_OBJ_LEAVE_VAL.
|
staticprotected |
|
staticprotected |
|
protectedvirtual |
Reimplemented from dw::oof::OOFAwareWidget.
References dw::Textblock::Word::content, DBG_OBJ_ENTER, DBG_OBJ_LEAVE_VAL, dw::Textblock::Line::firstWord, dw::core::Widget::getWidgetAtPoint(), dw::core::Widget::getWidgetAtPointInterrupted(), dw::Textblock::Line::lastWord, dw::core::Content::type, dw::core::WidgetReference::widget, dw::core::Content::widget, and dw::core::Content::widgetReference.
|
protected |
References dw::Textblock::Line::firstWord, and dw::Textblock::Line::lastWord.
Referenced by mustBorderBeRegarded().
|
protected |
|
protected |
|
protected |
Get the extremes of a word within a textblock.
References dw::core::Extremes::adjustmentWidth, dw::Textblock::Word::content, dw::core::Widget::getExtremes(), dw::core::Extremes::maxWidth, dw::core::Extremes::maxWidthIntrinsic, dw::core::Extremes::minWidth, dw::core::Extremes::minWidthIntrinsic, dw::Textblock::Word::size, dw::core::Content::type, dw::core::Content::widget, and dw::core::Requisition::width.
|
protected |
Counter part to wordWrap(), but for extremes, not size calculation.
References dw::core::Extremes::adjustmentWidth, dw::Textblock::Word::badnessAndPenalty, DBG_MSG_WORD, DBG_OBJ_ARRATTRSET_NUM, DBG_OBJ_ENTER, DBG_OBJ_LEAVE, DBG_OBJ_MSGF, DBG_OBJ_SET_NUM, dw::Textblock::Paragraph::firstWord, dw::Textblock::Word::flags, dw::Textblock::Word::hyphenWidth, dw::Textblock::Paragraph::lastWord, dw::Textblock::BadnessAndPenalty::lineCanBeBroken(), lout::misc::max(), dw::Textblock::Paragraph::maxParAdjustmentWidth, dw::Textblock::Paragraph::maxParMax, dw::Textblock::Paragraph::maxParMaxIntrinsic, dw::Textblock::Paragraph::maxParMin, dw::Textblock::Paragraph::maxParMinIntrinsic, dw::core::Extremes::maxWidth, dw::core::Extremes::maxWidthIntrinsic, dw::core::Extremes::minWidth, dw::core::Extremes::minWidthIntrinsic, dw::Textblock::Word::origSpace, dw::Textblock::Paragraph::parAdjustmentWidth, dw::Textblock::Paragraph::parMax, dw::Textblock::Paragraph::parMaxIntrinsic, dw::Textblock::Paragraph::parMin, and dw::Textblock::Paragraph::parMinIntrinsic.
void dw::Textblock::handOverBreak | ( | core::style::Style * | style | ) |
This function "hands" the last break of a page "over" to a parent page. This is used for "collapsing spaces".
References addParbreak(), dw::Textblock::Line::breakSpace, and dw::core::style::DISPLAY_BLOCK.
|
protected |
References dw::Textblock::Word::badnessAndPenalty, dw::Textblock::Word::content, DBG_IF_RTFL, DBG_SET_WORD, dw::Textblock::Word::flags, dw::core::style::StyleAttrs::font, dw::Hyphenator::hyphenateWord(), dw::Textblock::Word::hyphenWidth, layout, PRINTF, dw::Textblock::BadnessAndPenalty::setPenalties(), dw::core::Content::space, dw::Textblock::Word::spaceStyle, dw::Textblock::Word::style, dw::core::Content::text, dw::core::Content::type, dw::core::style::Style::unref(), dw::Textblock::Anchor::wordIndex, and dw::core::style::StyleAttrs::x_lang.
|
protected |
References dw::core::style::absLengthVal(), dw::Textblock::Word::content, dw::core::Widget::isBlockLevel(), dw::core::style::isPerLength(), dw::core::style::multiplyWithPerLengthRounded(), dw::Textblock::Word::size, dw::core::Content::type, dw::core::Content::widget, and dw::core::Requisition::width.
|
protected |
References DBG_OBJ_ENTER0, DBG_OBJ_LEAVE, and DBG_OBJ_SET_NUM.
|
protected |
Basic initialization, which is neccessary before fillWord.
References dw::Textblock::Word::spaceImgRenderer, dw::Textblock::Word::spaceStyle, dw::Textblock::Word::style, and dw::Textblock::Word::wordImgRenderer.
|
protectedvirtual |
Reimplemented from dw::core::Widget.
|
protected |
References lout::misc::assertNotReached(), dw::core::style::WHITE_SPACE_NORMAL, dw::core::style::WHITE_SPACE_NOWRAP, dw::core::style::WHITE_SPACE_PRE, dw::core::style::WHITE_SPACE_PRE_LINE, dw::core::style::WHITE_SPACE_PRE_WRAP, and dw::core::style::StyleAttrs::whiteSpace.
Referenced by isBreakAllowedInWord().
|
inlineprotected |
References isBreakAllowed(), and dw::Textblock::Word::style.
|
protected |
|
virtual |
Reimplemented from dw::oof::OOFAwareWidget.
|
virtual |
Reimplemented from dw::oof::OOFAwareWidget.
|
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.
Implements dw::core::Widget.
|
protected |
|
protectedvirtual |
Reimplemented from dw::core::Widget.
References layout, and dw::core::style::Tooltip::onLeave().
|
inlineprotected |
References lineYOffsetWidget(), and dw::core::Allocation::y.
Referenced by dw::Textblock::TextblockIterator::getAllocation(), and lineYOffsetCanvas().
|
inlineprotected |
References dw::core::Widget::allocation, and lineYOffsetCanvas().
|
inlineprotected |
References lout::misc::SimpleVector< T >::getRef(), and lineYOffsetCanvas().
|
inlineprotected |
References dw::core::Allocation::ascent, dw::Textblock::Line::borderAscent, lout::misc::SimpleVector< T >::getRef(), and dw::Textblock::Line::top.
Referenced by lineYOffsetCanvas(), and lineYOffsetWidget().
|
inlineprotected |
References dw::core::Widget::allocation, and lineYOffsetWidget().
|
inlineprotected |
References lout::misc::SimpleVector< T >::getRef(), and lineYOffsetWidget().
|
inlineprotected |
|
protectedvirtual |
Reimplemented from dw::core::Widget.
References DBG_OBJ_ENTER, DBG_OBJ_LEAVE, DBG_OBJ_SET_NUM, and lout::misc::min().
|
protectedvirtual |
Reimplemented from dw::core::Widget.
References DBG_OBJ_ENTER, DBG_OBJ_LEAVE, DBG_OBJ_SET_NUM, and lout::misc::min().
|
protectedvirtual |
Reimplemented from dw::core::Widget.
References dw::core::BUTTON1_MASK, dw::core::style::StyleAttrs::cursor, hoverTooltip, layout, dw::core::style::Tooltip::onEnter(), dw::core::style::Tooltip::onLeave(), dw::core::style::Tooltip::onMotion(), dw::Textblock::Word::spaceStyle, dw::core::MouseEvent::state, dw::Textblock::Word::style, dw::core::style::StyleAttrs::x_link, dw::core::style::StyleAttrs::x_tooltip, dw::core::MousePositionEvent::xWidget, and dw::core::MousePositionEvent::yWidget.
|
protected |
|
inlinestatic |
|
inlineprotected |
Of nested text blocks, only the most inner one must regard the borders of floats.
References getWidgetRegardingBorderForLine().
Referenced by dw::Textblock::TextblockIterator::getAllocation().
|
inlineprotected |
References getWidgetRegardingBorderForLine().
|
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::oof::OOFAwareWidget.
References DBG_OBJ_SET_NUM.
|
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::oof::OOFAwareWidget.
References DBG_OBJ_ARRSET_PTR, and DBG_OBJ_SET_NUM.
|
protectedvirtual |
See Sizes of Dillo Widgets (or Size requisitions depending on positions).
Reimplemented from dw::core::Widget.
|
protectedvirtual |
See Sizes of Dillo Widgets (or Size requisitions depending on positions).
Reimplemented from dw::core::Widget.
|
virtual |
Called by an implementation of dw::oof::OutOfFlowMgr when the size of the container has changed, typically in sizeAllocateEnd.
Reimplemented from dw::oof::OOFAwareWidget.
References DBG_OBJ_ENTER, DBG_OBJ_LEAVE, and dw::tablecell::usesMaxGeneratorWidth().
|
protected |
References DBG_MSG_WORD, DBG_OBJ_ENTER, DBG_OBJ_LEAVE, DBG_OBJ_MSG, DBG_OBJ_MSG_END, DBG_OBJ_MSG_START, DBG_OBJ_MSGF, and DBG_OBJ_SET_NUM.
|
protected |
|
protected |
|
protected |
References DBG_OBJ_ENTER0, DBG_OBJ_LEAVE, and DBG_OBJ_SET_NUM.
|
protected |
|
protectedvirtual |
Called after sizeAllocateImpl() to redraw necessary areas. By default the whole widget is redrawn.
Reimplemented from dw::core::Widget.
References DBG_OBJ_ENTER0, DBG_OBJ_LEAVE, DBG_OBJ_SET_NUM, and dw::Textblock::Line::lastWord.
|
protected |
Rewrap the page from the line from which this is necessary. There are basically two times we'll want to do this: either when the viewport is resized, or when the size changes on one of the child widgets.
References dw::oof::OutOfFlowMgr::calcWidgetRefSize(), dw::Textblock::Word::content, DBG_OBJ_ENTER0, DBG_OBJ_LEAVE, DBG_OBJ_MSG, DBG_OBJ_MSGF, DBG_OBJ_SET_NUM, DBG_SET_WORD_SIZE, dw::Textblock::Line::lastWord, lout::misc::min(), dw::Textblock::Word::size, dw::core::Content::type, dw::core::WidgetReference::widget, dw::core::Content::widget, and dw::core::Content::widgetReference.
|
protected |
|
protected |
References dw::Textblock::Word::badnessAndPenalty, dw::Textblock::BadnessAndPenalty::compareTo(), DBG_IF_RTFL, DBG_MSG_WORD, DBG_OBJ_ENTER, DBG_OBJ_LEAVE, DBG_OBJ_MSG_END, DBG_OBJ_MSG_START, DBG_OBJ_MSGF, lout::misc::StringBuffer::getChars(), dw::Textblock::BadnessAndPenalty::intoStringBuffer(), and dw::Textblock::BadnessAndPenalty::setPenalty().
|
protected |
Send event to selection.
References dw::core::Requisition::ascent, dw::core::style::Font::ascent, lout::misc::boolToStr(), dw::Textblock::Line::borderAscent, dw::Textblock::Line::borderDescent, dw::Textblock::Word::content, DBG_MSG_WORD, DBG_OBJ_ENTER0, DBG_OBJ_LEAVE_VAL, DBG_OBJ_MSGF, dw::core::Requisition::descent, dw::core::style::Font::descent, dw::Textblock::Word::effSpace, dw::Textblock::Line::firstWord, dw::Textblock::Word::flags, dw::core::style::StyleAttrs::font, dw::Textblock::Line::lastWord, layout, dw::Textblock::Word::size, dw::Textblock::Word::spaceStyle, dw::Textblock::Word::style, dw::core::Content::text, dw::Textblock::Line::textOffset, dw::core::Content::type, dw::core::Iterator::unref(), dw::core::Requisition::width, dw::core::style::StyleAttrs::x_link, dw::core::MousePositionEvent::xWidget, dw::core::MousePositionEvent::yCanvas, and dw::core::MousePositionEvent::yWidget.
|
protected |
Set a break option, if allowed by the style. Called by fillSpace (and so addSpace), but may be called, via addBreakOption(), as an alternative, e. g. for ideographic characters.
References dw::Textblock::Word::badnessAndPenalty, DBG_OBJ_ENTER, DBG_OBJ_LEAVE, dw::Textblock::BadnessAndPenalty::lineMustBeBroken(), dw::Textblock::BadnessAndPenalty::setPenalties(), and dw::Textblock::BadnessAndPenalty::setPenalty().
|
static |
|
static |
|
static |
|
static |
|
static |
|
protected |
|
static |
|
protected |
|
protected |
References DBG_OBJ_ENTER0, DBG_OBJ_LEAVE, and DBG_OBJ_MSGF.
|
protectedvirtual |
Reimplemented from dw::core::Widget.
References dw::core::Allocation::ascent, dw::core::Requisition::ascent, dw::Textblock::Line::borderAscent, dw::Textblock::Word::content, DBG_MSG_WORD, DBG_OBJ_ENTER, DBG_OBJ_LEAVE, DBG_OBJ_MSG_END, DBG_OBJ_MSG_START, DBG_OBJ_MSGF, DBG_OBJ_SET_NUM, dw::core::Allocation::descent, dw::core::Requisition::descent, dw::Textblock::Word::effSpace, dw::Textblock::Line::firstWord, dw::core::Widget::getAllocation(), dw::Textblock::Line::lastWord, lout::misc::min(), dw::Textblock::Anchor::name, dw::Textblock::Word::size, dw::core::Widget::sizeAllocate(), dw::Textblock::Line::textOffset, dw::core::Content::type, dw::core::Widget::wasAllocated(), dw::core::Content::widget, dw::core::Allocation::width, dw::core::Requisition::width, dw::Textblock::Anchor::wordIndex, dw::core::Allocation::x, and dw::core::Allocation::y.
|
protected |
The ascent of a textblock is the ascent of the first line, plus padding/border/margin. This can be used to align the first lines of several textblocks in a horizontal line.
References dw::core::Requisition::ascent, dw::Textblock::Line::borderAscent, DBG_IF_RTFL, DBG_OBJ_ENTER, DBG_OBJ_LEAVE, DBG_OBJ_MSG, DBG_OBJ_MSG_END, DBG_OBJ_MSG_START, DBG_OBJ_MSGF, DBG_OBJ_SET_NUM, dw::core::Requisition::descent, dw::Textblock::Line::marginAscent, dw::core::splitHeightPreserveAscent(), dw::tablecell::usesMaxGeneratorWidth(), and dw::core::Requisition::width.
|
protectedvirtual |
See Sizes of Dillo Widgets (or Size requisitions depending on positions).
Reimplemented from dw::core::Widget.
|
protected |
References dw::core::style::StyleAttrs::font, layout, dw::core::style::TEXT_TRANSFORM_CAPITALIZE, dw::core::style::TEXT_TRANSFORM_LOWERCASE, dw::core::style::TEXT_TRANSFORM_NONE, dw::core::style::TEXT_TRANSFORM_UPPERCASE, and dw::core::style::StyleAttrs::textTransform.
Referenced by dw::Textblock::TextblockIterator::getAllocation().
|
virtual |
...
Reimplemented from dw::oof::OOFAwareWidget.
|
protectedvirtual |
Must be implemengted by a method returning true, when getAvailWidth() is called.
Reimplemented from dw::core::Widget.
|
virtual |
Reimplemented from dw::oof::OOFAwareWidget.
References lout::misc::boolToStr(), DBG_OBJ_ENTER0, DBG_OBJ_LEAVE_VAL, and dw::core::style::DISPLAY_BLOCK.
|
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 from dw::oof::OOFAwareWidget.
|
protectedvirtual |
Reimplemented in dw::AlignedTableCell.
References dw::Textblock::Word::content, DBG_MSG_WORD, DBG_OBJ_ENTER, DBG_OBJ_LEAVE, DBG_OBJ_MSGF, dw::Textblock::Word::effSpace, dw::Textblock::Word::origSpace, and dw::core::Content::type.
Referenced by dw::AlignedTableCell::wordWrap().
|
protected |
References dw::Textblock::Word::badnessAndPenalty, lout::misc::boolToStr(), dw::Textblock::Word::content, DBG_MSG_WORD, DBG_OBJ_ENTER, DBG_OBJ_LEAVE, DBG_OBJ_MSG, DBG_OBJ_MSG_END, DBG_OBJ_MSG_START, DBG_OBJ_MSGF, DBG_OBJ_SET_NUM_O, dw::Textblock::BadnessAndPenalty::lineMustBeBroken(), dw::Textblock::BadnessAndPenalty::lineTooTight(), lout::misc::max(), dw::oof::OutOfFlowMgr::mayAffectBordersAtAll(), lout::misc::min(), dw::core::Widget::parentRef, PRINTF, dw::oof::OutOfFlowMgr::tellIncompletePosition1(), dw::oof::OutOfFlowMgr::tellPosition1(), dw::core::Content::type, dw::core::WidgetReference::widget, dw::core::Content::widget, and dw::core::Content::widgetReference.
|
protected |
References dw::Textblock::Word::content, DBG_OBJ_ENTER, DBG_OBJ_LEAVE, DBG_OBJ_MSGF, DBG_SET_WORD, dw::oof::OutOfFlowMgr::mayAffectBordersAtAll(), dw::core::WidgetReference::parentRef, dw::oof::OutOfFlowMgr::tellIncompletePosition1(), dw::oof::OutOfFlowMgr::tellPosition1(), dw::core::Content::type, dw::core::WidgetReference::widget, and dw::core::Content::widgetReference.
|
protected |
Includes margin, border, and padding. Can be used without allocation.
References dw::Textblock::Line::borderAscent, DBG_OBJ_ENTER0, DBG_OBJ_LEAVE_VAL, dw::Textblock::Line::marginAscent, and dw::Textblock::Line::top.
|
protected |
Includes margin, border, and padding.
References dw::Textblock::Line::borderAscent, DBG_OBJ_ENTER0, DBG_OBJ_LEAVE_VAL, and dw::Textblock::Line::marginAscent.
Referenced by dw::Textblock::TextblockIterator::getAllocation().
|
friend |
|
protected |
|
static |
|
staticprivate |
|
protected |
Referenced by addParbreak(), dw::ListItem::initWithText(), and dw::ListItem::initWithWidget().
struct { ... } dw::Textblock::hlEnd[core::HIGHLIGHT_NUM_LAYERS] |
struct { ... } dw::Textblock::hlStart[core::HIGHLIGHT_NUM_LAYERS] |
|
protected |
|
staticprivate |
The character which is used to draw a hyphen at the end of a line, either caused by automatic hyphenation, or by soft hyphens.
Initially, soft hyphens were used, but they are not drawn on some platforms. Also, unconditional hyphens (U+2010) are not available in many fonts; so, a simple hyphen-minus is used.
|
protected |
int dw::Textblock::index |
|
protected |
|
protected |
Referenced by dw::Textblock::TextblockIterator::getAllocation(), and dw::ListItem::setMaxValue().
|
protected |
|
protected |
Referenced by dw::ListItem::setMaxValue(), and dw::AlignedTableCell::setMaxValue().
|
protected |
Referenced by dw::Textblock::TextblockIterator::getAllocation().
|
protected |
|
protected |
Referenced by addParbreak(), and dw::Textblock::TextblockIterator::getAllocation().
|
protected |
Referenced by addParbreak().
int dw::Textblock::nChar |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
Referenced by dw::Textblock::TextblockIterator::getAllocation().
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
staticprotected |
The penalties for hyphens and other, multiplied by 100. So, 100 means 1.0. INT_MAX and INT_MIN are also allowed. See dw::Textblock::BadnessAndPenalty::setPenalty for more details. Set from preferences.
|
protected |
Referenced by dw::ListItem::setMaxValue().
|
protected |
|
staticprotected |
...
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |