当前位置: 首页>>代码示例>>C++>>正文


C++ Work::pushSpace方法代码示例

本文整理汇总了C++中Work::pushSpace方法的典型用法代码示例。如果您正苦于以下问题:C++ Work::pushSpace方法的具体用法?C++ Work::pushSpace怎么用?C++ Work::pushSpace使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Work的用法示例。


在下文中一共展示了Work::pushSpace方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: 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;
//.........这里部分代码省略.........
开发者ID:gkalab,项目名称:cb2pgn,代码行数:101,代码来源:db_edit_node.cpp

示例2: comm

Move::Move(Work& work, MoveNode const* move, bool isEmptyGame, unsigned varNo, unsigned varCount)
	:KeyNode(work.key)
	,m_ply(0)
{
	if (work.m_level == 0)
	{
		if (work.isEmpty && isEmptyGame)
			m_list.push_back(new Space(Empty));
		else
			m_list.push_back(new Space(Start));
	}
	else
	{
		if (/*varCount > 1 && */(work.m_displayStyle & display::ShowVariationNumbers))
			work.pushOpen(varNo == 1, varNo);
		else
			work.pushOpen(varNo == 1);

		work.pushSpace();
		work.needMoveNo = true;
	}

	if (work.isFolded)
		return;

	if (move->hasMark())
	{
		work.pop(m_list);
		m_list.push_back(new Marks(move->marks()));
		work.m_isVirgin = false;
		work.pushSpace();
	}

	bool needSpace = false;

	mstl::string info;
	getMoveInfo(work, move, info);

	if (move->hasComment(move::Post))
	{
		db::Comment comm(move->comment(move::Post));
		comm.strip(*work.wantedLanguages);

		if (!comm.isEmpty())
		{
			work.pop(m_list);
			m_list.push_back(new Comment(comm, move::Post, Comment::AtStart));
			needSpace = true;
		}
	}

	if (!info.empty())
	{
		if (needSpace)
			work.pushSpace();
		work.pop(m_list);
		m_list.push_back(new Comment(db::Comment(info, false, false), move::Post, Comment::Finally));
		needSpace = true;
	}

	if (needSpace)
	{
		work.m_isVirgin = false;
//		work.pushParagraph(Spacing::PreComment);
		if (!move->hasMark())
			work.pushSpaceOrParagraph(Spacing::Comment);
		work.needMoveNo = true;
	}
}
开发者ID:gkalab,项目名称:cb2pgn,代码行数:69,代码来源:db_edit_node.cpp


注:本文中的Work::pushSpace方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。