本文整理汇总了C++中View::GetPreferredSize方法的典型用法代码示例。如果您正苦于以下问题:C++ View::GetPreferredSize方法的具体用法?C++ View::GetPreferredSize怎么用?C++ View::GetPreferredSize使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类View
的用法示例。
在下文中一共展示了View::GetPreferredSize方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: GetPreferredSize
gfx::Size BoxLayout::GetPreferredSize(View* host)
{
gfx::Rect bounds;
int position = 0;
for(int i=0; i<host->GetChildViewCount(); ++i)
{
View* child = host->GetChildViewAt(i);
if(child->IsVisible())
{
gfx::Size size(child->GetPreferredSize());
if(orientation_ == kHorizontal)
{
gfx::Rect child_bounds(position, 0, size.width(), size.height());
bounds = bounds.Union(child_bounds);
position += size.width();
}
else
{
gfx::Rect child_bounds(0, position, size.width(), size.height());
bounds = bounds.Union(child_bounds);
position += size.height();
}
position += between_child_spacing_;
}
}
gfx::Insets insets(host->GetInsets());
return gfx::Size(
bounds.width()+insets.width()+2*inside_border_horizontal_spacing_,
bounds.height()+insets.height()+2*inside_border_vertical_spacing_);
}
示例2: GetPreferredSize
gfx::Size SingleSplitView::GetPreferredSize()
{
int width = 0;
int height = 0;
for(int i=0; i<2&&i<GetChildViewCount(); ++i)
{
View* view = GetChildViewAt(i);
gfx::Size pref = view->GetPreferredSize();
if(is_horizontal_)
{
width += pref.width();
height = std::max(height, pref.height());
}
else
{
width = std::max(width, pref.width());
height += pref.height();
}
}
if(is_horizontal_)
{
width += kDividerSize;
}
else
{
height += kDividerSize;
}
return gfx::Size(width, height);
}
示例3: Layout
void BoxLayout::Layout(View* host)
{
gfx::Rect childArea(gfx::Rect(host->size()));
childArea.Inset(host->GetInsets());
childArea.Inset(inside_border_horizontal_spacing_,
inside_border_vertical_spacing_);
int x = childArea.x();
int y = childArea.y();
for(int i=0; i<host->GetChildViewCount(); ++i)
{
View* child = host->GetChildViewAt(i);
if(child->IsVisible())
{
gfx::Rect bounds(x, y, childArea.width(), childArea.height());
gfx::Size size(child->GetPreferredSize());
if(orientation_ == kHorizontal)
{
bounds.set_width(size.width());
x += size.width() + between_child_spacing_;
}
else
{
bounds.set_height(size.height());
y += size.height() + between_child_spacing_;
}
// Clamp child view bounds to |childArea|.
child->SetBounds(bounds.Intersect(childArea));
}
}
}
示例4: Size
virtual gfx::Size GetPreferredSize(View* host)
{
// First, query the preferred sizes to determine a good width.
int width = 0;
for(int i=0; i<host->child_count(); ++i)
{
View* page = host->child_at(i);
width = std::max(width, page->GetPreferredSize().width());
}
// After we know the width, decide on the height.
return gfx::Size(width, GetPreferredHeightForWidth(host, width));
}