TextView::TextView() : Widget() { fontID = FONT_STD12; textcolor = -1; textshadowcolor = -1; backgroundcolor = 0; alignment = (Alignment_Enum) (Alignment_Left | Alignment_Top); pForeground = NULL; pBackground = NULL; bAutohideScrollbar = true; enableResizing(true,true); resize(getMinimumSize().x,getMinimumSize().y); }
PanelSizes fittedInto (int totalSpace) const { PanelSizes newSizes (*this); const int num = newSizes.sizes.size(); totalSpace = jmax (totalSpace, getMinimumSize (0, num)); newSizes.stretchRange (0, num, totalSpace - newSizes.getTotalSize (0, num), stretchAll); return newSizes; }
PanelSizes withMovedPanel (const int index, int targetPosition, int totalSpace) const { const int num = sizes.size(); totalSpace = jmax (totalSpace, getMinimumSize (0, num)); targetPosition = jmax (targetPosition, totalSpace - getMaximumSize (index, num)); PanelSizes newSizes (*this); newSizes.stretchRange (0, index, targetPosition - newSizes.getTotalSize (0, index), stretchLast); newSizes.stretchRange (index, num, totalSpace - newSizes.getTotalSize (0, index) - newSizes.getTotalSize (index, num), stretchFirst); return newSizes; }
DropDownBox::DropDownBox() : Widget() { enableResizing(true,false); numVisibleEntries = 7; color = -1; bHover = false; updateButtonSurface(); openListBoxButton.setOnClick(std::bind(&DropDownBox::onOpenListBoxButton, this)); listBox.setOnSelectionChange(std::bind(&DropDownBox::onSelectionChange, this, std::placeholders::_1)); pBackground = NULL; pForeground = NULL; pActiveForeground = NULL; bShowListBox = false; bListBoxAbove = false; bAutocloseListBoxOnSelectionChange = true; bOnClickEnabled = true; resize(getMinimumSize().x,getMinimumSize().y); }
void BoundaryItem::alignItemSizeToRaster(IResizable::Side adjust_horizontal_side, IResizable::Side adjust_vertical_side, double raster_width, double raster_height) { QPointF pos = _boundary->getPos(); QRectF rect = _boundary->getRect(); double horiz_delta = rect.width() - qRound(rect.width() / raster_width) * raster_width; double vert_delta = rect.height() - qRound(rect.height() / raster_height) * raster_height; // make sure the new size is at least the minimum size QSizeF minimum_size = getMinimumSize(); while (rect.width() + horiz_delta < minimum_size.width()) { horiz_delta += raster_width; } while (rect.height() + vert_delta < minimum_size.height()) { vert_delta += raster_height; } double left_delta = 0.0; double right_delta = 0.0; double top_delta = 0.0; double bottom_delta = 0.0; switch (adjust_horizontal_side) { case IResizable::SIDE_NONE: break; case IResizable::SIDE_LEFT_OR_TOP: left_delta = horiz_delta; break; case IResizable::SIDE_RIGHT_OR_BOTTOM: right_delta = -horiz_delta; break; } switch (adjust_vertical_side) { case IResizable::SIDE_NONE: break; case IResizable::SIDE_LEFT_OR_TOP: top_delta = vert_delta; break; case IResizable::SIDE_RIGHT_OR_BOTTOM: bottom_delta = -vert_delta; break; } QPointF top_left_delta(left_delta, top_delta); QPointF bottom_right_delta(right_delta, bottom_delta); setPosAndRect(pos, rect, top_left_delta, bottom_right_delta); }
PanelSizes withResizedPanel (const int index, int panelHeight, int totalSpace) const { PanelSizes newSizes (*this); if (totalSpace <= 0) { newSizes.get(index).size = panelHeight; } else { const int num = sizes.size(); const int minSize = getMinimumSize (0, num); totalSpace = jmax (totalSpace, minSize); newSizes.get(index).setSize (panelHeight); newSizes.stretchRange (0, index, totalSpace - newSizes.getTotalSize (0, num), stretchLast); newSizes.stretchRange (index, num, totalSpace - newSizes.getTotalSize (0, num), stretchLast); newSizes = newSizes.fittedInto (totalSpace); } return newSizes; }