aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Geerken <devnull@localhost>2012-11-18 22:10:24 +0100
committerSebastian Geerken <devnull@localhost>2012-11-18 22:10:24 +0100
commit9e9deedc7c615c992a735e88ac3987adeb5b13c3 (patch)
treedf8b5d1c9bd6c01f8dcd89a25be808eb9d4c30a4
parent92e38a11b4a432975efa8415c02dcccaa0ee89b3 (diff)
Some cleanup.
-rw-r--r--dw/outofflowmgr.cc22
-rw-r--r--dw/outofflowmgr.hh2
-rw-r--r--dw/textblock.cc10
-rw-r--r--dw/textblock.hh7
4 files changed, 17 insertions, 24 deletions
diff --git a/dw/outofflowmgr.cc b/dw/outofflowmgr.cc
index b1979abf..38cbc491 100644
--- a/dw/outofflowmgr.cc
+++ b/dw/outofflowmgr.cc
@@ -219,25 +219,27 @@ void OutOfFlowMgr::getSize (int cbWidth, int cbHeight,
*oofWidth = cbWidth; /* This (or "<=" instead of "=") should be
the case for floats. */
- int oofHeightLeft = containingBlock->getCBStyle()->boxDiffWidth();
- int oofHeightRight = containingBlock->getCBStyle()->boxDiffWidth();
+ int oofHeightLeft = containingBlock->asWidget()->getStyle()->boxDiffWidth();
+ int oofHeightRight = containingBlock->asWidget()->getStyle()->boxDiffWidth();
for (int i = 0; i < leftFloats->size(); i++) {
Float *vloat = leftFloats->get(i);
assert (vloat->y != -1);
ensureFloatSize (vloat);
- oofHeightLeft = max (oofHeightLeft,
- vloat->y + vloat->size.ascent + vloat->size.descent
- + containingBlock->getCBStyle()->boxRestHeight());
+ oofHeightLeft =
+ max (oofHeightLeft,
+ vloat->y + vloat->size.ascent + vloat->size.descent
+ + containingBlock->asWidget()->getStyle()->boxRestHeight());
}
for (int i = 0; i < rightFloats->size(); i++) {
Float *vloat = rightFloats->get(i);
assert (vloat->y != -1);
ensureFloatSize (vloat);
- oofHeightRight = max (oofHeightRight,
- vloat->y + vloat->size.ascent + vloat->size.descent
- + containingBlock->getCBStyle()->boxRestHeight());
+ oofHeightRight =
+ max (oofHeightRight,
+ vloat->y + vloat->size.ascent + vloat->size.descent
+ + containingBlock->asWidget()->getStyle()->boxRestHeight());
}
*oofHeight = max (oofHeightLeft, oofHeightRight);
@@ -392,7 +394,7 @@ int OutOfFlowMgr::calcBorderDiff (Float *vloat)
switch (vloat->widget->getStyle()->vloat) {
case FLOAT_LEFT:
{
- int d = containingBlock->getCBStyle()->boxOffsetX();
+ int d = containingBlock->asWidget()->getStyle()->boxOffsetX();
for (Widget *w = vloat->generatingBlock;
w != containingBlock->asWidget(); w = w->getParent())
d += w->getStyle()->boxOffsetX();
@@ -401,7 +403,7 @@ int OutOfFlowMgr::calcBorderDiff (Float *vloat)
case FLOAT_RIGHT:
{
- int d = containingBlock->getCBStyle()->boxRestWidth();
+ int d = containingBlock->asWidget()->getStyle()->boxRestWidth();
for (Widget *w = vloat->generatingBlock;
w != containingBlock->asWidget(); w = w->getParent())
d += w->getStyle()->boxRestWidth();
diff --git a/dw/outofflowmgr.hh b/dw/outofflowmgr.hh
index 46e0f8d1..da04c71d 100644
--- a/dw/outofflowmgr.hh
+++ b/dw/outofflowmgr.hh
@@ -16,8 +16,6 @@ public:
public:
virtual void borderChanged (int y) = 0;
virtual core::Widget *asWidget () = 0;
- virtual core::style::Style *getCBStyle () = 0;
- virtual core::Allocation *getCBAllocation () = 0;
};
private:
diff --git a/dw/textblock.cc b/dw/textblock.cc
index 999b7b97..1fbf0032 100644
--- a/dw/textblock.cc
+++ b/dw/textblock.cc
@@ -2230,14 +2230,4 @@ core::Widget *Textblock::asWidget ()
return this;
}
-core::style::Style *Textblock::getCBStyle ()
-{
- return getStyle();
-}
-
-core::Allocation *Textblock::getCBAllocation ()
-{
- return &allocation;
-}
-
} // namespace dw
diff --git a/dw/textblock.hh b/dw/textblock.hh
index 9da377a9..3d1f676c 100644
--- a/dw/textblock.hh
+++ b/dw/textblock.hh
@@ -458,6 +458,11 @@ protected:
*/
inline int lineXOffsetWidget (Line *line)
{
+ // TODO This method is called very often, every time a line is
+ // *drawn*. To reduce calls to OutOfFlowMgr::getLeftBorder
+ // (which searches through all floats each time), the value
+ // should (in the layouting phase) be stored in the line.
+
assert (diffXToContainingBlock != -1);
assert (diffYToContainingBlock != -1);
@@ -648,8 +653,6 @@ public:
// From OutOfFlowMgr::ContainingBlock:
void borderChanged (int y);
core::Widget *asWidget ();
- core::style::Style *getCBStyle ();
- core::Allocation *getCBAllocation ();
};
} // namespace dw