Пример #1
0
Dimension
FlowLayout::preferredLayoutSize(Widget *container)
{
  Dimension preferred_size(borders * 2 + padding, borders * 2 + padding);

  Widget::const_iterator widgetI = container->begin();
  while(widgetI != container->end()) {
    Widget *currentWidget = *widgetI;
    Dimension cpref = currentWidget->getPreferredSize();
    if(layout_orientation == VERTICAL) {
      int preferred_width = cpref.w + borders * 2 + padding * 2;
      if(preferred_width > preferred_size.w)
        preferred_size.w = preferred_width;
      preferred_size.h += cpref.h + padding;
    }
    else {
      int preferred_height = cpref.h + borders * 2 + padding * 2;
      if(preferred_height > preferred_size.h)
        preferred_size.h = preferred_height;
      preferred_size.w += cpref.w + padding;
    }
    ++widgetI;
  }
  return preferred_size;
}
Пример #2
0
static void init(grib_accessor* a, const long len, grib_arguments*arg )
{
	grib_accessor_pad* self = (grib_accessor_pad*)a;

	self->expression  = grib_arguments_get_expression(a->parent->h, arg,0);
	a->length         = preferred_size(a,1);
}