本文整理汇总了C++中CNode::GetSize方法的典型用法代码示例。如果您正苦于以下问题:C++ CNode::GetSize方法的具体用法?C++ CNode::GetSize怎么用?C++ CNode::GetSize使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CNode
的用法示例。
在下文中一共展示了CNode::GetSize方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: getAscent
RealFde CFormulaNode::getAscent( const SizeFde &sz )
{
RealFde vc = sz.height() / 2.0;
switch( getAlignmentType() )
{
case FBtnChildPos::TableCenter2Baseline:
if( (getAlignmentValue() - 1) >= 0 && (getAlignmentValue() - 1) < GetChildCount() )
{
CNode *pNode = GetChild( getAlignmentValue() - 1 );
if( pNode != NULL )
vc = pNode->GetPosition().y() + pNode->GetSize().height() / 2.0;
}
break;
case FBtnChildPos::TableTop2Baseline:
if( (getAlignmentValue() - 1) >= 0 && (getAlignmentValue() - 1) < GetChildCount() )
{
CNode *pNode = GetChild( getAlignmentValue() - 1 );
if( pNode != NULL )
vc = pNode->GetPosition().y();
else
vc = 0.0;
}
else
vc = 0.0;
break;
case FBtnChildPos::TableBottom2Baseline:
if( (getAlignmentValue() - 1) >= 0 && (getAlignmentValue() - 1) < GetChildCount() )
{
CNode *pNode = GetChild( getAlignmentValue() - 1 );
if( pNode != NULL )
vc = pNode->GetPosition().y() + pNode->GetSize().height();
else
vc = sz.height();
}
else
vc = sz.height();
break;
default:
vc = sz.height() - ::calculateCurrentTextDescent( GetLevel() );
break;
}
return vc;
}
示例2: Draw
int CFormulaNode::Draw( CFmlDrawEngine& fde, const PointFde& tl, const RectFde& rc )
{
QString _mathbackground = getMathMLAttr().getFilteredAttr( FBL_ATTR_mathbackground );
if( isHidden() || to_mathml_data.name == FBL_TAG_mstyle )
{
if( _mathbackground.length() )
{
QColor dest_bkcolor;
QString backcolor_str = _mathbackground;
int rr = ::mml_mathcolor2color( backcolor_str, dest_bkcolor, QColor(0, 0, 0) );
if( rr != -1 )
{
// Paint the background
fde.FillRectangle( tl.x(), tl.y(), GetSize().width(), GetSize().height(), FS_LogBrush(dest_bkcolor, Qt::SolidPattern) );
}
}
if( isHidden() )
return 0;
}
if( !isFrameHidden() )
{
// draw child items
RectFde rcItem;
CNode *pNode = NULL;
for( long i = 0; i < GetChildCount(); i++ )
{
pNode = GetChild( i );
PointFde res = tl + pNode->GetPosition();
rcItem.setLeft( res.x() );
rcItem.setRight( rcItem.left() + pNode->GetSize().width() );
rcItem.setTop( res.y() );
rcItem.setBottom( rcItem.top() + pNode->GetSize().height() );
if( rcItem.left() > rc.right() || rcItem.top() > rc.bottom() || rcItem.right() < rc.left() || rcItem.bottom() < rc.top() )
continue;
pNode->Draw( fde, PointFde( rcItem.left(), rcItem.top() ), rc );
}
}
// draw graph primitives
CNodeExInfo_GraphPrimitive::Draw( fde, tl, this );
return 1;
}
示例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: Recalculate_VerticalCenter
void CFormulaNode::Recalculate_VerticalCenter( const SizeFde &sz )
{
RealFde vc = sz.height() / 2.0;
switch( getAlignmentType() )
{
case FBtnChildPos::Child:
if( getAlignmentValue() >= 1 && (getAlignmentValue() - 1) < getGraphPrimNumber() )
{
const RectFde& _t = getGraphPrimitivePositionRect( getAlignmentValue() - 1 );
vc = (_t.top() + _t.bottom()) / 2.0;
}
break;
case FBtnChildPos::Child_Average:
if( getAlignmentValue() >= 1 && (getAlignmentValue() - 1) < getGraphPrimNumber() )
{
vc = 0.0;
for( long i = 0; i <= getAlignmentValue() - 1; i++ )
{
const RectFde& _t = getGraphPrimitivePositionRect( i );
vc += _t.top() + _t.bottom();
}
vc = vc / (getAlignmentValue() * 2.0);
}
break;
case FBtnChildPos::MSPACE_Exact_HeightDepth:
case FBtnChildPos::Frame:
if( (getAlignmentValue() - 1) >= 0 && (getAlignmentValue() - 1) < GetChildCount() )
{
CNode *pNode = GetChild( getAlignmentValue() - 1 );
if( pNode )
vc = pNode->GetPosition().y() + pNode->GetVerticalCenter();
}
break;
case FBtnChildPos::Frame_Blank_Average:
{
CNode *pNodeFirst = GetFirstChild();
CNode *pNodeLast = GetLastChild();
if( pNodeFirst != NULL && pNodeLast != NULL )
{
vc = (pNodeFirst->GetPosition().y() + pNodeFirst->GetSize().height() + pNodeLast->GetPosition().y()) / 2.0;
}
}
break;
case FBtnChildPos::Half:
break;
case FBtnChildPos::TableAxis:
if( (getAlignmentValue() - 1) >= 0 && (getAlignmentValue() - 1) < GetChildCount() )
{
CNode *pNode = GetChild( getAlignmentValue() - 1 );
if( pNode )
vc = pNode->GetPosition().y() + pNode->GetSize().height() / 2.0;
}
break;
case FBtnChildPos::TableCenter2Baseline:
case FBtnChildPos::TableTop2Baseline:
case FBtnChildPos::TableBottom2Baseline:
{
RealFde asc = ::getCurrentDefaultAscent( GetLevel() );
RealFde h = ::getCurrentDefaultSize( GetLevel() ).height();
vc = getAscent( sz ) - asc + h - asc / 2.0;
}
break;
default:
break;
}
SetVerticalCenter( vc );
}