diff options
author | Sebastian Geerken <devnull@localhost> | 2013-04-16 11:46:55 +0200 |
---|---|---|
committer | Sebastian Geerken <devnull@localhost> | 2013-04-16 11:46:55 +0200 |
commit | df2c456eac1c6f6f6d23942907606a89c26b0f97 (patch) | |
tree | e237720ecf0c6b237630725776b528c8d56d1a7f /dw/outofflowmgr.hh | |
parent | 387571723e582e480ad1c5a05fab2418efe58eb3 (diff) |
Limited search for floats (not yet used, not even tested).
Diffstat (limited to 'dw/outofflowmgr.hh')
-rw-r--r-- | dw/outofflowmgr.hh | 31 |
1 files changed, 20 insertions, 11 deletions
diff --git a/dw/outofflowmgr.hh b/dw/outofflowmgr.hh index bee5c6ab..18ac801d 100644 --- a/dw/outofflowmgr.hh +++ b/dw/outofflowmgr.hh @@ -81,14 +81,17 @@ private: { private: OutOfFlowMgr *oofm; + Side side; public: - inline SortedFloatsVector (OutOfFlowMgr *oofm) : + inline SortedFloatsVector (OutOfFlowMgr *oofm, Side side) : lout::container::typed::Vector<Float> (1, false) - { this->oofm = oofm; } + { this->oofm = oofm; this->side = side; } - int find (Textblock *textblock, int y); - int findFirst (Textblock *textblock, int y, int h); + int find (Textblock *textblock, int y, Textblock *lastGB, + int lastExtIndex); + int findFirst (Textblock *textblock, int y, int h, Textblock *lastGB, + int lastExtIndex); int findLastBeforeSideSpanningIndex (int sideSpanningIndex); inline void put (Float *vloat) { lout::container::typed::Vector<Float>::put (vloat); @@ -132,7 +135,7 @@ private: lout::container::typed::HashTable<lout::object::TypedPointer <dw::core::Widget>, Float> *floatsByWidget; - lout::container::typed::List<TBInfo> *tbInfos; + lout::container::typed::Vector<TBInfo> *tbInfos; lout::container::typed::HashTable<lout::object::TypedPointer <Textblock>, TBInfo> *tbInfosByTextblock; @@ -183,10 +186,12 @@ private: void accumExtremes (SortedFloatsVector *list, int *oofMinWidth, int *oofMaxWidth); TBInfo *registerCaller (Textblock *textblock); - int getBorder (Textblock *textblock, Side side, int y, int h); + int getBorder (Textblock *textblock, Side side, int y, int h, + Textblock *lastGB, int lastExtIndex); SortedFloatsVector *getFloatsListForTextblock (Textblock *textblock, Side side); - bool hasFloat (Textblock *textblock, Side side, int y, int h); + bool hasFloat (Textblock *textblock, Side side, int y, int h, + Textblock *lastGB, int lastExtIndex); void ensureFloatSize (Float *vloat); int getBorderDiff (Textblock *textblock, Float *vloat, Side side); @@ -231,11 +236,15 @@ public: void getExtremes (int cbMinWidth, int cbMaxWidth, int *oofMinWidth, int *oofMaxWidth); - int getLeftBorder (Textblock *textblock, int y, int h); - int getRightBorder (Textblock *textblock, int y, int h); + int getLeftBorder (Textblock *textblock, int y, int h, Textblock *lastGB, + int lastExtIndex); + int getRightBorder (Textblock *textblock, int y, int h, Textblock *lastGB, + int lastExtIndex); - bool hasFloatLeft (Textblock *textblock, int y, int h); - bool hasFloatRight (Textblock *textblock, int y, int h); + bool hasFloatLeft (Textblock *textblock, int y, int h, Textblock *lastGB, + int lastExtIndex); + bool hasFloatRight (Textblock *textblock, int y, int h, Textblock *lastGB, + int lastExtIndex); inline static bool isRefOutOfFlow (int ref) { return ref != -1 && (ref & 1) != 0; } |