* @package Combodo\iTop\Application\UI\Base\Component\Button * @since 3.0.0 * @api */ class ButtonGroupUIBlockFactory extends AbstractUIBlockFactory { /** @inheritDoc */ public const TWIG_TAG_NAME = 'UIButtonGroup'; /** @inheritDoc */ public const UI_BLOCK_CLASS_NAME = ButtonGroup::class; /** * Make a button that has a primary action ($oButton) but also an options menu ($oMenu) on the side * * @param \Combodo\iTop\Application\UI\Base\Component\Button\Button $oButton * @param \Combodo\iTop\Application\UI\Base\Component\PopoverMenu\PopoverMenu $oMenu * * @return \Combodo\iTop\Application\UI\Base\Component\ButtonGroup\ButtonGroup */ public static function MakeButtonWithOptionsMenu(Button $oButton, PopoverMenu $oMenu) { $oButtonGroup = new ButtonGroup(); // Add base button $oButtonGroup->AddButton($oButton); // Add options menu $oMenuToggler = new ButtonJS(''); $oMenuToggler->SetIconClass('fas fa-fw, fa-caret-down') ->AddCSSClass('ibo-button-for-options-menu') ->SetColor($oButton->GetColor()) ->SetActionType($oButton->GetActionType()); $oMenu->SetTogglerFromBlock($oMenuToggler); $oButtonGroup->AddButton($oMenuToggler) ->AddExtraBlock($oMenu); return $oButtonGroup; } }