本文整理汇总了C++中Work::pushSpaceOrParagraph方法的典型用法代码示例。如果您正苦于以下问题:C++ Work::pushSpaceOrParagraph方法的具体用法?C++ Work::pushSpaceOrParagraph怎么用?C++ Work::pushSpaceOrParagraph使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Work
的用法示例。
在下文中一共展示了Work::pushSpaceOrParagraph方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: comm
Move::Move(Work& work, db::Comment const& comment, unsigned varNo, unsigned varCount)
:KeyNode(work.key)
,m_ply(0)
{
if (!work.isFolded && !comment.isEmpty())
{
db::Comment comm(comment);
comm.strip(*work.wantedLanguages);
if (!comm.isEmpty())
{
work.pushSpaceOrParagraph(Spacing::Comment);
work.pop(m_list);
m_list.push_back(new Comment(comm, move::Post, Comment::AtEnd));
}
}
if (work.m_level > 0)
{
Node::Bracket bracket;
if (work.isFolded)
bracket = Node::Fold;
else if (/*varCount > 1 && */(work.m_displayStyle & display::ShowVariationNumbers))
bracket = Node::End;
else
bracket = Node::Close;
work.pushClose(varNo == varCount);
m_list.push_back(new Space(bracket, varNo == varCount));
}
else
{
m_list.push_back(new Space(0));
}
}
示例2: comment
Move::Move(Work& work, MoveNode const* move)
:KeyNode(work.key)
{
//M_ASSERT(!move->atLineStart());
if (work.board.whiteToMove())
{
if (work.m_level == 0 && (work.m_displayStyle & display::ColumnStyle))
work.pushBreak();
work.needMoveNo = true;
}
if (!work.isFolded && move->hasComment(move::Ante))
{
db::Comment comment(move->comment(move::Ante));
comment.strip(*work.wantedLanguages);
if (!comment.isEmpty())
{
if (!move->prev()->hasMark() || move->prev()->hasComment(move::Post))
work.pushSpaceOrParagraph(Spacing::Comment);
work.pop(m_list);
m_list.push_back(new Comment(comment, move::Ante));
work.m_isVirgin = false;
work.pushSpaceOrParagraph(Spacing::Comment);
work.needMoveNo = true;
}
}
work.pop(m_list);
if (!work.isFolded && move->hasAnnotation())
{
m_list.push_back(new Annotation(
move->annotation(),
bool(work.m_displayStyle & display::ShowDiagrams)));
}
m_ply = work.needMoveNo ? new Ply(move, work.board.moveNumber()) : new Ply(move);
m_list.push_back(m_ply);
work.incrPlyCount();
work.needMoveNo = false;
work.pushSpace();
if (work.isFolded)
return;
if (move->hasMark())
{
m_list.push_back(new Marks(move->marks()));
work.pushSpace();
}
mstl::string info;
getMoveInfo(work, move, info);
bool needSpace = false;
if (move->hasComment(move::Post))
{
db::Comment comment(move->comment(move::Post));
comment.strip(*work.wantedLanguages);
if (!comment.isEmpty())
{
bool isShort = info.empty()
&& comment.length() <= work.linebreakMinCommentLength
&& bool(work.m_displayStyle & display::CompactStyle);
if (isShort)
work.pushSpace();
else
work.pushSpaceOrParagraph(Spacing::Comment);
work.pop(m_list);
m_list.push_back(new Comment(comment, move::Post));
if (isShort)
work.pushSpace();
else
needSpace = true;
}
}
if (!info.empty())
{
if (needSpace)
work.pushSpace();
else
work.pushSpaceOrParagraph(Spacing::Comment);
work.pop(m_list);
m_list.push_back(new Comment(db::Comment(info, false, false), move::Post, Comment::Finally));
needSpace = true;
}
if (needSpace)
{
work.pushSpaceOrParagraph(Spacing::Comment);
work.needMoveNo = true;
//.........这里部分代码省略.........