Пример #1
0
QWidget*
GUIBuilder::addVerticalLayout(model::gui::VerticalLayout *root, QWidget *parent)
{
    QWidget* widget = new QWidget(parent);
    doVerticalLayout( root, widget );
    return widget;
}
Пример #2
0
QWidget*
GUIBuilder::addElementGroup(model::gui::ElementGroup *root, QWidget *parent)
{
    QGroupBox* widget = new QGroupBox( parent );
    //widget->setFlat( true );

    const std::string key = root->key();
    if( root->showLabel() && !root->key().empty() ) {
        widget->setTitle( (prettyName( root->key(), m_model ) ).c_str() );
    }

    model::gui::Element* child = root->child();
    if( child != NULL ) {
        if( child->type() == model::gui::GRID ) {
            doGridLayout( static_cast<model::gui::Grid*>( child ), widget );
        }
        else if( child->type() == model::gui::HORIZONTAL_LAYOUT ) {
            doHorizontalLayout( static_cast<model::gui::HorizontalLayout*>( child ), widget );
        }
        else if( child->type() == model::gui::VERTICAL_LAYOUT ) {
            doVerticalLayout( static_cast<model::gui::VerticalLayout*>( child ), widget );
        }
        else {
            QHBoxLayout* layout = new QHBoxLayout( widget );
            widget->setLayout( layout );
            addChildren( static_cast<model::gui::Container0D<model::gui::Element>*>( root ),
                         widget,
                         layout );
        }
    }
    return widget;
}
std::string _test_vertical_layout() {
	struct LayoutProperties layoutProperties;
	layoutPropertiesInitialize(&layoutProperties);
	struct Element* e1 = createElement(composite); // Device - top level window
	layoutProperties.width.valueType = fill;
	layoutProperties.width.value = NAN;
	layoutProperties.height.valueType = fill;
	layoutProperties.height.value = NAN;
	struct Element* e2 = createElement(composite);
	measureNodeForVerticalLayout(layoutProperties, e2);
	layoutProperties.width = {fixed, 100};
	layoutProperties.height = {fixed, 100};
	struct Element* e3 = createElement(composite);
	measureNodeForVerticalLayout(layoutProperties, e3);
	addChildElement(e1, e2);
	addChildElement(e2, e3);
	doVerticalLayout((*e1)._children, 449, 662, false, false);
	ut_assert("error, absolute position top e2", (*e3)._measuredTop == 281);
	ut_assert("error, absolute position left e2", (*e3)._measuredLeft == 174.5);
	ut_assert("error, absolute width e2", (*e3)._measuredWidth == 100);
	ut_assert("error, absolute height e2", (*e3)._measuredHeight == 100);
	ut_assert("error, absolute position top e3", (*e2)._measuredTop == 0);
	ut_assert("error, absolute position left e3", (*e2)._measuredLeft == 0);
	ut_assert("error, absolute position width e3", (*e2)._measuredWidth == 449);
	ut_assert("error, absolute position height e3", (*e2)._measuredHeight == 662);
	return "";
}