summaryrefslogtreecommitdiff
path: root/dw/widget.cc
diff options
context:
space:
mode:
authorSebastian Geerken <devnull@localhost>2015-06-08 22:18:41 +0200
committerSebastian Geerken <devnull@localhost>2015-06-08 22:18:41 +0200
commit7c8f69de8bc95c6078ee5fc0b63d263a80f31b44 (patch)
treeb495c1320496cd5ff67c56b6a07d5a79c218455b /dw/widget.cc
parent826577556fa8b8eedcf1620b4104115d83dbce0b (diff)
SRDOP: Positions relative to multiple references; design now considers handling conflicts.
Diffstat (limited to 'dw/widget.cc')
-rw-r--r--dw/widget.cc53
1 files changed, 46 insertions, 7 deletions
diff --git a/dw/widget.cc b/dw/widget.cc
index 18555fa4..b3d47efb 100644
--- a/dw/widget.cc
+++ b/dw/widget.cc
@@ -567,8 +567,8 @@ bool Widget::usesAvailHeight ()
* \brief This method is a wrapper for Widget::sizeRequestImpl(); it calls
* the latter only when needed.
*/
-void Widget::sizeRequest (Requisition *requisition, bool posDefined, int x,
- int y)
+void Widget::sizeRequest (Requisition *requisition, int numPos,
+ Widget **references, int *x, int *y)
{
assert (!queueResizeEntered ());
@@ -588,7 +588,7 @@ void Widget::sizeRequest (Requisition *requisition, bool posDefined, int x,
if (needsResize ()) {
calcExtraSpace ();
/** \todo Check requisition == &(this->requisition) and do what? */
- sizeRequestImpl (requisition, posDefined, x, y);
+ sizeRequestImpl (requisition, numPos, references, x, y);
this->requisition = *requisition;
unsetFlags (NEEDS_RESIZE);
@@ -988,7 +988,8 @@ int Widget::calcHeight (style::Length cssValue, bool usePercentage,
/**
* \brief Wrapper for Widget::getExtremesImpl().
*/
-void Widget::getExtremes (Extremes *extremes, bool posDefined, int x, int y)
+void Widget::getExtremes (Extremes *extremes, int numPos, Widget **references,
+ int *x, int *y)
{
assert (!queueResizeEntered ());
@@ -1011,7 +1012,7 @@ void Widget::getExtremes (Extremes *extremes, bool posDefined, int x, int y)
// For backward compatibility (part 1/2):
extremes->minWidthIntrinsic = extremes->maxWidthIntrinsic = -1;
- getExtremesImpl (extremes, posDefined, x, y);
+ getExtremesImpl (extremes, numPos, references, x, y);
// For backward compatibility (part 2/2):
if (extremes->minWidthIntrinsic == -1)
@@ -1054,13 +1055,25 @@ void Widget::calcExtraSpace ()
DBG_OBJ_SET_NUM ("extraSpace.right", extraSpace.right);
}
-Widget *Widget::sizeRequestReference ()
+int Widget::numSizeRequestReferences ()
{
+ return 0;
+}
+
+Widget *Widget::sizeRequestReference (int index)
+{
+ misc::assertNotReached ();
return NULL;
}
-Widget *Widget::getExtremesReference ()
+int Widget::numGetExtremesReferences ()
{
+ return 0;
+}
+
+Widget *Widget::getExtremesReference (int index)
+{
+ misc::assertNotReached ();
return NULL;
}
@@ -1543,6 +1556,32 @@ void Widget::getPaddingArea (int *xPad, int *yPad, int *widthPad,
*heightPad -= style->borderWidth.top + style->borderWidth.bottom;
}
+void Widget::sizeRequestImpl (Requisition *requisition, int numPos,
+ Widget **references, int *x, int *y)
+{
+ // Use the simple variant.
+ sizeRequestSimpl (requisition);
+}
+
+void Widget::sizeRequestSimpl (Requisition *requisition)
+{
+ // Either variant should be implemented.
+ misc::assertNotReached ();
+}
+
+void Widget::getExtremesImpl (Extremes *extremes, int numPos,
+ Widget **references, int *x, int *y)
+{
+ // Use the simple variant.
+ getExtremesSimpl (extremes);
+}
+
+void Widget::getExtremesSimpl (Extremes *extremes)
+{
+ // Either variant should be implemented.
+ misc::assertNotReached ();
+}
+
void Widget::sizeAllocateImpl (Allocation *allocation)
{
}