aboutsummaryrefslogtreecommitdiff
path: root/dw/textblock.cc
diff options
context:
space:
mode:
authorSebastian Geerken <devnull@localhost>2015-06-10 08:25:50 +0200
committerSebastian Geerken <devnull@localhost>2015-06-10 08:25:50 +0200
commit664c1317643550538031c0e0132b38fe2729ca02 (patch)
tree09fdca36c9bfe609cc19b3eced4ca3500da1d904 /dw/textblock.cc
parentc1489885decc91520542f54da489af5290e8a98c (diff)
SRDOP: Implemented numSizeRequestReferences() and sizeRequestReference() for Textblock.
Diffstat (limited to 'dw/textblock.cc')
-rw-r--r--dw/textblock.cc46
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)
{