本文整理汇总了C++中Base::GetMargin方法的典型用法代码示例。如果您正苦于以下问题:C++ Base::GetMargin方法的具体用法?C++ Base::GetMargin怎么用?C++ Base::GetMargin使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Base
的用法示例。
在下文中一共展示了Base::GetMargin方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: MoveTo
void Base::MoveTo( int x, int y )
{
if ( m_bRestrictToParent && GetParent() )
{
Base* pParent = GetParent();
if ( x - GetPadding().left < pParent->GetMargin().left ) x = pParent->GetMargin().left + GetPadding().left;
if ( y - GetPadding().top < pParent->GetMargin().top ) y = pParent->GetMargin().top + GetPadding().top;
if ( x + Width() + GetPadding().right > pParent->Width() - pParent->GetMargin().right ) x = pParent->Width() - pParent->GetMargin().right - Width() - GetPadding().right;
if ( y + Height() + GetPadding().bottom > pParent->Height() - pParent->GetMargin().bottom ) y = pParent->Height() - pParent->GetMargin().bottom - Height() - GetPadding().bottom;
}
SetBounds(x, y, Width(), Height());
}
示例2: RecurseLayout
void Base::RecurseLayout( Skin::Base* skin )
{
if ( m_Skin ) { skin = m_Skin; }
if ( Hidden() ) { return; }
if ( NeedsLayout() )
{
m_bNeedsLayout = false;
Layout( skin );
}
Gwen::Rect rBounds = GetRenderBounds();
// Adjust bounds for padding
rBounds.x += m_Padding.left;
rBounds.w -= m_Padding.left + m_Padding.right;
rBounds.y += m_Padding.top;
rBounds.h -= m_Padding.top + m_Padding.bottom;
for ( Base::List::iterator iter = Children.begin(); iter != Children.end(); ++iter )
{
Base* pChild = *iter;
if ( pChild->Hidden() )
{ continue; }
int iDock = pChild->GetDock();
if ( iDock & Pos::Fill )
{ continue; }
if ( iDock & Pos::Top )
{
const Margin & margin = pChild->GetMargin();
pChild->SetBounds( rBounds.x + margin.left, rBounds.y + margin.top, rBounds.w - margin.left - margin.right, pChild->Height() );
int iHeight = margin.top + margin.bottom + pChild->Height();
rBounds.y += iHeight;
rBounds.h -= iHeight;
}
if ( iDock & Pos::Left )
{
const Margin & margin = pChild->GetMargin();
pChild->SetBounds( rBounds.x + margin.left, rBounds.y + margin.top, pChild->Width(), rBounds.h - margin.top - margin.bottom );
int iWidth = margin.left + margin.right + pChild->Width();
rBounds.x += iWidth;
rBounds.w -= iWidth;
}
if ( iDock & Pos::Right )
{
// TODO: THIS MARGIN CODE MIGHT NOT BE FULLY FUNCTIONAL
const Margin & margin = pChild->GetMargin();
pChild->SetBounds( ( rBounds.x + rBounds.w ) - pChild->Width() - margin.right, rBounds.y + margin.top, pChild->Width(), rBounds.h - margin.top - margin.bottom );
int iWidth = margin.left + margin.right + pChild->Width();
rBounds.w -= iWidth;
}
if ( iDock & Pos::Bottom )
{
// TODO: THIS MARGIN CODE MIGHT NOT BE FULLY FUNCTIONAL
const Margin & margin = pChild->GetMargin();
pChild->SetBounds( rBounds.x + margin.left, ( rBounds.y + rBounds.h ) - pChild->Height() - margin.bottom, rBounds.w - margin.left - margin.right, pChild->Height() );
rBounds.h -= pChild->Height() + margin.bottom + margin.top;
}
pChild->RecurseLayout( skin );
}
m_InnerBounds = rBounds;
//
// Fill uses the left over space, so do that now.
//
for ( Base::List::iterator iter = Children.begin(); iter != Children.end(); ++iter )
{
Base* pChild = *iter;
int iDock = pChild->GetDock();
if ( !( iDock & Pos::Fill ) )
{ continue; }
const Margin & margin = pChild->GetMargin();
pChild->SetBounds( rBounds.x + margin.left, rBounds.y + margin.top, rBounds.w - margin.left - margin.right, rBounds.h - margin.top - margin.bottom );
pChild->RecurseLayout( skin );
}
PostLayout( skin );
if ( IsTabable() && !IsDisabled() )
{
if ( !GetCanvas()->FirstTab ) { GetCanvas()->FirstTab = this; }
if ( !GetCanvas()->NextTab ) { GetCanvas()->NextTab = this; }
}
if ( Gwen::KeyboardFocus == this )
{
GetCanvas()->NextTab = NULL;
}
//.........这里部分代码省略.........