diff options
author | Sebastian Geerken <devnull@localhost> | 2016-04-03 11:27:52 +0200 |
---|---|---|
committer | Sebastian Geerken <devnull@localhost> | 2016-04-03 11:27:52 +0200 |
commit | c242567805390620f4c47d17af68bb81b715efa2 (patch) | |
tree | b7d2fe6d0c730409ac9ce2384a5aef759c4c4b5d | |
parent | 0f7e7cd2e4d43343b6cdfafaef024a3037f389ef (diff) |
WidgetReference: Widget::widgetReference.
-rw-r--r-- | dw/textblock.cc | 1 | ||||
-rw-r--r-- | dw/widget.cc | 1 | ||||
-rw-r--r-- | dw/widget.hh | 8 |
3 files changed, 10 insertions, 0 deletions
diff --git a/dw/textblock.cc b/dw/textblock.cc index fb7c141c..f4a53f7f 100644 --- a/dw/textblock.cc +++ b/dw/textblock.cc @@ -2425,6 +2425,7 @@ void Textblock::addWidget (core::Widget *widget, core::style::Style *style) Word *word = addWord (size.width, size.ascent, size.descent, 0, style); word->content.type = core::Content::WIDGET_OOF_REF; word->content.widgetReference = new core::WidgetReference (widget); + widget->setWidgetReference (word->content.widgetReference); // After a out-of-flow reference, breaking is allowed. (This avoids some // problems with breaking near float definitions.) diff --git a/dw/widget.cc b/dw/widget.cc index 776c3f88..7538b58b 100644 --- a/dw/widget.cc +++ b/dw/widget.cc @@ -73,6 +73,7 @@ Widget::Widget () flags = (Flags)(NEEDS_RESIZE | EXTREMES_CHANGED); parent = quasiParent = generator = container = NULL; + setWidgetReference (NULL); DBG_OBJ_SET_PTR ("container", container); layout = NULL; diff --git a/dw/widget.hh b/dw/widget.hh index 165ea09a..2e9bcfd1 100644 --- a/dw/widget.hh +++ b/dw/widget.hh @@ -125,6 +125,8 @@ private: */ Widget *container; + WidgetReference *widgetReference; + style::Style *style; Flags flags; @@ -548,6 +550,12 @@ public: int getGeneratorLevel (); Widget *getNearestCommonAncestor (Widget *otherWidget); + inline WidgetReference *getWidgetReference () { return widgetReference; } + inline void setWidgetReference (WidgetReference *widgetReference) { + this->widgetReference = widgetReference; + DBG_OBJ_SET_PTR ("widgetReference", widgetReference); + } + inline Widget *getGenerator () { return generator ? generator : parent; } inline Layout *getLayout () { return layout; } |