Base class for widgets which can act as container and generator for widgets out of flow.
More...
|
| 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) |
|
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) |
|
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 | isBlockLevel () |
|
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 Iterator * | iterator (Content::Type mask, bool atEnd)=0 |
| Return an iterator for this widget. More...
|
|
virtual void | removeChild (Widget *child) |
|
| 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...
|
|
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...
|
|
|
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 () |
|
virtual void | drawLevel (core::View *view, core::Rectangle *area, int level, core::DrawingContext *context) |
|
void | drawOOF (core::View *view, core::Rectangle *area, core::DrawingContext *context) |
|
Widget * | getWidgetAtPoint (int x, int y, core::GettingWidgetAtPointContext *context) |
|
virtual Widget * | getWidgetAtPointLevel (int x, int y, int level, 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 () |
|
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 | getExtremesSimpl (Extremes *extremes) |
| Simple variant, to be implemented by widgets with extremes not depending on positions. More...
|
|
virtual void | calcExtraSpaceImpl (int numPos, Widget **references, int *x, int *y) |
| The actual implementation for calculating dw::core::Widget::extraSpace. More...
|
|
virtual void | sizeAllocateImpl (Allocation *allocation) |
| See Sizes of Dillo Widgets. More...
|
|
virtual void | resizeDrawImpl () |
| Called after sizeAllocateImpl() to redraw necessary areas. By default the whole widget is redrawn. 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 void | containerSizeChangedForChildren () |
|
virtual bool | affectedByContainerSizeChange () |
|
virtual bool | affectsSizeChangeContainerChild (Widget *child) |
|
virtual bool | usesAvailWidth () |
| Must be implemengted by a method returning true, when getAvailWidth() is called. More...
|
|
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) |
|
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...
|
|
Base class for widgets which can act as container and generator for widgets out of flow.
(Perhaps it should be diffenciated between the two roles, container and generator, but this would make multiple inheritance necessary.)
See Handling Elements Out Of Flow for an overview.
Requirements for sub classes (in most cases refer to dw::Textblock as a good example):
See also implementations of dw::Textblock and dw::Table. (Open issue: What about dw::core::Widget::correctRequisitionOfChild and dw::core::Widget::correctExtremesOfChild? Currently, all widgets are used the default implementation.)
For both generators and containers of floats (which is only implemented by dw::Textblock) it gets a bit more complicated.
- Todo:
- Currently, on the level of dw::oof::OOFAwareWidget, nothing is done about dw::core::Widget::markSizeChange and dw::core::Widget::markExtremesChange. This does not matter, though: dw::Textblock takes care of these, and dw::Table is only connected to subclasses of dw::oof::OOFPositionedMgr, which do care about these. However, this should be considered for completeness.