1 #ifndef __DW_OOFFLOATSMGR_HH__
2 #define __DW_OOFFLOATSMGR_HH__
50 int compare (Object *o1, Object *o2);
56 int compare (Object *o1, Object *o2);
66 { this->oofm =
oofm; }
83 bool covers (
int y,
int h);
107 { this->oofm =
oofm; this->side =
side; }
110 int find (
int y,
int start,
int end);
150 TBInfo *parent,
int parentExtIndex);
169 int oldStartIndex,
int diff);
212 {
return (index << 1) | 1; }
215 {
return ref != -1 && (ref & 1) == 0; }
217 {
return ref != -1 && (ref & 1) == 1; }
220 {
return ref == -1 ? ref : (ref >> 1); }
256 int *oofMinWidth,
int *oofMaxWidth);
287 #endif // __DW_OOFFLOATSMGR_HH__
OOFAwareWidget * getOOFAwareWidget()
Definition: ooffloatsmgr.hh:153
bool hasFloat(Side side, int y, int h, OOFAwareWidget *lastGB, int lastExtIndex)
Definition: ooffloatsmgr.cc:1161
void tellIncompletePosition1(core::Widget *generator, core::Widget *widget, int x, int y)
Definition: ooffloatsmgr.cc:807
int getBorder(Side side, int y, int h, OOFAwareWidget *lastGB, int lastExtIndex)
Definition: ooffloatsmgr.cc:1078
int getGBWidthForAllocation(Float *vloat)
int y
Definition: ooffloatsmgr.hh:140
void getExtremes(core::Extremes *cbExtr, int *oofMinWidth, int *oofMaxWidth)
Definition: ooffloatsmgr.cc:970
Typed version of container::untyped::Vector.
Definition: container.hh:425
void getFloatsSize(core::Requisition *cbReq, Side side, int *width, int *height)
Definition: ooffloatsmgr.cc:935
OOFFloatsMgr(OOFAwareWidget *container, int oofmIndex)
Definition: ooffloatsmgr.cc:321
core::Allocation containerAllocation
Definition: ooffloatsmgr.hh:27
OOFAwareWidget * generator
Definition: ooffloatsmgr.hh:70
int compare(Object *o1, Object *o2)
Definition: ooffloatsmgr.cc:128
Set at the top when getting the widget at the point.
Definition: types.hh:312
A class for fast concatenation of a large number of strings.
Definition: misc.hh:565
void sizeAllocateEnd(OOFAwareWidget *caller)
Definition: ooffloatsmgr.cc:378
void calcWidgetRefSize(core::Widget *widget, core::Requisition *size)
Definition: ooffloatsmgr.cc:596
int size()
Definition: ooffloatsmgr.hh:118
core::Widget * getWidgetAtPoint(int x, int y, core::GettingWidgetAtPointContext *context)
Definition: ooffloatsmgr.cc:691
bool hasFloatLeft(int y, int h, OOFAwareWidget *lastGB, int lastExtIndex)
Definition: ooffloatsmgr.cc:1143
Typed version of container::untyped::HashTable.
Definition: container.hh:514
SortedFloatsVector * rightFloats
Definition: ooffloatsmgr.hh:157
dw::core::Shape implemtation for simple rectangles.
Definition: types.hh:69
int lastRightTBIndex
Definition: ooffloatsmgr.hh:166
int index
Definition: ooffloatsmgr.hh:139
bool collidesH(Float *vloat, Float *other)
Definition: ooffloatsmgr.cc:851
void put(Float *vloat)
Definition: ooffloatsmgr.cc:288
int externalIndex
Definition: ooffloatsmgr.hh:71
int findFirst(int y, int h, OOFAwareWidget *lastGB, int lastExtIndex, int *lastReturn)
Definition: ooffloatsmgr.cc:243
This is the base class for many other classes, which defines very common virtual methods.
Definition: object.hh:24
core::Widget * getFloatWidgetAtPoint(SortedFloatsVector *list, int x, int y, core::GettingWidgetAtPointContext *context)
Definition: ooffloatsmgr.cc:703
int compare(Object *o1, Object *o2)
Definition: ooffloatsmgr.cc:294
bool hasFloatRight(int y, int h, OOFAwareWidget *lastGB, int lastExtIndex)
Definition: ooffloatsmgr.cc:1152
int size()
Definition: container.hh:418
int sideSpanningIndex
Definition: ooffloatsmgr.hh:74
OutOfFlowMgr implementation dealing with floats.
Definition: ooffloatsmgr.hh:17
Used for other orders as the one defined by Comparable.
Definition: object.hh:66
Definition: ooffloatsmgr.hh:129
int getNumWidgets()
Definition: ooffloatsmgr.cc:1330
int oofmIndex
Definition: ooffloatsmgr.hh:25
Iterator< T > iterator()
Definition: container.hh:416
int calcFloatX(Float *vloat)
Return position of a float relative to the container.
Definition: ooffloatsmgr.cc:429
void moveExternalIndices(lout::container::typed::Vector< Float > *list, int oldStartIndex, int diff)
Definition: ooffloatsmgr.cc:609
TBInfo(OOFFloatsMgr *oofm, OOFAwareWidget *textblock, TBInfo *parent, int parentExtIndex)
Definition: ooffloatsmgr.cc:304
Definition: ooffloatsmgr.hh:98
static int createSubRefLeftFloat(int index)
Definition: ooffloatsmgr.hh:210
int yReal
Definition: ooffloatsmgr.hh:73
~TBInfo()
Definition: ooffloatsmgr.cc:315
void sizeAllocateStart(OOFAwareWidget *caller, core::Allocation *allocation)
Definition: ooffloatsmgr.cc:364
int rightFloatsMark
Definition: ooffloatsmgr.hh:166
void addWidgetInFlow(OOFAwareWidget *textblock, OOFAwareWidget *parentBlock, int externalIndex)
Definition: ooffloatsmgr.cc:525
bool isOOFAwareWidgetRegistered(OOFAwareWidget *widget)
Definition: ooffloatsmgr.hh:196
Float(OOFFloatsMgr *oofm, core::Widget *widget, OOFAwareWidget *generatingBlock, int externalIndex)
Definition: ooffloatsmgr.cc:44
int getAvailWidthOfChild(core::Widget *child, bool forceValue)
Definition: ooffloatsmgr.cc:1318
TBInfo * parent
Definition: ooffloatsmgr.hh:142
bool affectsLeftBorder(core::Widget *widget)
Definition: ooffloatsmgr.cc:1237
void getFloatsListsAndSide(Float *vloat, SortedFloatsVector **listSame, SortedFloatsVector **listOpp, Side *side)
Definition: ooffloatsmgr.cc:887
void clear()
Definition: container.hh:443
int compare(Object *o1, Object *o2)
Definition: ooffloatsmgr.cc:122
Float * findFloatByWidget(core::Widget *widget)
Definition: ooffloatsmgr.cc:624
T * get(int pos) const
Definition: container.hh:441
Represents the allocation, i.e. actual position and size of a dw::core::Widget.
Definition: types.hh:163
void containerSizeChangedForChildren()
Definition: ooffloatsmgr.cc:390
int getRightFloatHeight(int y, int h, OOFAwareWidget *lastGB, int lastExtIndex)
Definition: ooffloatsmgr.cc:1181
SortedFloatsVector(OOFFloatsMgr *oofm, Side side)
Definition: ooffloatsmgr.hh:105
static bool isSubRefRightFloat(int ref)
Definition: ooffloatsmgr.hh:216
Vector(int initSize, bool ownerOfObjects)
Definition: container.hh:428
bool containerMustAdjustExtraSpace()
Definition: ooffloatsmgr.cc:965
Definition: ooffloatsmgr.hh:22
int findLastBeforeSideSpanningIndex(int sideSpanningIndex)
Definition: ooffloatsmgr.cc:280
void tellPosition1(core::Widget *widget, int x, int y)
Called before tellPosition2, see there for more.
Definition: ooffloatsmgr.cc:721
bool collidesV(Float *vloat, Float *other, int *yReal)
Definition: ooffloatsmgr.cc:819
lout::container::typed::HashTable< lout::object::TypedPointer< dw::core::Widget >, Float > * floatsByWidget
Definition: ooffloatsmgr.hh:160
int parentExtIndex
Definition: ooffloatsmgr.hh:143
int index
Definition: ooffloatsmgr.hh:72
Set at the top when drawing.
Definition: types.hh:294
int findTBInfo(int y)
Definition: ooffloatsmgr.cc:668
Represents additional data for OOF containers.
Definition: outofflowmgr.hh:18
void tellIncompletePosition2(core::Widget *generator, core::Widget *widget, int x, int y)
Definition: ooffloatsmgr.cc:813
Definition: ooffloatsmgr.hh:59
Definition: container.cc:27
static bool isSubRefLeftFloat(int ref)
Definition: ooffloatsmgr.hh:214
void markExtremesChange(int ref)
Definition: ooffloatsmgr.cc:686
core::Widget * getWidget(int i)
Definition: ooffloatsmgr.cc:1335
bool dealingWithSizeOfChild(core::Widget *child)
Definition: ooffloatsmgr.cc:1313
bool covers(int y, int h)
Definition: ooffloatsmgr.cc:105
bool affectsRightBorder(core::Widget *widget)
Definition: ooffloatsmgr.cc:1242
int yReq
Definition: ooffloatsmgr.hh:73
Definition: ooffloatsmgr.hh:47
int find(int y, int start, int end)
Definition: ooffloatsmgr.cc:230
core::Requisition size
Definition: ooffloatsmgr.hh:75
void intoStringBuffer(lout::misc::StringBuffer *sb)
Store a textual representation of the object in a misc::StringBuffer.
Definition: ooffloatsmgr.cc:69
Definition: ooffloatsmgr.hh:53
int getLeftBorder(int y, int h, OOFAwareWidget *lastGB, int lastExtIndex)
Definition: ooffloatsmgr.cc:1060
bool mayAffectBordersAtAll()
Definition: ooffloatsmgr.cc:1247
OOFFloatsMgr * oofm
Definition: ooffloatsmgr.hh:62
TBInfo * getOOFAwareWidget(OOFAwareWidget *widget)
Definition: ooffloatsmgr.cc:1051
int getRightBorder(int y, int h, OOFAwareWidget *lastGB, int lastExtIndex)
Definition: ooffloatsmgr.cc:1069
int oofmIndex
Definition: ooffloatsmgr.hh:132
Definition: ooffloatsmgr.hh:44
int lastLeftTBIndex
Definition: ooffloatsmgr.hh:166
int addWidgetOOF(core::Widget *widget, OOFAwareWidget *generatingBlock, int externalIndex)
Definition: ooffloatsmgr.cc:543
Dw is in this namespace, or sub namespaces of this one.
Definition: alignedtablecell.cc:28
An interface to encapsulate platform dependent drawing.
Definition: view.hh:16
ComparePosition(int oofmIndex)
Definition: ooffloatsmgr.hh:135
Definition: ooffloatsmgr.hh:126
static int getFloatIndexFromSubRef(int ref)
Definition: ooffloatsmgr.hh:219
~OOFFloatsMgr()
Definition: ooffloatsmgr.cc:348
lout::container::typed::HashTable< lout::object::TypedPointer< OOFAwareWidget >, TBInfo > * tbInfosByOOFAwareWidget
Definition: ooffloatsmgr.hh:164
void tellPosition2(core::Widget *widget, int x, int y)
Called after tellPosition1.
Definition: ooffloatsmgr.cc:802
void clear()
Definition: ooffloatsmgr.hh:122
Definition: ooffloatsmgr.hh:22
int findFloatIndex(OOFAwareWidget *lastGB, int lastExtIndex)
Definition: ooffloatsmgr.cc:184
void ensureFloatSize(Float *vloat)
Definition: ooffloatsmgr.cc:1281
Typed version of container::untyped::Iterator.
Definition: container.hh:373
int getFloatHeight(Side side, int y, int h, OOFAwareWidget *lastGB, int lastExtIndex)
Definition: ooffloatsmgr.cc:1187
lout::container::typed::Iterator< Float > iterator()
Definition: ooffloatsmgr.hh:116
lout::container::typed::Vector< Float > * leftFloats
Definition: ooffloatsmgr.hh:147
static int createSubRefRightFloat(int index)
Definition: ooffloatsmgr.hh:211
OOFAwareWidget * container
Definition: ooffloatsmgr.hh:24
void draw(core::View *view, core::Rectangle *area, core::DrawingContext *context)
Definition: ooffloatsmgr.cc:495
void getSize(core::Requisition *cbReq, int *oofWidth, int *oofHeight)
Definition: ooffloatsmgr.cc:910
int getClearPosition(OOFAwareWidget *widget, Side side)
Definition: ooffloatsmgr.cc:1252
int getAvailHeightOfChild(core::Widget *child, bool forceValue)
Definition: ooffloatsmgr.cc:1324
bool dirty
Definition: ooffloatsmgr.hh:76
lout::container::typed::Vector< TBInfo > * tbInfos
Definition: ooffloatsmgr.hh:162
lout::container::typed::Vector< Float > * rightFloats
Definition: ooffloatsmgr.hh:147
OOFFloatsMgr * oofm
Definition: ooffloatsmgr.hh:101
void sizeAllocateFloats(Side side)
Definition: ooffloatsmgr.cc:402
SortedFloatsVector * leftFloats
Definition: ooffloatsmgr.hh:157
A typed version of object::Pointer.
Definition: object.hh:115
Side side
Definition: ooffloatsmgr.hh:102
void markSizeChange(int ref)
Definition: ooffloatsmgr.cc:632
int compare(Object *o1, Object *o2)
Definition: ooffloatsmgr.cc:117
int leftFloatsMark
Definition: ooffloatsmgr.hh:166
void drawFloats(SortedFloatsVector *list, core::View *view, core::Rectangle *area, core::DrawingContext *context)
Definition: ooffloatsmgr.cc:506
TBInfo * getOOFAwareWidgetWhenRegistered(OOFAwareWidget *widget)
Definition: ooffloatsmgr.cc:1040
void getFloatsExtremes(core::Extremes *cbExtr, Side side, int *minWidth, int *maxWidth)
Definition: ooffloatsmgr.cc:990
Side
Definition: ooffloatsmgr.hh:22
CompareGBAndExtIndex(OOFFloatsMgr *oofm)
Definition: ooffloatsmgr.hh:65
int getLeftFloatHeight(int y, int h, OOFAwareWidget *lastGB, int lastExtIndex)
Definition: ooffloatsmgr.cc:1175