本文整理汇总了C++中CNode::GetNext方法的典型用法代码示例。如果您正苦于以下问题:C++ CNode::GetNext方法的具体用法?C++ CNode::GetNext怎么用?C++ CNode::GetNext使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CNode
的用法示例。
在下文中一共展示了CNode::GetNext方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: InsertMML_CM_apply__read_op
void CLineNode::InsertMML_CM_apply__read_op(
AST_TXML_Tag *_item_node, QString _item_str, int readonly, long form )
{
if( _item_node )
{
CLineNode *lbuf = new CLineNode();
lbuf->read_mathml( _item_node );
if( readonly )
lbuf->iterateNodeTree( setRecursiveReadOnly_n_IgnoreContent, 0 );
else if( form == __APPLY_RENDER_FORM_OP )
{
CNode *pNode = lbuf->GetFirstChild();
while( pNode )
{
pNode->to_mathml_data.is_content =
CONTENT_MATHML_CONVERTION2__APPLY_OPERATOR_RECURSIVE_TREE;
pNode = pNode->GetNext();
}
}
PumpLine2Line( lbuf );
delete lbuf;
}
else if( _item_str.length() )
InsertMML_CM_create_markup_rigid_token( FBL_TAG_mo, _item_str );
}
示例2: RemoveChild
CNode* CParentNode::RemoveChild( long no )
{
CNode *pNode = GetChild( no );
if( pNode )
{
if( pNode->GetPrev() )
pNode->GetPrev()->SetNext( pNode->GetNext() );
if( pNode->GetNext() )
pNode->GetNext()->SetPrev( pNode->GetPrev() );
pNode->SetNext( NULL );
pNode->SetPrev( NULL );
pNode->SetParent( NULL );
m_children.remove( no );
}
return pNode;
}
示例3: RunCalc
int CFormulaNode::RunCalc()
{
if( !getCalc() )
{
if( getCalcButtonID().length() )
setMissButton();
return 0;
}
if( !getCalc()->isPositionRunExist() ) return 0;
QVector<RealFde> frames_ltrb;
frames_ltrb.fill( 0.0, 4 * GetChildCount() );
QVector<RealFde> frames_margin_ltrb;
frames_margin_ltrb.fill( 0.0, 4 * GetChildCount() );
QVector<RealFde> primitive_ltrb;
primitive_ltrb.fill( 0.0, 4 * GetChildCount() );
long i;
CNode *pCurNode = GetFirstChild();
if( pCurNode->GetType() != NODE_FRAME ) return 0;
for( i = 0; i < GetChildCount() && pCurNode; pCurNode = pCurNode->GetNext(), i++ )
{
frames_ltrb[ i * 4 + SVG_NodeTemplate_Parameter_Left ] = pCurNode->GetPosition().x();
frames_ltrb[ i * 4 + SVG_NodeTemplate_Parameter_Top ] = pCurNode->GetPosition().y();
frames_ltrb[ i * 4 + SVG_NodeTemplate_Parameter_Right ] = pCurNode->GetPosition().x() + pCurNode->GetSize().width();
frames_ltrb[ i * 4 + SVG_NodeTemplate_Parameter_Bottom ] = pCurNode->GetPosition().y() + pCurNode->GetSize().height();
frames_margin_ltrb[ i * 4 + SVG_NodeTemplate_Parameter_Left ] = ((CFrameNode*) pCurNode)->getLeftIndent();
frames_margin_ltrb[ i * 4 + SVG_NodeTemplate_Parameter_Top ] = ((CFrameNode*) pCurNode)->getTopIndent();
frames_margin_ltrb[ i * 4 + SVG_NodeTemplate_Parameter_Right ] = ((CFrameNode*) pCurNode)->getRightIndent();
frames_margin_ltrb[ i * 4 + SVG_NodeTemplate_Parameter_Bottom ] = ((CFrameNode*) pCurNode)->getBottomIndent();
}
for( i = 0; i < getGraphPrimNumber(); i++ )
{
primitive_ltrb.push_back( getGraphPrimitivePositionCoord( i, 0 ) );
primitive_ltrb.push_back( getGraphPrimitivePositionCoord( i, 1 ) );
primitive_ltrb.push_back( getGraphPrimitivePositionCoord( i, 2 ) );
primitive_ltrb.push_back( getGraphPrimitivePositionCoord( i, 3 ) );
}
UseBtnCalc_InitByThisSize( *getCalc() );
int ret = getCalc()->PositionRun( frames_ltrb, frames_margin_ltrb, primitive_ltrb );
// reset parent margins
UseBtnCalc_ChangeThisMargin( *getCalc() );
for( i = 0; i < getGraphPrimNumber(); i++ )
{
if( getCalc()->isFormulaTypeGraphics( i ) )
{
setGraphPrimitivePositionCoord(
i, SVG_NodeTemplate_Parameter_Left,
primitive_ltrb[ i * 4 + SVG_NodeTemplate_Parameter_Left ] );
setGraphPrimitivePositionCoord(
i, SVG_NodeTemplate_Parameter_Top,
primitive_ltrb[ i * 4 + SVG_NodeTemplate_Parameter_Top ] );
setGraphPrimitivePositionCoord(
i, SVG_NodeTemplate_Parameter_Right,
primitive_ltrb[ i * 4 + SVG_NodeTemplate_Parameter_Right ] );
setGraphPrimitivePositionCoord(
i, SVG_NodeTemplate_Parameter_Bottom,
primitive_ltrb[ i * 4 + SVG_NodeTemplate_Parameter_Bottom ] );
}
}
if( ret )
{
pCurNode = GetFirstChild();
i = 0;
while( pCurNode )
{
((CFrameNode*) pCurNode)->setLeftIndent( frames_margin_ltrb[ i * 4 + SVG_NodeTemplate_Parameter_Left ] );
((CFrameNode*) pCurNode)->setTopIndent( frames_margin_ltrb[ i * 4 + SVG_NodeTemplate_Parameter_Top ] );
((CFrameNode*) pCurNode)->setRightIndent( frames_margin_ltrb[ i * 4 + SVG_NodeTemplate_Parameter_Right ] );
((CFrameNode*) pCurNode)->setBottomIndent( frames_margin_ltrb[ i * 4 + SVG_NodeTemplate_Parameter_Bottom ] );
pCurNode = pCurNode->GetNext();
i++;
}
RecalculateSizeChild();
}
return ret;
}
示例4: InsertMMLFormulaNode_MTABLE
CFormulaNode* CLineNode::InsertMMLFormulaNode_MTABLE( AST_TXML_Tag *node )
{
FXmlBtn *ptrFXmlBtn = 0;
long _toolbar_no = -1, _button_no = -1, cb = 0;
CFormulaNode *new_node = 0;
CFrameNode *pFrameNode = 0;
//CLineNode *parent_line = 0;
CNode *pCurNode = 0;
std::vector<long> line_length;
AST_TXML_Compound *stmt = 0;
if( ::mml_is_table_tag_correct( node, line_length ) )
{
long i, j, nColumn = 0, nRow = (long) line_length.size();
for( i = 0; i < nRow; i++ )
if( line_length[ i ] > nColumn ) nColumn = line_length[ i ];
if( nRow <= 0 && nColumn <= 0 )
return 0; // error: Internal error
if( ::getCurrentToolBarSet()->getButtonCoordByID( QString(HF_BTNID_DEFAULT_TABLE_ASK_X_ASK), _toolbar_no, _button_no ) == -1 )
return 0; // error: Error encountered: HF table formula is absent
ptrFXmlBtn = ::getCurrentToolBarSet()->getButtonCalc( _toolbar_no, _button_no );
if( !ptrFXmlBtn )
return 0; // error: Internal error
if( ptrFXmlBtn->getNodeType() != NODE_FORMULA )
return 0; // error: Error encountered: HF table formula has a wrong format
if( ptrFXmlBtn->isPropertyInput( FBL_ATTR_rows ) )
ptrFXmlBtn->setRows( nRow );
if( ptrFXmlBtn->isPropertyInput( FBL_ATTR_columns ) )
ptrFXmlBtn->setColumns( nColumn );
new_node = CreateFormulaNode( *ptrFXmlBtn );
if( !new_node || new_node->GetChildCount() != nRow * nColumn )
return 0; // error: Internal error
pFrameNode = (CFrameNode*)GetFrameNode();
if( pFrameNode ) new_node->SetLevel( pFrameNode->GetLevel() );
// read attributes
InsertMMLFormulaNode_MTABLE_readAttr( node, new_node );
AddChild( new_node );
pCurNode = new_node->GetFirstChild();
cb = 0;
for( i = 0; i < nRow; i++ )
{
for( j = 0; j < nColumn; j++ )
{
if( !pCurNode ) return 0; // error: Internal error
if( pCurNode->GetType() == NODE_FRAME )
{
stmt = mml_get_table_tag_cell( node, i, j );
pCurNode->read_mathml( stmt );
if( ((CFrameNode*)pCurNode)->GetChildCount() > 1 &&
((CFrameNode*)pCurNode)->GetFirstChild() )
((CFrameNode*)pCurNode)->DeleteChild( ((CFrameNode*)pCurNode)->GetFirstChild() );
}
pCurNode = pCurNode->GetNext();
}
}
}
return new_node;
}
示例5: InsertMMLFormulaNode_OTHERS
CFormulaNode* CLineNode::InsertMMLFormulaNode_OTHERS( FXmlBtn *ptrFXmlBtn, AST_TXML_Tag *node, int is_hidden )
{
long cb = 0;
CFormulaNode *new_node = 0/*, *box_node = 0, *child_node = 0*/;
CFrameNode *pFrameNode = 0;
//CLineNode *parent_line = 0;
CNode *pCurNode = 0;
if( !ptrFXmlBtn )
return NULL; // error: Internal error
// if( !node->getTags() || node->getTags()->getChildNumber() == 0 )
// return NULL; //error: Error encountered and repaired: Too few Child node->getTagName() in node
if( ptrFXmlBtn->getNodeType() == NODE_FORMULA )
{
new_node = CreateFormulaNode( *ptrFXmlBtn );
if( !new_node ) return NULL; // error: Internal error
AST_TXML_Attribute *colorAttr = node->getAttribute( FBL_ATTR_color );
QColor grPrimColor = QColor(0, 0, 0);
if( colorAttr &&
::mml_mathcolor2color( colorAttr->getStringValue(), grPrimColor, QColor(0, 0, 0) ) == 0 )
{
new_node->setLineColor( grPrimColor );
}
pFrameNode = (CFrameNode *)GetFrameNode();
if( pFrameNode ) new_node->SetLevel( pFrameNode->GetLevel() );
AddChild( new_node );
if( node->getTags() && node->getTags()->getChildNumber() > 0 )
{
if( new_node->GetChildCount() < node->getTags()->getChildNumber() )
{ //error: Error encountered and repaired: Too many Child node->getTagName() in node
//delete new_node;
//return;
if( xml_strcmp( node->getTagName(), FBL_TAG_merror ) )
{
QString mess = _T("Too many children in ") + node->getTagName();
InsertMMLFormulaNode_MERROR( mess );
}
}
if( new_node->GetChildCount() > node->getTags()->getChildNumber() )
{ //error: Error encountered and repaired: Too few Child node->getTagName() in node
//delete new_node;
//return;
if( xml_strcmp( node->getTagName(), FBL_TAG_merror ) )
{
QString mess = _T("Too few children in ") + node->getTagName();
InsertMMLFormulaNode_MERROR( mess );
}
}
pCurNode = new_node->GetFirstChild();
cb = 0;
while( pCurNode && cb < new_node->GetChildCount() && cb < node->getTags()->getChildNumber() )
{
if( pCurNode->GetType() == NODE_FRAME &&
node->getTags()->getChild( cb ) &&
node->getTags()->getChild( cb )->getNodeType() == ASTT_TXML_Tag )
{
if( ((CFrameNode*)pCurNode)->GetFirstChild() )
((CFrameNode*)pCurNode)->DeleteChild( ((CFrameNode*)pCurNode)->GetFirstChild() );
pCurNode->read_mathml( (AST_TXML_Tag*)node->getTags()->getChild( cb ) );
}
pCurNode = pCurNode->GetNext();
cb++;
}
}
}
if( new_node && is_hidden )
new_node->setHidden();
return new_node;
}