|
11 | 11 | use PhpSchool\CliMenu\MenuItem\SelectableItem;
|
12 | 12 | use PhpSchool\CliMenu\MenuItem\StaticItem;
|
13 | 13 | use PhpSchool\CliMenu\Terminal\TerminalFactory;
|
| 14 | +use PhpSchool\CliMenu\Util\ColourUtil; |
14 | 15 | use Assert\Assertion;
|
15 | 16 | use PhpSchool\Terminal\Terminal;
|
16 | 17 | use RuntimeException;
|
@@ -200,36 +201,22 @@ public function setExitButtonText(string $exitButtonText) : self
|
200 | 201 |
|
201 | 202 | public function setBackgroundColour($colour, string $fallback = null) : self
|
202 | 203 | {
|
203 |
| - if (is_int($colour)) { |
204 |
| - if ($this->terminal->getColourSupport() < 256) { |
205 |
| - $colour = $fallback; |
206 |
| - Assertion::inArray($colour, MenuStyle::getAvailableColours()); |
207 |
| - } elseif ($colour < 0 || $colour > 255) { |
208 |
| - throw new \InvalidArgumentException("Invalid colour code"); |
209 |
| - } |
210 |
| - } else { |
211 |
| - Assertion::inArray($colour, MenuStyle::getAvailableColours()); |
212 |
| - } |
213 |
| - |
214 |
| - $this->style['bg'] = $colour; |
| 204 | + $this->style['bg'] = ColourUtil::validateColour( |
| 205 | + $this->terminal, |
| 206 | + $colour, |
| 207 | + $fallback |
| 208 | + ); |
215 | 209 |
|
216 | 210 | return $this;
|
217 | 211 | }
|
218 | 212 |
|
219 | 213 | public function setForegroundColour($colour, string $fallback = null) : self
|
220 | 214 | {
|
221 |
| - if (is_int($colour)) { |
222 |
| - if ($this->terminal->getColourSupport() < 256) { |
223 |
| - $colour = $fallback; |
224 |
| - Assertion::inArray($colour, MenuStyle::getAvailableColours()); |
225 |
| - } elseif ($colour < 0 || $colour > 255) { |
226 |
| - throw new \InvalidArgumentException("Invalid colour code"); |
227 |
| - } |
228 |
| - } else { |
229 |
| - Assertion::inArray($colour, MenuStyle::getAvailableColours()); |
230 |
| - } |
231 |
| - |
232 |
| - $this->style['fg'] = $colour; |
| 215 | + $this->style['fg'] = ColourUtil::validateColour( |
| 216 | + $this->terminal, |
| 217 | + $colour, |
| 218 | + $fallback |
| 219 | + ); |
233 | 220 |
|
234 | 221 | return $this;
|
235 | 222 | }
|
|
0 commit comments