Beispiel #1
0
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;
}
Beispiel #2
0
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;
}
Beispiel #3
0
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;
}
Beispiel #5
0
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));
}
Beispiel #6
0
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;
}
Beispiel #7
0
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;
}
Beispiel #8
0
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);
}
Beispiel #9
0
Point TextEntry::PreferredSize()
{
	const Point labelPreferredSize(m_label->PreferredSize());
	const Point borderSize(GetContext()->GetSkin().BackgroundNormal().borderWidth*2);
	return SizeAdd(labelPreferredSize, borderSize);
}
Beispiel #10
0
Point Margin::PreferredSize()
{
	if (!GetInnerWidget()) return Point(m_margin*2.0f);
	return SizeAdd(GetInnerWidget()->CalcLayoutContribution(), Point(m_margin*2.0f));
}