Dillo
|
A Widget for rendering tables. More...
#include <table.hh>
Classes | |
struct | Child |
class | TableIterator |
Public Member Functions | |
Table (bool limitTextWidth) | |
~Table () | |
int | applyPerWidth (int containerWidth, core::style::Length perWidth) |
int | applyPerHeight (int containerHeight, core::style::Length perHeight) |
core::Iterator * | iterator (core::Content::Type mask, bool atEnd) |
Return an iterator for this widget. More... | |
void | addCell (Widget *widget, int colspan, int rowspan) |
void | addRow (core::style::Style *style) |
AlignedTableCell * | getCellRef () |
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) |
virtual void | updateReference (int ref) |
virtual void | widgetRefSizeChanged (int externalIndex) |
virtual void | clearPositionChanged () |
virtual void | oofSizeChanged (bool extremesChanged) |
virtual int | getGeneratorX (int oofmIndex) |
virtual int | getGeneratorY (int oofmIndex) |
virtual int | getGeneratorWidth (int callerX, int callerWidth) |
virtual int | getMaxGeneratorWidth () |
virtual bool | usesMaxGeneratorWidth () |
virtual bool | isPossibleOOFContainer (int oofmIndex) |
virtual bool | isPossibleOOFContainerParent (int oofmIndex) |
Public Member Functions inherited from dw::core::Widget | |
void | setDeleteCallback (DW_Callback_t func, void *data) |
Widget () | |
~Widget () | |
bool | resizeQueued () |
bool | extremesQueued () |
bool | needsResize () |
bool | needsAllocate () |
bool | allocateQueued () |
bool | extremesChanged () |
bool | wasAllocated () |
void | setParent (Widget *parent) |
void | setQuasiParent (Widget *quasiParent) |
void | setGenerator (Widget *generator) |
style::Style * | getStyle () |
Allocation * | getAllocation () |
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). More... | |
virtual Widget * | sizeRequestReference (int index) |
See Sizes of Dillo Widgets (or Size requisitions depending on positions). More... | |
virtual int | numGetExtremesReferences () |
See Sizes of Dillo Widgets (or Size requisitions depending on positions). More... | |
virtual Widget * | getExtremesReference (int index) |
See Sizes of Dillo Widgets (or Size requisitions depending on positions). More... | |
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) |
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) |
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 Attributes | |
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 | sizeRequestSimpl (core::Requisition *requisition) |
Simple variant, to be implemented by widgets with sizes not depending on positions. More... | |
void | getExtremesSimpl (core::Extremes *extremes) |
Simple variant, to be implemented by widgets with extremes not depending on positions. More... | |
void | sizeAllocateImpl (core::Allocation *allocation) |
See Sizes of Dillo Widgets. More... | |
void | resizeDrawImpl () |
Called after sizeAllocateImpl() to redraw necessary areas. By default the whole widget is redrawn. More... | |
bool | getAdjustMinWidth () |
int | getAvailWidthOfChild (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... | |
bool | isBlockLevel () |
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 | removeChild (Widget *child) |
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 | 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 | 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 | 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 | markSizeChange (int ref) |
See Sizes of Dillo Widgets. More... | |
virtual void | markExtremesChange (int ref) |
See Sizes of Dillo Widgets. More... | |
virtual int | getAvailWidthOfChild (Widget *child, bool forceValue) |
virtual int | getAvailHeightOfChild (Widget *child, bool forceValue) |
virtual void | correctRequisitionOfChild (Widget *child, Requisition *requisition, void(*splitHeightFun)(int, int *, int *), bool allowDecreaseWidth, bool allowDecreaseHeight) |
void | correctReqWidthOfChild (Widget *child, Requisition *requisition, bool allowDecreaseWidth) |
void | correctReqHeightOfChild (Widget *child, Requisition *requisition, void(*splitHeightFun)(int, int *, int *), bool allowDecreaseHeight) |
virtual void | correctExtremesOfChild (Widget *child, Extremes *extremes, bool useAdjustmentWidth) |
virtual bool | affectedByContainerSizeChange () |
virtual bool | affectsSizeChangeContainerChild (Widget *child) |
virtual bool | usesAvailHeight () |
Must be implemengted by a method returning true, when getAvailHeight() is called. More... | |
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. See class comment for details. More... | |
Private Types | |
enum | ExtrMod { MIN, MIN_INTR, MIN_MIN, MAX_MIN, MAX, MAX_INTR, DATA } |
Private Member Functions | |
const char * | getExtrModName (ExtrMod mod) |
int | getExtreme (core::Extremes *extremes, ExtrMod mod) |
void | setExtreme (core::Extremes *extremes, ExtrMod mod, int value) |
int | getColExtreme (int col, ExtrMod mod, void *data) |
void | setColExtreme (int col, ExtrMod mod, void *data, int value) |
bool | childDefined (int n) |
int | calcAvailWidthForDescendant (Widget *child) |
void | reallocChildren (int newNumCols, int newNumRows) |
void | calcCellSizes (bool calcHeights) |
void | forceCalcCellSizes (bool calcHeights) |
void | actuallyCalcCellSizes (bool calcHeights) |
void | apportionRowSpan () |
void | forceCalcColumnExtremes () |
Fills dw::Table::colExtremes in all cases. More... | |
void | calcExtremesSpanMultiCols (int col, int cs, core::Extremes *cellExtremes, ExtrMod minExtrMod, ExtrMod maxExtrMod, void *extrData) |
void | calcAdjustmentWidthSpanMultiCols (int col, int cs, core::Extremes *cellExtremes) |
void | apportion2 (int totalWidth, int firstCol, int lastCol, ExtrMod minExtrMod, ExtrMod maxExtrMod, void *extrData, lout::misc::SimpleVector< int > *dest, int destOffset) |
Actual apportionment function. More... | |
void | setCumHeight (int row, int value) |
Private Attributes | |
bool | limitTextWidth |
bool | rowClosed |
int | numRows |
int | numCols |
int | curRow |
int | curCol |
lout::misc::SimpleVector < Child * > * | children |
int | redrawX |
int | redrawY |
lout::misc::SimpleVector < core::Extremes > * | colExtremes |
The extremes of all columns. More... | |
lout::misc::SimpleVector< bool > * | colWidthSpecified |
Wether the column itself (in the future?) or at least one cell in this column or spanning over this column has CSS 'width' specified. More... | |
int | numColWidthSpecified |
lout::misc::SimpleVector< bool > * | colWidthPercentage |
Wether the column itself (in the future?) or at least one cell in this column or spanning over this column has CSS 'width' specified as percentage value. More... | |
int | numColWidthPercentage |
lout::misc::SimpleVector< int > * | colWidths |
The widths of all columns. More... | |
lout::misc::SimpleVector< int > * | cumHeight |
lout::misc::SimpleVector< int > * | rowSpanCells |
lout::misc::SimpleVector< int > * | baseline |
lout::misc::SimpleVector < core::style::Style * > * | rowStyle |
bool | colWidthsUpToDateWidthColExtremes |
Static Private Attributes | |
static bool | adjustTableMinWidth = true |
Friends | |
class | TableIterator |
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 } |
Static Protected Member Functions inherited from dw::oof::OOFAwareWidget | |
static int | getOOFMIndex (Widget *widget) |
static bool | isOOFContainer (Widget *widget, int oofmIndex) |
Protected Attributes inherited from dw::oof::OOFAwareWidget | |
OOFAwareWidget * | oofContainer [NUM_OOFM] |
OutOfFlowMgr * | outOfFlowMgr [NUM_OOFM] |
core::Requisition | requisitionWithoutOOF |
Protected Attributes inherited from dw::core::Widget | |
WidgetImgRenderer * | widgetImgRenderer |
Allocation | allocation |
The current allocation: size and position, always relative to the canvas. More... | |
Layout * | layout |
style::Box | extraSpace |
Space around the margin box. Allocation is extraSpace + margin + border + padding + contents. More... | |
StackingContextMgr * | stackingContextMgr |
Set iff this widget constitutes a stacking context, as defined by CSS. More... | |
Widget * | stackingContextWidget |
The bottom-most ancestor (or this) for which stackingContextMgr is set. More... | |
Static Protected Attributes inherited from dw::oof::OOFAwareWidget | |
static const char * | OOFM_NAME [NUM_OOFM] |
A Widget for rendering tables.
The dw::Table widget is used to render HTML tables.
Each cell is itself a separate widget. Any widget may be used, however, in dillo, only instances of dw::Textblock and dw::TableCell are used as children of dw::Table.
The following diagram shows the dependencies between the different functions, which are related to size calculation. Click on the boxes for more information.
[A] In this case, the new calculation is not forced, but only done, when necessary.
[B] In this case, the new calculation is allways necessary, since [C] is the case.
[C] Whether this function is called, depends on NEEDS_RESIZE / RESIZE_QUEUED / EXTREMES_CHANGED / EXTREMES_QUEUED.
TODO:
*[cC]alcCellSizes (calcHeights = false)
not necessary anymore?Given two array and , which represent the column minima and maxima, and a total width , apportionment means to calculate column widths , with
and
There are different algorithms for apportionment, a simple one is recommended in the HTML 4.0.1 specification (http://www.w3.org/TR/REC-html40/appendix/notes.html#h-B.5.2.2):
This one is used currently, but another one will be used soon, which is described below. The rest of this chapter is independent of the exact apportionment algorithm.
When referring to the apportionment function, we will call it and write something like this:
It is implemented by dw::Table::apportion.
The sizes, which all other sizes depend on, are column extremes, which define, how wide a column may be at min and at max. They are calculated in the following way:
First, only cells with colspan = 1 are regarded:
only for cells with colspan = 1.
Then, (but not ) are calculated from cells with colspan > 1. (In the following formulas, the cell at always span from to .) If the minimal width of the column exceeds the sum of the column minima calculated in the last step:
then the minimal width of this cell is apportioned to the columns:
then is apportioned in a simple way:
After this, is then the maximum of all .
Finally, the maximum of both is used.
For the maxima, there is no , but it has to be assured, that the maximum is always greater than or equal to the minimum.
Generally, if absolute widths are specified, they are, instead of the results of dw::core::Widget::getExtremes, taken for the minimal and maximal width of a cell (minus the box difference, i.e. the difference between content size and widget size). If the content width specification is smaller than the minimal content width of the widget (determined by dw::core::Widget::getExtremes), the latter is used instead.
If percentage widths are specified, they are also collected, as column maxima. A similar method as for the extremes is used, for cells with colspan > 1:
The total width is
In any case, it is corrected, if it is less than the minimal width (but not if it is greater than the maximal width).
Details on differences because of styles are omitted. Below, this total width is called .
The following algorithms are used to solve collisions between different size specifications (absolute and percentage). Generally, inherent sizes and specified absolute sizes are preferred.
First, calculate the sum of the minimal widths, for columns, where no percentage width has been specified. The difference to the total width is at max available to the columns with percentage width specifications:
with only those columns with no percentage width specification.
Then, calculate the sum of the widths, which the columns with percentage width specification would allocate, when fully adhering to them:
with only those columns with a percentage width specification.
Two cases are distinguished:
: In this case, the percentage widths can be used without any modification, by setting the extremes:
for only those columns with a percentage width specification.
with
in both cases for only those columns with a percentage width specification.
( and are set temporarily here, the notation should be a bit clearer.)
The column widths are now simply calculated by applying the apportionment function.
...
The algorithm described here tends to result in more homogeneous column widths.
The following rule leads to well-defined : All columns have have the same width , except:
Furthermore, is
Of course, must be the case.
Based on an initial value , can iteratively adjusted, based on these rules.
Currently, DwTable supports only the separated borders model (see CSS specification). Borders, paddings, spacing is done by creating dw::core::style::Style structures with values equivalent to following CSS:
TABLE { border: outset table-border; border-collapse: separate; border-spacing: table-cellspacing; background-color: table-bgcolor; }
TD TH { border: inset table-border; padding: table-cellspacing; background-color: td/th-bgcolor; }
Here, foo-bar refers to the attribute bar of the tag foo foo. Look at the HTML parser for more details.
|
private |
dw::Table::Table | ( | bool | limitTextWidth | ) |
References DBG_OBJ_CREATE, DBG_OBJ_SET_BOOL, and DBG_OBJ_SET_NUM.
dw::Table::~Table | ( | ) |
References DBG_OBJ_DELETE.
|
private |
References dw::core::Extremes::adjustmentWidth, dw::core::Requisition::ascent, DBG_IF_RTFL, DBG_OBJ_ARRSET_NUM, DBG_OBJ_ENTER, DBG_OBJ_LEAVE, DBG_OBJ_MSG, DBG_OBJ_MSG_END, DBG_OBJ_MSG_START, DBG_OBJ_MSGF, DBG_OBJ_SET_BOOL, DBG_OBJ_SET_NUM, dw::core::Requisition::descent, lout::misc::SimpleVector< T >::get(), dw::core::style::LENGTH_AUTO, lout::misc::max(), lout::misc::min(), lout::misc::SimpleVector< T >::set(), lout::misc::SimpleVector< T >::setSize(), lout::misc::SimpleVector< T >::size(), dw::core::splitHeightPreserveDescent(), and dw::core::Requisition::width.
void dw::Table::addCell | ( | Widget * | widget, |
int | colspan, | ||
int | rowspan | ||
) |
References dw::Table::Child::cell, DBG_OBJ_ENTER, DBG_OBJ_LEAVE, DBG_OBJ_SET_NUM_O, lout::misc::max(), dw::Table::Child::spanSpace, and dw::Table::Child::type.
Referenced by main().
void dw::Table::addRow | ( | core::style::Style * | style | ) |
References dw::core::style::Style::ref().
Referenced by main().
|
protected |
References DBG_OBJ_ENTER, DBG_OBJ_LEAVE, and DBG_OBJ_MSGF.
|
virtual |
Reimplemented from dw::core::Widget.
References dw::core::style::multiplyWithPerLength().
|
virtual |
Reimplemented from dw::core::Widget.
References dw::core::style::multiplyWithPerLength().
|
private |
Actual apportionment function.
References DBG_OBJ_ENTER, DBG_OBJ_LEAVE, DBG_OBJ_MSG, DBG_OBJ_MSGF, lout::misc::max(), lout::misc::min(), lout::misc::SimpleVector< T >::set(), and lout::misc::SimpleVector< T >::setSize().
|
private |
References dw::core::Requisition::ascent, DBG_OBJ_ENTER0, DBG_OBJ_LEAVE, and dw::core::Requisition::descent.
|
private |
|
private |
References DBG_OBJ_ENTER, DBG_OBJ_LEAVE, DBG_OBJ_MSGF, lout::misc::max(), and lout::misc::min().
|
private |
References DBG_OBJ_ENTER, and DBG_OBJ_LEAVE.
|
private |
References DBG_OBJ_ENTER, DBG_OBJ_LEAVE, DBG_OBJ_MSGF, lout::misc::SimpleVector< T >::get(), and lout::misc::max().
|
inlineprivate |
|
protectedvirtual |
Reimplemented from dw::core::Widget.
References DBG_OBJ_ENTER0, and DBG_OBJ_LEAVE.
|
protectedvirtual |
Reimplemented from dw::oof::OOFAwareWidget.
References DBG_OBJ_ENTER, DBG_OBJ_LEAVE, dw::core::Rectangle::draw(), dw::core::Rectangle::height, dw::core::Rectangle::width, dw::core::Rectangle::x, and dw::core::Rectangle::y.
|
private |
|
private |
Fills dw::Table::colExtremes in all cases.
References dw::core::Extremes::adjustmentWidth, DBG_IF_RTFL, DBG_OBJ_ARRATTRSET_NUM, DBG_OBJ_ARRSET_BOOL, DBG_OBJ_ENTER0, DBG_OBJ_LEAVE, DBG_OBJ_MSG_END, DBG_OBJ_MSG_START, DBG_OBJ_MSGF, DBG_OBJ_SET_BOOL, DBG_OBJ_SET_NUM, lout::misc::SimpleVector< T >::get(), lout::misc::SimpleVector< T >::increase(), dw::core::style::isPerLength(), dw::core::style::LENGTH_AUTO, lout::misc::max(), dw::core::Extremes::maxWidth, dw::core::Extremes::maxWidthIntrinsic, dw::core::Extremes::minWidth, dw::core::Extremes::minWidthIntrinsic, lout::misc::SimpleVector< T >::setLast(), and lout::misc::SimpleVector< T >::size().
|
inlineprotectedvirtual |
Reimplemented from dw::core::Widget.
References adjustTableMinWidth.
|
inlinestatic |
References adjustTableMinWidth.
|
protected |
AlignedTableCell * dw::Table::getCellRef | ( | ) |
References lout::identity::IdentifiableObject::instanceOf().
|
private |
|
private |
|
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, dw::core::Extremes::maxWidth, dw::core::Extremes::maxWidthIntrinsic, dw::core::Extremes::minWidth, and dw::core::Extremes::minWidthIntrinsic.
|
private |
References lout::misc::assertNotReached().
|
protectedvirtual |
Reimplemented from dw::oof::OOFAwareWidget.
References DBG_OBJ_ENTER, DBG_OBJ_LEAVE, and DBG_OBJ_MSGF.
|
protectedvirtual |
Reimplemented from dw::core::Widget.
|
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.
|
private |
|
protectedvirtual |
Called after sizeAllocateImpl() to redraw necessary areas. By default the whole widget is redrawn.
Reimplemented from dw::core::Widget.
|
inlinestatic |
References adjustTableMinWidth.
|
inlineprivate |
|
inlineprivate |
|
private |
|
protectedvirtual |
Reimplemented from dw::core::Widget.
References dw::core::Allocation::ascent, dw::core::Requisition::ascent, DBG_OBJ_ENTER, DBG_OBJ_LEAVE, dw::core::Allocation::descent, dw::core::Allocation::width, dw::core::Allocation::x, and dw::core::Allocation::y.
|
protectedvirtual |
Simple variant, to be implemented by widgets with sizes not depending on positions.
Reimplemented from dw::core::Widget.
References dw::core::Requisition::ascent, DBG_OBJ_ENTER0, DBG_OBJ_LEAVE, dw::core::Requisition::descent, dw::core::splitHeightPreserveDescent(), and dw::core::Requisition::width.
|
protectedvirtual |
Must be implemengted by a method returning true, when getAvailWidth() is called.
Reimplemented from dw::core::Widget.
|
friend |
Referenced by dw::Table::TableIterator::clone().
|
staticprivate |
Referenced by getAdjustMinWidth(), getAdjustTableMinWidth(), and setAdjustTableMinWidth().
|
private |
|
private |
Referenced by dw::Table::TableIterator::getContentInFlow().
|
static |
|
private |
The extremes of all columns.
|
private |
Wether the column itself (in the future?) or at least one cell in this column or spanning over this column has CSS 'width' specified as percentage value.
Filled by forceCalcColumnExtremes(), since it is needed to calculate the column widths.
|
private |
The widths of all columns.
|
private |
Wether the column itself (in the future?) or at least one cell in this column or spanning over this column has CSS 'width' specified.
Filled by forceCalcColumnExtremes(), since it is needed to calculate the column widths.
|
private |
|
private |
Row cumulative height array: cumHeight->size() is numRows + 1, cumHeight->get(0) is 0, cumHeight->get(numRows) is the total table height.
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
If a Cell has rowspan > 1, it goes into this array
|
private |