Point Grid::PreferredSize() { Point preferredSize; for (unsigned int rowNum = 0; rowNum < m_numRows; rowNum++) { Point rowSize; for (unsigned int colNum = 0; colNum < m_numCols; colNum++) { const unsigned int n = rowNum*m_numCols+colNum; Widget *w = m_widgets[n]; Point childPreferredSize; if (w) childPreferredSize = w->CalcLayoutContribution(); else childPreferredSize = Point(SIZE_EXPAND); rowSize.x = SizeAdd(childPreferredSize.x, rowSize.x); rowSize.y = std::max(childPreferredSize.y, rowSize.y); } preferredSize.x = std::max(preferredSize.x, rowSize.x); preferredSize.y = SizeAdd(preferredSize.y, rowSize.y); } return preferredSize; }
Point TextEntry::PreferredSize() { const Skin::BorderedRectElement &elem(GetContext()->GetSkin().BackgroundNormal()); const Point borderSize(elem.borderWidth*2, elem.borderHeight*2); Point preferredSize = SizeAdd(m_label->PreferredSize(), Point(elem.paddingX*2, elem.paddingY*2)); preferredSize.x = std::max(preferredSize.x, borderSize.x); preferredSize.y = std::max(preferredSize.y, borderSize.y); return preferredSize; }
Point Scroller::PreferredSize() { const Point sliderSize = m_slider->GetContainer() ? m_slider->PreferredSize() : Point(0); if (!m_innerWidget) return sliderSize; const Point innerWidgetSize = m_innerWidget->PreferredSize(); return Point(SizeAdd(innerWidgetSize.x, sliderSize.x), innerWidgetSize.y); }
void *CScanLexer::TokenMemAlloc (CSTOKEN *pToken, size_t iSize) { if (SizeAdd(iSize, m_iMemUsed) > (size_t)m_iMemSize) { size_t iRoundSize = SizeAdd(m_iMemUsed + iSize, 0x100) & ~(size_t)0xff; // Hard-coded growth by 256 byte blocks void *pMem = (m_pTokenMem == NULL) ? VSAlloc (iRoundSize) : VSRealloc (m_pTokenMem, iRoundSize); if (pMem == NULL) return NULL; m_pTokenMem = pMem; m_iMemSize = iRoundSize; } ASSERT (SizeAdd(m_iMemUsed, iSize) <= (size_t)m_iMemSize); void *pRet = ((BYTE *)m_pTokenMem + m_iMemUsed); m_iMemUsed += iSize; return pRet; }
Point Button::PreferredSize() { // child's preferred size Point preferredSize(Single::PreferredSize()); // grow to minimum size if necessary growToMinimum(preferredSize, GetContext()->GetSkin().ButtonMinInnerSize()); // add borders return SizeAdd(preferredSize, Point(GetContext()->GetSkin().ButtonNormal().borderWidth*2)); }
Point Grid::PreferredSize() { Point preferredSize; for (unsigned int rowNum = 0; rowNum < m_numRows; rowNum++) { Point rowSize; for (unsigned int colNum = 0; colNum < m_numCols; colNum++) { const unsigned int n = rowNum*m_numCols+colNum; Widget *w = m_widgets[n]; if (!w) continue; const Point childPreferredSize = w->PreferredSize(); rowSize.x = SizeAdd(childPreferredSize.x, rowSize.x); rowSize.y = std::max(childPreferredSize.y, rowSize.y); } preferredSize.x = std::max(preferredSize.x, rowSize.x); preferredSize.y = SizeAdd(preferredSize.y, rowSize.y); } return preferredSize; }
Point Button::PreferredSize() { // child's preferred size Point preferredSize(Single::PreferredSize()); // grow to minimum size if necessary growToMinimum(preferredSize, GetContext()->GetSkin().ButtonMinInnerSize()); // add padding const Skin::BorderedRectElement &elem(GetContext()->GetSkin().ButtonNormal()); preferredSize = SizeAdd(preferredSize, Point(elem.paddingX*2, elem.paddingY*2)); // grow to border size if necessary preferredSize.x = std::max(preferredSize.x, int(elem.borderWidth*2)); preferredSize.y = std::max(preferredSize.y, int(elem.borderHeight*2)); return preferredSize; }
Point Margin::PreferredSize() { Point extra; switch (m_direction) { case ALL: extra = Point(m_margin*2, m_margin*2); break; case HORIZONTAL: extra = Point(m_margin*2, 0); break; case VERTICAL: extra = Point(0, m_margin*2); break; case LEFT: case RIGHT: extra = Point(m_margin, 0); break; case TOP: case BOTTOM: extra = Point(0, m_margin); break; } if (!GetInnerWidget()) return extra; return SizeAdd(GetInnerWidget()->CalcLayoutContribution(), extra); }
Point TextEntry::PreferredSize() { const Point labelPreferredSize(m_label->PreferredSize()); const Point borderSize(GetContext()->GetSkin().BackgroundNormal().borderWidth*2); return SizeAdd(labelPreferredSize, borderSize); }
Point Margin::PreferredSize() { if (!GetInnerWidget()) return Point(m_margin*2.0f); return SizeAdd(GetInnerWidget()->CalcLayoutContribution(), Point(m_margin*2.0f)); }