/** * Draw a menu item * * @param MenuItemInterface $item * @param bool|false $selected * @return array */ protected function drawMenuItem(MenuItemInterface $item, $selected = false) { $rows = $item->getRows($this->style, $selected); $setColour = $selected ? $this->style->getSelectedSetCode() : $this->style->getUnselectedSetCode(); $unsetColour = $selected ? $this->style->getSelectedUnsetCode() : $this->style->getUnselectedUnsetCode(); return array_map(function ($row) use($setColour, $unsetColour) { return sprintf("%s%s%s%s%s%s%s\n\r", str_repeat(' ', $this->style->getMargin()), $setColour, str_repeat(' ', $this->style->getPadding()), $row, str_repeat(' ', $this->style->getRightHandPadding(mb_strlen(s::stripAnsiEscapeSequence($row)))), $unsetColour, str_repeat(' ', $this->style->getMargin())); }, $rows); }
/** * Draw a menu item * * @param MenuItemInterface $item * @param bool|false $selected */ protected function drawMenuItem(MenuItemInterface $item, $selected = false) { $rows = $item->getRows($this->style, $selected); $setColour = $selected ? $this->style->getSelectedSetCode() : $this->style->getUnselectedSetCode(); $unsetColour = $selected ? $this->style->getSelectedUnsetCode() : $this->style->getUnselectedUnsetCode(); foreach ($rows as $row) { echo sprintf("%s%s%s%s%s%s%s", str_repeat(' ', $this->style->getMargin()), $setColour, str_repeat(' ', $this->style->getPadding()), $row, str_repeat(' ', $this->style->getRightHandPadding(mb_strlen($row))), $unsetColour, str_repeat(' ', $this->style->getMargin())); echo "\n\r"; } }