aboutsummaryrefslogtreecommitdiff
path: root/dw/widget.hh
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.hh
parent826577556fa8b8eedcf1620b4104115d83dbce0b (diff)
SRDOP: Positions relative to multiple references; design now considers handling conflicts.
Diffstat (limited to 'dw/widget.hh')
-rw-r--r--dw/widget.hh44
1 files changed, 33 insertions, 11 deletions
diff --git a/dw/widget.hh b/dw/widget.hh
index ed7eae2b..5db9aa33 100644
--- a/dw/widget.hh
+++ b/dw/widget.hh
@@ -280,14 +280,26 @@ protected:
/**
* \brief See \ref dw-widget-sizes.
*/
- virtual void sizeRequestImpl (Requisition *requisition, bool posDefined,
- int x, int y) = 0;
-
+ virtual void sizeRequestImpl (Requisition *requisition, int numPos,
+ Widget **references, int *x, int *y);
+
+ /**
+ * \brief Simple variant, to be implemented by widgets with sizes
+ * not depending on positions.
+ */
+ virtual void sizeRequestSimpl (Requisition *requisition);
+
/**
* \brief See \ref dw-widget-sizes.
*/
- virtual void getExtremesImpl (Extremes *extremes, bool posDefined, int x,
- int y) = 0;
+ virtual void getExtremesImpl (Extremes *extremes, int numPos,
+ Widget **references, int *x, int *y);
+
+ /**
+ * \brief Simple variant, to be implemented by widgets with
+ * extremes not depending on positions.
+ */
+ virtual void getExtremesSimpl (Extremes *extremes);
virtual void calcExtraSpaceImpl ();
@@ -444,21 +456,31 @@ public:
inline int boxRestHeight ()
{ return extraSpace.bottom + getStyle()->boxRestHeight (); }
inline int boxDiffHeight () { return boxOffsetY () + boxRestHeight (); }
+
+ /**
+ * \brief See \ref dw-widget-sizes (or \ref dw-size-request-pos).
+ */
+ virtual int numSizeRequestReferences ();
+
+ /**
+ * \brief See \ref dw-widget-sizes (or \ref dw-size-request-pos).
+ */
+ virtual Widget *sizeRequestReference (int index);
/**
* \brief See \ref dw-widget-sizes (or \ref dw-size-request-pos).
*/
- virtual Widget *sizeRequestReference ();
+ virtual int numGetExtremesReferences ();
/**
* \brief See \ref dw-widget-sizes (or \ref dw-size-request-pos).
*/
- virtual Widget *getExtremesReference ();
+ virtual Widget *getExtremesReference (int index);
- void sizeRequest (Requisition *requisition, bool posDefined = false,
- int x = 0, int y = 0);
- void getExtremes (Extremes *extremes, bool posDefined = false, int x = 0,
- int y = 0);
+ void sizeRequest (Requisition *requisition, int numPos = 0,
+ Widget **references = NULL, int *x = NULL, int *y = NULL);
+ void getExtremes (Extremes *extremes, int numPos = 0,
+ Widget **references = NULL, int *x = NULL, int *y = NULL);
void sizeAllocate (Allocation *allocation);
void calcExtraSpace ();