本文整理汇总了C++中InlineFlowBox::marginRight方法的典型用法代码示例。如果您正苦于以下问题:C++ InlineFlowBox::marginRight方法的具体用法?C++ InlineFlowBox::marginRight怎么用?C++ InlineFlowBox::marginRight使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类InlineFlowBox
的用法示例。
在下文中一共展示了InlineFlowBox::marginRight方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: placeBoxesHorizontally
int InlineFlowBox::placeBoxesHorizontally(int x)
{
// Set our x position.
setXPos(x);
int startX = x;
x += borderLeft() + paddingLeft();
for (InlineBox* curr = firstChild(); curr; curr = curr->nextOnLine()) {
if (curr->object()->isText()) {
InlineTextBox* text = static_cast<InlineTextBox*>(curr);
text->setXPos(x);
x += curr->width();
}
else {
if (curr->object()->isPositioned()) {
if (curr->object()->parent()->style()->direction() == LTR)
curr->setXPos(x);
else {
// Our offset that we cache needs to be from the edge of the right border box and
// not the left border box. We have to subtract |x| from the width of the block
// (which can be obtained by walking up to the root line box).
InlineBox* root = this;
while (!root->isRootInlineBox())
root = root->parent();
curr->setXPos(root->object()->width()-x);
}
continue; // The positioned object has no effect on the width.
}
if (curr->object()->isInlineFlow()) {
InlineFlowBox* flow = static_cast<InlineFlowBox*>(curr);
x += flow->marginLeft();
x = flow->placeBoxesHorizontally(x);
x += flow->marginRight();
}
else {
x += curr->object()->marginLeft();
curr->setXPos(x);
x += curr->width() + curr->object()->marginRight();
}
}
}
x += borderRight() + paddingRight();
setWidth(x-startX);
return x;
}