diff options
author | Sebastian Geerken <devnull@localhost> | 2015-06-08 22:18:41 +0200 |
---|---|---|
committer | Sebastian Geerken <devnull@localhost> | 2015-06-08 22:18:41 +0200 |
commit | 7c8f69de8bc95c6078ee5fc0b63d263a80f31b44 (patch) | |
tree | b495c1320496cd5ff67c56b6a07d5a79c218455b /dw/textblock.hh | |
parent | 826577556fa8b8eedcf1620b4104115d83dbce0b (diff) |
SRDOP: Positions relative to multiple references; design now considers handling conflicts.
Diffstat (limited to 'dw/textblock.hh')
-rw-r--r-- | dw/textblock.hh | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/dw/textblock.hh b/dw/textblock.hh index 907ab4b4..3decda6d 100644 --- a/dw/textblock.hh +++ b/dw/textblock.hh @@ -576,10 +576,11 @@ protected: int redrawY; int lastWordDrawn; - bool sizeRequestPosDefined; - int sizeRequestX, sizeRequestY; + int sizeRequestNumPos; + Widget **sizeRequestReferences; + int *sizeRequestX, *sizeRequestY; - /* This value is (currently) set by setAscent(). */ + /* This value is currently) set by setAscent(). */ int lineBreakWidth; int wrapRefLines, wrapRefParagraphs; /* 0-based. Important: Both @@ -618,7 +619,6 @@ protected: int hoverLink; /* The link under the mouse pointer */ void queueDrawRange (int index1, int index2); - bool needsPositionForSize (); int calcVerticalBorder (int widgetPadding, int widgetBorder, int widgetMargin, int lineBorderTotal, int lineMarginTotal); @@ -682,6 +682,11 @@ protected: core::Requisition *size, bool isStart, bool isEnd); bool calcSizeOfWidgetInFlow (int wordIndex, Widget *widget, core::Requisition *size); + bool findSizeRequestReference (Widget *reference, int *xRef = NULL, + int *yRef = NULL); + bool findSizeRequestReference (int oofmIndex, int *xRef = NULL, + int *yRef = NULL) + { return findSizeRequestReference (oofContainer[oofmIndex], xRef, yRef); } /** * Of nested text blocks, only the most inner one must regard the @@ -815,11 +820,11 @@ protected: Widget *getWidgetAtPointLevel (int x, int y, int level, core::GettingWidgetAtPointContext *context); - void sizeRequestImpl (core::Requisition *requisition, bool posDefined, int x, - int y); - Widget *sizeRequestReference (); - void getExtremesImpl (core::Extremes *extremes, bool posDefined, int x, - int y); + void sizeRequestImpl (core::Requisition *requisition, int numPos, + Widget **references, int *x, int *y); + int numSizeRequestReferences (); + Widget *sizeRequestReference (int index); + void getExtremesSimpl (core::Extremes *extremes); void sizeAllocateImpl (core::Allocation *allocation); void calcExtraSpaceImpl (); |