iUIBlock, 'label' => '...'] * * @param array $aItems * @param string|null $sMoreButtonTooltipText * @param string|null $sId * * @return ButtonBar */ public static function MakeStandard( array $aItems = [], ?string $sMoreButtonTooltipText = null, ?string $sId = null ): ButtonBar { return static::BuildButtonBar($aItems, $sMoreButtonTooltipText, $sId, ButtonBar::OVERFLOW_MODE_FIT); } /** * Build a button bar using a fixed visible item count before overflow. * * @param array $aItems * @param int $iOverflowCount Number of items to keep visible in the bar * @param string|null $sMoreButtonTooltipText * @param string|null $sId * * @return ButtonBar */ public static function MakeWithCountOverflow( array $aItems = [], int $iOverflowCount = 3, ?string $sMoreButtonTooltipText = null, ?string $sId = null ): ButtonBar { return static::BuildButtonBar($aItems, $sMoreButtonTooltipText, $sId, ButtonBar::OVERFLOW_MODE_COUNT, $iOverflowCount); } /** * Build a button bar overflowing everything after a marker button. * * @param array $aItems * @param string $sOverflowStartAfterButtonId Button id used as marker * @param string|null $sMoreButtonTooltipText * @param string|null $sId * * @return ButtonBar */ public static function MakeWithAfterMarkerOverflow( string $sOverflowStartAfterButtonId, array $aItems = [], ?string $sMoreButtonTooltipText = null, ?string $sId = null ): ButtonBar { return static::BuildButtonBar( $aItems, $sMoreButtonTooltipText, $sId, ButtonBar::OVERFLOW_MODE_AFTER_MARKER, 3, $sOverflowStartAfterButtonId ); } /** * Internal builder shared by the public named constructors. */ protected static function BuildButtonBar( array $aItems, ?string $sMoreButtonTooltipText, ?string $sId, string $sOverflowMode, int $iOverflowCount = 3, ?string $sOverflowStartAfterButtonId = null ): ButtonBar { $oButtonBar = new ButtonBar([], $sMoreButtonTooltipText, $sId); $oButtonBar ->SetOverflowMode($sOverflowMode) ->SetOverflowCount($iOverflowCount) ->SetOverflowStartAfterButtonId($sOverflowStartAfterButtonId); foreach ($aItems as $oItem) { if ($oItem instanceof Button || $oItem instanceof ButtonSeparator || $oItem instanceof ButtonGroup) { $oButtonBar->AddButton($oItem); } } return $oButtonBar; } }