本文整理汇总了C++中UIElement::get_DesiredSize方法的典型用法代码示例。如果您正苦于以下问题:C++ UIElement::get_DesiredSize方法的具体用法?C++ UIElement::get_DesiredSize怎么用?C++ UIElement::get_DesiredSize使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类UIElement
的用法示例。
在下文中一共展示了UIElement::get_DesiredSize方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: MeasureOverride
// virtual
LDraw::SizeD DockPanel::MeasureOverride(LDraw::SizeD availSize)
{
LDraw::BBoxD layoutRect(0, 0, availSize.Width, availSize.Height);
double minWidth = 0;
double minHeight = 0;
double totalWidth = 0;
double totalHeight = 0;
unsigned int ncount = get_InternalChildren()->GetCount();
#if 0
for (unsigned int i = 0; i < ncount; i++)
{
UIElement* pVisual = get_InternalChildren()->GetItem(i);//(*get_rchildList())[i];
// TODO remove this
// pVisual->SetRParent(this);
}
#endif
for (unsigned int i = 0; i < ncount; i++)
{
UIElement* pVisual = get_InternalChildren()->get_Item(i);//(*get_rchildList())[i];
ASSERT(pVisual->GetRParent() == this);
if (pVisual->get_Visibility() != Collapsed)
{
DockEnum dock = GetDock(pVisual);
if (dock == Fill || ((i == ncount-1) && get_LastChildFill()))
{
pVisual->Measure(LDraw::SizeD(layoutRect.GetWidth(), layoutRect.GetHeight()));
totalWidth += pVisual->get_DesiredSize().Width;
totalHeight += pVisual->get_DesiredSize().Height;
break;
}
else if (dock == Left)
{
pVisual->Measure(LDraw::SizeD(0, layoutRect.GetHeight()));
layoutRect.left += pVisual->get_DesiredSize().Width;
totalWidth += pVisual->get_DesiredSize().Width;
// totalHeight = max(totalHeight, pVisual->m_desiredHeight);
minHeight = MAX(minHeight, pVisual->get_DesiredSize().Height);
}
else if (dock == Top)
{
pVisual->Measure(LDraw::SizeD(layoutRect.GetWidth(), 0));
layoutRect.top += pVisual->get_DesiredSize().Height;
totalHeight += pVisual->get_DesiredSize().Height;
// totalWidth = max(totalWidth, pVisual->m_desiredWidth);
minWidth = MAX(minWidth, pVisual->get_DesiredSize().Width);
}
else if (dock == Right)
{
pVisual->Measure(LDraw::SizeD(0, layoutRect.GetHeight()));
layoutRect.right -= pVisual->get_DesiredSize().Width;
totalWidth += pVisual->get_DesiredSize().Width;
// totalHeight = max(totalHeight, pVisual->m_desiredHeight);
minHeight = MAX(minHeight, pVisual->get_DesiredSize().Height);
}
else if (dock == Bottom)
{
pVisual->Measure(LDraw::SizeD(layoutRect.GetWidth(), 0));
layoutRect.bottom -= pVisual->get_DesiredSize().Height;
totalHeight += pVisual->get_DesiredSize().Height;
// totalWidth = max(totalWidth, pVisual->m_desiredWidth);
minWidth = MAX(minWidth, pVisual->get_DesiredSize().Width);
}
else
ASSERT(0);
// pVisual->SetLayoutOffset(fLeft, fTop);
// pVisual->Arrange(LDraw::SizeF(pVisual->m_computedWidth, pVisual->m_computedHeight));
/*
if (dock == Fill ||
layoutRect.GetWidth() <= 0 ||
layoutRect.GetHeight() <= 0)
{
break;
}
*/
}
}
return LDraw::SizeD(MAX(minWidth, totalWidth), MAX(minHeight, totalHeight));
}
示例2: OnArrange
void TreeItem::OnArrange(LDraw::SizeD finalSize)
{
m_ExpandButton->Arrange(LDraw::RectD(LDraw::PointD(0, 0), m_ExpandButton->get_DesiredSize()/*LDraw::SizeD(1, 14)*/));
//m_ExpandButton->SetLayoutOffset(0, 0);
// pCell->m_computedLeft = x;
double height = m_ExpandButton->m_computedSize.Height;
double x = m_ExpandButton->m_computedSize.Width;
if (m_Span)
{
m_Span->Arrange(LDraw::RectD(x, 0, finalSize.Width-x, height/*m_Span->get_DesiredSize().Height*/));
//m_Span->SetLayoutOffset(x, 0);
m_Span->m_computedLeft = x;
height = MAX(height, m_Span->get_ActualSize().Height);
}
if (m_cells.GetSize())
{
double totalWidth = m_ownerCtl->get_ActualSize().Width;
{
ColumnHeader* pColumn = m_ownerCtl->get_ColumnHeaderList()->m_columns[0];
// if (pColumn->get_Visibility() != Collapsed)
totalWidth -= pColumn->get_ActualSize().Width;
}
for (int i = 0; i < m_cells.GetSize(); i++)
{
ColumnHeader* pColumn = m_ownerCtl->get_ColumnHeaderList()->m_columns[i];
UIElement* pCell = m_cells[i];
double columnWidth;
if (pColumn->get_Visibility() != Collapsed)
{
if (i == 0)
columnWidth = finalSize.Width - totalWidth - 16;
else
columnWidth = pColumn->get_ActualSize().Width;
}
else
columnWidth = 0;
pCell->Arrange(LDraw::RectD(x, 0, columnWidth/*pCell->m_availSize.Width*/, pCell->get_DesiredSize().Height));
//pCell->SetLayoutOffset(x, 0);
pCell->m_computedLeft = x;
if (pColumn->get_Visibility() != Collapsed)
{
height = MAX(height, pCell->get_ActualSize().Height);
}
x += columnWidth;
}
}
#if 0
m_Button->m_expandedBBox.Width = finalSize.Width;
m_Button->m_expandedBBox.Height = finalSize.Height;
#endif
// m_VisualTree->Arrange(finalSize);
//Control::OnArrange(finalSize);
if (m_Children)
{
//double x, y;
if (m_Children->get_Visibility() != Collapsed)
{
//m_Children->SetLayoutOffset(16, height);
// x = 16;
// y = height;
//m_Children->m_transformMatrix *= gmMatrix3::translate(16, 0);
m_Children->Arrange(LDraw::RectD(16, height, finalSize.Width-16, m_Children->get_DesiredSize().Height));
}
}
}
示例3: ArrangeOverride
// virtual
LDraw::SizeD DockPanel::ArrangeOverride(LDraw::SizeD finalSize)
{
LDraw::BBoxD layoutRect(0, 0, finalSize.Width, finalSize.Height);
unsigned int ncount = get_InternalChildren()->GetCount();//get_rchildList()->get_Size();
for (unsigned int i = 0; i < ncount; i++)
{
UIElement* pVisual = get_InternalChildren()->get_Item(i);//(*get_rchildList())[i];
if (pVisual->get_Visibility() != Collapsed)
{
// long dockValue;
DockEnum dock = GetDock(pVisual);
ASSERT(pVisual->get_DesiredSize().Width >= 0 && pVisual->get_DesiredSize().Height >= 0);
// double fLeft;
// double fTop;
if (dock == Fill || ((i == ncount-1) && get_LastChildFill()))
{
pVisual->Arrange(layoutRect);//LDraw::RectD(layoutRect.GetWidth(), layoutRect.GetHeight()));
// fLeft = layoutRect.left;
// fTop = layoutRect.top;
}
else if (dock == Left)
{
pVisual->Arrange(LDraw::RectD(layoutRect.left, layoutRect.top, pVisual->get_DesiredSize().Width, layoutRect.GetHeight()));
// fLeft = layoutRect.left;
// fTop = layoutRect.top;
layoutRect.left += pVisual->get_ActualSize().Width;
}
else if (dock == Top)
{
pVisual->Arrange(LDraw::RectD(layoutRect.left, layoutRect.top, layoutRect.GetWidth(), pVisual->get_DesiredSize().Height));
// fLeft = layoutRect.left;
// fTop = layoutRect.top;
layoutRect.top += pVisual->get_ActualSize().Height;
}
else if (dock == Right)
{
pVisual->Arrange(LDraw::RectD(layoutRect.right - pVisual->get_DesiredSize().Width, layoutRect.top, pVisual->get_DesiredSize().Width, layoutRect.GetHeight()));
// fLeft = layoutRect.right - pVisual->get_ActualSize().Width;
// fTop = layoutRect.top;
layoutRect.right -= pVisual->get_ActualSize().Width;
}
else if (dock == Bottom)
{
pVisual->Arrange(LDraw::RectD(layoutRect.left, layoutRect.bottom - pVisual->get_DesiredSize().Height, layoutRect.GetWidth(), pVisual->get_DesiredSize().Height));
// fLeft = layoutRect.left;
// fTop = layoutRect.bottom - pVisual->get_ActualSize().Height;
layoutRect.bottom -= pVisual->get_ActualSize().Height;
}
else
ASSERT(0);
// pVisual->SetLayoutOffset(fLeft, fTop);
if (dock == Fill ||
layoutRect.GetWidth() <= 0 ||
layoutRect.GetHeight() <= 0)
{
break;
}
}
}
return finalSize;
}
示例4: OnMeasure
LDraw::SizeD TreeItem::OnMeasure(LDraw::SizeD availSize)
{
double height = 0;
double width = 0;
if (true)//m_Button->get_Visibility() != Collapsed)
{
// m_Button->Measure(LDraw::SizeD(availSize.Width, 0));
// height = MAX(height, m_Button->m_desiredSize.Height);
m_ExpandButton->Measure(LDraw::SizeD(0, 0));
height = m_ExpandButton->get_DesiredSize().Height;
/*
double totalWidth = m_ownerCtl->get_ActualSize().Width;
{
ColumnHeader* pColumn = m_ownerCtl->get_ColumnHeaderList()->m_columns[0];
// if (pColumn->get_Visibility() != Collapsed)
totalWidth -= pColumn->get_ActualSize().Width;
}
*/
if (m_Span)
{
m_Span->Measure(LDraw::SizeD(0, 0)); // TODO??
}
for (int i = 0; i < m_cells.GetSize(); i++)
{
ColumnHeader* pColumn = m_ownerCtl->get_ColumnHeaderList()->m_columns[i];
UIElement* pCell = m_cells[i];
double columnWidth;
if (pColumn->get_Visibility() != Collapsed)
{
/*
if (i == 0)
columnWidth = availSize.Width - totalWidth - 16;
else
*/
columnWidth = pColumn->get_ActualSize().Width;
}
else
{
columnWidth = 0;
}
pCell->Measure(LDraw::SizeD(0/*columnWidth-16*/, 0));
if (pColumn->get_Visibility() != Collapsed)
{
height = MAX(height, pCell->get_DesiredSize().Height);
}
}
width = MAX(width, m_ExpandButton->get_DesiredSize().Width);
}
if (m_Children)
{
if (m_Children->get_Visibility() != Collapsed)
{
m_Children->Measure(LDraw::SizeD(availSize.Width-16, availSize.Height - height));
height += m_Children->get_DesiredSize().Height;
width = MAX(width, m_Children->get_DesiredSize().Width+16);
}
}
return LDraw::SizeD(width, height);
}