diff options
author | Sebastian Geerken <devnull@localhost> | 2015-06-10 08:25:50 +0200 |
---|---|---|
committer | Sebastian Geerken <devnull@localhost> | 2015-06-10 08:25:50 +0200 |
commit | 664c1317643550538031c0e0132b38fe2729ca02 (patch) | |
tree | 09fdca36c9bfe609cc19b3eced4ca3500da1d904 /dw/textblock.cc | |
parent | c1489885decc91520542f54da489af5290e8a98c (diff) |
SRDOP: Implemented numSizeRequestReferences() and sizeRequestReference() for Textblock.
Diffstat (limited to 'dw/textblock.cc')
-rw-r--r-- | dw/textblock.cc | 46 |
1 files changed, 44 insertions, 2 deletions
diff --git a/dw/textblock.cc b/dw/textblock.cc index c573fd71..8ccaf74b 100644 --- a/dw/textblock.cc +++ b/dw/textblock.cc @@ -263,6 +263,8 @@ Textblock::Textblock (bool limitTextWidth) DBG_OBJ_ARRATTRSET_NUM ("hlEnd", layer, "nChar", hlEnd[layer].nChar); } + numSizeReferences = 0; + initNewLine (); } @@ -390,12 +392,12 @@ void Textblock::sizeRequestImpl (core::Requisition *requisition, int numPos, int Textblock::numSizeRequestReferences () { - return 0; + return numSizeReferences; } core::Widget *Textblock::sizeRequestReference (int index) { - return NULL; + return sizeReferences[index]; } int Textblock::calcVerticalBorder (int widgetPadding, int widgetBorder, @@ -509,6 +511,46 @@ void Textblock::getExtremesSimpl (core::Extremes *extremes) DBG_OBJ_LEAVE (); } +int Textblock::numGetExtremesReferences () +{ + return numSizeReferences; +} + +core::Widget *Textblock::getExtremesReference (int index) +{ + return sizeReferences[index]; +} + +void Textblock::notifySetAsTopLevel () +{ + OOFAwareWidget::notifySetAsTopLevel (); + + numSizeReferences = 0; + DBG_OBJ_SET_NUM ("numSizeReferences", numSizeReferences); +} + +void Textblock::notifySetParent () +{ + OOFAwareWidget::notifySetParent (); + + numSizeReferences = 0; + for (int i = 0; i < NUM_OOFM; i++) { + if (oofContainer[i] != this) { + // avoid dublicates + bool found = false; + for (int j = 0; !found && j < numSizeReferences; j++) + if (oofContainer[i] == oofContainer[i]) + found = true; + + if (!found) + sizeReferences[numSizeReferences++] = oofContainer[i]; + } + } + + DBG_OBJ_SET_NUM ("numSizeReferences", numSizeReferences); + for (int i = 0; i < numSizeReferences; i++) + DBG_OBJ_ARRSET_NUM ("sizeReferences", i, sizeReferences[i]); +} void Textblock::sizeAllocateImpl (core::Allocation *allocation) { |