Dillo v3.1.1-98-g318d1f14
|
A widget for embedding UI widgets. More...
#include <ui.hh>
Public Member Functions | |
Embed (Resource *resource) | |
~Embed () | |
void | setDisplayed (bool displayed) |
void | setEnabled (bool enabled) |
void | draw (View *view, Rectangle *area, DrawingContext *context) |
Area is given in widget coordinates. | |
Iterator * | iterator (Content::Type mask, bool atEnd) |
Return an iterator for this widget. | |
void | setStyle (style::Style *style) |
Change the style of a widget. | |
Resource * | getResource () |
void | correctReqWidthOfChildNoRec (Widget *child, Requisition *requisition, bool allowDecreaseWidth) |
void | correctReqHeightOfChildNoRec (Widget *child, Requisition *requisition, void(*splitHeightFun)(int, int *, int *), bool allowDecreaseHeight) |
virtual void | correctExtremesOfChildNoRec (Widget *child, Extremes *extremes, bool useAdjustmentWidth) |
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). | |
virtual Widget * | sizeRequestReference (int index) |
See Sizes of Dillo Widgets (or Size requisitions depending on positions). | |
virtual int | numGetExtremesReferences () |
See Sizes of Dillo Widgets (or Size requisitions depending on positions). | |
virtual Widget * | getExtremesReference (int index) |
See Sizes of Dillo Widgets (or Size requisitions depending on positions). | |
void | sizeRequest (Requisition *requisition, int numPos=0, Widget **references=NULL, int *x=NULL, int *y=NULL) |
This method is a wrapper for Widget::sizeRequestImpl(); it calls the latter only when needed. | |
void | getExtremes (Extremes *extremes, int numPos=0, Widget **references=NULL, int *x=NULL, int *y=NULL) |
Wrapper for Widget::getExtremesImpl(). | |
void | sizeAllocate (Allocation *allocation) |
Wrapper for Widget::sizeAllocateImpl, calls the latter only when needed. | |
void | calcExtraSpace (int numPos, Widget **references, int *x, int *y) |
Calculates dw::core::Widget::extraSpace. | |
int | getAvailWidth (bool forceValue) |
Return available width including margin/border/padding (extraSpace?), not only the content width. | |
int | getAvailHeight (bool forceValue) |
Return available height including margin/border/padding (extraSpace?), not only the content height. | |
virtual bool | getAdjustMinWidth () |
void | correctRequisition (Requisition *requisition, void(*splitHeightFun)(int, int *, int *), bool allowDecreaseWidth, bool allowDecreaseHeight) |
void | correctExtremes (Extremes *extremes, bool useAdjustmentWidth) |
int | calcWidth (style::Length cssValue, int refWidth, Widget *refWidget, int limitMinWidth, bool forceValue) |
Computes a width value in pixels from cssValue. | |
void | calcFinalWidth (style::Style *style, int refWidth, Widget *refWidget, int limitMinWidth, bool forceValue, int *finalWidth) |
Computes the final width if posible and constraints it by min-width and max-width. | |
int | calcHeight (style::Length cssValue, bool usePercentage, int refHeight, Widget *refWidget, bool forceValue) |
virtual int | applyPerWidth (int containerWidth, style::Length perWidth) |
virtual int | applyPerHeight (int containerHeight, style::Length perHeight) |
int | getMinWidth (Extremes *extremes, bool forceValue) |
Used to evaluate Widget::adjustMinWidth. | |
virtual bool | isBlockLevel () |
virtual bool | isPossibleContainer () |
void | containerSizeChanged () |
bool | intersects (Widget *refWidget, Rectangle *area, Rectangle *intersection) |
Calculates the intersection of the visible allocation (i. | |
void | drawInterruption (View *view, Rectangle *area, DrawingContext *context) |
See Interrupted drawing for details. | |
virtual Widget * | getWidgetAtPoint (int x, int y, GettingWidgetAtPointContext *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) |
void | setBgColor (style::Color *bgColor) |
Set the background "behind" the widget, if it is not the background of the parent widget, e.g. | |
style::Color * | getBgColor () |
Get the actual background of a widget. | |
style::Color * | getFgColor () |
Get the actual foreground color of a widget. | |
void | drawBox (View *view, style::Style *style, Rectangle *area, int x, int y, int width, int height, bool inverse) |
Draw borders and background of a widget part, which allocation is given by (x, y, width, height) (widget coordinates). | |
void | drawWidgetBox (View *view, Rectangle *area, bool inverse) |
Draw borders and background of a widget. | |
void | drawSelected (View *view, Rectangle *area) |
void | setButtonSensitive (bool buttonSensitive) |
bool | isButtonSensitive () |
Widget * | getParent () |
Widget * | getContainer () |
Widget * | getTopLevel () |
Get the widget at the root of the tree, this widget is part from. | |
int | getLevel () |
Get the level of the widget within the tree. | |
int | getGeneratorLevel () |
Get the level of the widget within the tree, regarting the generators, not the parents. | |
Widget * | getNearestCommonAncestor (Widget *otherWidget) |
Get the widget with the highest level, which is a direct ancestor of widget1 and widget2. | |
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). | |
virtual void | removeChild (Widget *child) |
Public Member Functions inherited from lout::identity::IdentifiableObject | |
IdentifiableObject () | |
void | intoStringBuffer (misc::StringBuffer *sb) |
Store a textual representation of the object in a misc::StringBuffer. | |
int | getClassId () |
Returns the class identifier. | |
const char * | getClassName () |
Return the name, under which the class of this object was registered. | |
bool | instanceOf (int otherClassId) |
Returns, whether this class is an instance of the class, given by otherClassId, or of a sub class of this class. | |
Public Member Functions inherited from lout::object::Object | |
virtual | ~Object () |
The destructor is defined as virtual (but not abstract), so that destruction of Object's works properly. | |
virtual bool | equals (Object *other) |
Returns, whether two objects are equal. | |
virtual int | hashValue () |
Return a hash value for the object. | |
virtual Object * | clone () |
Return an exact copy of the object. | |
const char * | toString () |
Use object::Object::intoStringBuffer to return a textual representation of the object. | |
virtual size_t | sizeOf () |
Return the number of bytes, this object totally uses. | |
Static Public Attributes | |
static int | CLASS_ID = -1 |
Static Public Attributes inherited from dw::core::Widget | |
static int | CLASS_ID = -1 |
Protected Member Functions | |
void | sizeRequestSimpl (Requisition *requisition) |
Simple variant, to be implemented by widgets with sizes not depending on positions. | |
void | getExtremesSimpl (Extremes *extremes) |
Simple variant, to be implemented by widgets with extremes not depending on positions. | |
void | sizeAllocateImpl (Allocation *allocation) |
See Sizes of Dillo Widgets. | |
int | getAvailWidthOfChild (Widget *child, bool forceValue) |
Computes the content width available of a child widget. | |
int | getAvailHeightOfChild (Widget *child, bool forceValue) |
void | correctRequisitionOfChild (Widget *child, Requisition *requisition, void(*splitHeightFun)(int, int *, int *), bool allowDecreaseWidth, bool allowDecreaseHeight) |
void | correctExtremesOfChild (Widget *child, Extremes *extremes, bool useAdjustmentWidth) |
void | containerSizeChangedForChildren () |
void | enterNotifyImpl (core::EventCrossing *event) |
void | leaveNotifyImpl (core::EventCrossing *event) |
bool | buttonPressImpl (core::EventButton *event) |
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. | |
virtual void | getExtremesImpl (Extremes *extremes, int numPos, Widget **references, int *x, int *y) |
See Sizes of Dillo Widgets. | |
virtual void | calcExtraSpaceImpl (int numPos, Widget **references, int *x, int *y) |
The actual implementation for calculating dw::core::Widget::extraSpace. | |
virtual void | resizeDrawImpl () |
Called after sizeAllocateImpl() to redraw necessary areas. | |
virtual void | markSizeChange (int ref) |
See Sizes of Dillo Widgets. | |
virtual void | markExtremesChange (int ref) |
See Sizes of Dillo Widgets. | |
void | correctRequisitionViewport (Requisition *requisition, void(*splitHeightFun)(int, int *, int *), bool allowDecreaseWidth, bool allowDecreaseHeight) |
Corrects a requisition to fit in the viewport. | |
void | correctReqWidthOfChild (Widget *child, Requisition *requisition, bool allowDecreaseWidth) |
Correct a child requisition to fit the parent. | |
void | correctReqHeightOfChild (Widget *child, Requisition *requisition, void(*splitHeightFun)(int, int *, int *), bool allowDecreaseHeight) |
bool | correctReqAspectRatio (int pass, Widget *child, Requisition *requisition, bool allowDecreaseWidth, bool allowDecreaseHeight, void(*splitHeightFun)(int, int *, int *)) |
Correct a child requisition aspect ratio if needed. | |
virtual bool | affectedByContainerSizeChange () |
virtual bool | affectsSizeChangeContainerChild (Widget *child) |
virtual bool | usesAvailWidth () |
Must be implemengted by a method returning true, when getAvailWidth() is called. | |
virtual bool | usesAvailHeight () |
Must be implemengted by a method returning true, when getAvailHeight() is called. | |
virtual void | notifySetAsTopLevel () |
This method is called after a widget has been set as the top of a widget tree. | |
virtual void | notifySetParent () |
This method is called after a widget has been added to a parent. | |
virtual bool | buttonReleaseImpl (EventButton *event) |
virtual bool | motionNotifyImpl (EventMotion *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. | |
Private Attributes | |
Resource * | resource |
Friends | |
class | Resource |
Additional Inherited Members | |
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) |
Public Attributes inherited from dw::core::Widget | |
int | parentRef |
This value is defined by the parent widget, and used for incremential resizing. | |
Protected Types inherited from dw::core::Widget | |
enum | Flags { RESIZE_QUEUED = 1 << 0 , EXTREMES_QUEUED = 1 << 1 , NEEDS_RESIZE = 1 << 2 , NEEDS_ALLOCATE = 1 << 3 , ALLOCATE_QUEUED = 1 << 4 , EXTREMES_CHANGED = 1 << 5 , WAS_ALLOCATED = 1 << 6 } |
Protected Attributes inherited from dw::core::Widget | |
WidgetImgRenderer * | widgetImgRenderer |
Allocation | allocation |
The current allocation: size and position, always relative to the canvas. | |
float | ratio |
Preferred aspect ratio of the widget. | |
Layout * | layout |
style::Box | extraSpace |
Space around the margin box. | |
StackingContextMgr * | stackingContextMgr |
Set iff this widget constitutes a stacking context, as defined by CSS. | |
Widget * | stackingContextWidget |
The bottom-most ancestor (or this) for which stackingContextMgr is set. | |
dw::core::ui::Embed::Embed | ( | Resource * | resource | ) |
Definition at line 37 of file ui.cc.
References CLASS_ID, DBG_OBJ_ASSOC_CHILD, DBG_OBJ_CREATE, lout::identity::IdentifiableObject::registerName(), resource, and dw::core::ui::Resource::setEmbed().
dw::core::ui::Embed::~Embed | ( | ) |
Definition at line 46 of file ui.cc.
References DBG_OBJ_DELETE, and resource.
|
protectedvirtual |
Reimplemented from dw::core::Widget.
Definition at line 118 of file ui.cc.
References dw::core::EventButton::button, dw::core::ui::Resource::emitClicked(), and resource.
|
protectedvirtual |
Reimplemented from dw::core::Widget.
Definition at line 99 of file ui.cc.
References dw::core::ui::Resource::containerSizeChangedForChildren(), DBG_OBJ_ENTER0, DBG_OBJ_LEAVE, and resource.
|
protectedvirtual |
Reimplemented from dw::core::Widget.
Definition at line 93 of file ui.cc.
References dw::core::ui::Resource::correctExtremesOfChild(), dw::core::Widget::extremes, and resource.
|
inlinevirtual |
Definition at line 278 of file ui.hh.
References dw::core::Widget::correctExtremesOfChild(), and dw::core::Widget::extremes.
Referenced by dw::core::ui::ComplexButtonResource::correctExtremesOfChild().
|
inline |
Definition at line 270 of file ui.hh.
References dw::core::Widget::correctReqHeightOfChild(), and dw::core::Widget::requisition.
Referenced by dw::core::ui::ComplexButtonResource::correctRequisitionOfChild().
|
protectedvirtual |
Reimplemented from dw::core::Widget.
Definition at line 82 of file ui.cc.
References dw::core::ui::Resource::correctRequisitionOfChild(), dw::core::Widget::requisition, and resource.
|
inline |
Definition at line 265 of file ui.hh.
References dw::core::Widget::correctReqWidthOfChild(), and dw::core::Widget::requisition.
Referenced by dw::core::ui::ComplexButtonResource::correctRequisitionOfChild().
|
virtual |
Area is given in widget coordinates.
Implements dw::core::Widget.
Definition at line 141 of file ui.cc.
References dw::core::ui::Resource::draw(), dw::core::Widget::drawWidgetBox(), and resource.
|
protectedvirtual |
Reimplemented from dw::core::Widget.
Definition at line 106 of file ui.cc.
References dw::core::ui::Resource::emitEnter(), dw::core::Widget::enterNotifyImpl(), and resource.
|
protectedvirtual |
Reimplemented from dw::core::Widget.
Definition at line 77 of file ui.cc.
References dw::core::ui::Resource::getAvailHeightOfChild(), and resource.
|
protectedvirtual |
Computes the content width available of a child widget.
child | The child widget of which the available width will be computed. |
forceValue | If true, computes the width of the child with value "auto". Otherwise, it wont. |
Reimplemented from dw::core::Widget.
Definition at line 72 of file ui.cc.
References dw::core::ui::Resource::getAvailWidthOfChild(), and resource.
|
protectedvirtual |
Simple variant, to be implemented by widgets with extremes not depending on positions.
Reimplemented from dw::core::Widget.
Definition at line 59 of file ui.cc.
References dw::core::Extremes::adjustmentWidth, dw::core::Widget::correctExtremes(), dw::core::Widget::extremes, dw::core::ui::Resource::getExtremes(), lout::misc::min(), dw::core::Extremes::minWidth, dw::core::Extremes::minWidthIntrinsic, and resource.
|
inline |
|
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.
Definition at line 147 of file ui.cc.
References dw::core::ui::Resource::iterator(), and resource.
|
protectedvirtual |
Reimplemented from dw::core::Widget.
Definition at line 112 of file ui.cc.
References dw::core::ui::Resource::emitLeave(), dw::core::Widget::leaveNotifyImpl(), and resource.
void dw::core::ui::Embed::setDisplayed | ( | bool | displayed | ) |
Definition at line 131 of file ui.cc.
References resource, and dw::core::ui::Resource::setDisplayed().
Referenced by Html_tag_open_input().
void dw::core::ui::Embed::setEnabled | ( | bool | enabled | ) |
Definition at line 136 of file ui.cc.
References resource, and dw::core::ui::Resource::setEnabled().
|
virtual |
Change the style of a widget.
The old style is automatically unreferred, the new is referred. If this call causes the widget to change its size, dw::core::Widget::queueResize is called.
Reimplemented from dw::core::Widget.
Definition at line 152 of file ui.cc.
References resource, dw::core::ui::Resource::setStyle(), dw::core::Widget::setStyle(), and dw::core::Widget::style.
Referenced by main().
|
protectedvirtual |
Reimplemented from dw::core::Widget.
Definition at line 67 of file ui.cc.
References dw::core::Widget::allocation, resource, and dw::core::ui::Resource::sizeAllocate().
|
protectedvirtual |
Simple variant, to be implemented by widgets with sizes not depending on positions.
Reimplemented from dw::core::Widget.
Definition at line 52 of file ui.cc.
References dw::core::Widget::correctRequisition(), dw::core::Widget::requisition, resource, dw::core::ui::Resource::sizeRequest(), and dw::core::splitHeightPreserveAscent().
|
static |
|
private |
Definition at line 228 of file ui.hh.
Referenced by buttonPressImpl(), containerSizeChangedForChildren(), correctExtremesOfChild(), correctRequisitionOfChild(), draw(), Embed(), enterNotifyImpl(), getAvailHeightOfChild(), getAvailWidthOfChild(), getExtremesSimpl(), getResource(), iterator(), leaveNotifyImpl(), setDisplayed(), setEnabled(), setStyle(), sizeAllocateImpl(), sizeRequestSimpl(), and ~Embed().