1<?php
2
3namespace OOUI;
4
5/**
6 * Use together with ItemWidget to make disabled state inheritable.
7 *
8 * @abstract
9 */
10trait GroupWidget {
11	use GroupElement;
12
13	public function setDisabled( $disabled ) {
14		// @phan-suppress-next-line PhanTraitParentReference
15		parent::setDisabled( $disabled );
16		$modifiedItems = [];
17		$items = $this->getItems();
18		/** @var Widget $item */
19		foreach ( $items as $item ) {
20			$modifiedItems[] = $item->setDisabled( $disabled );
21		}
22		$this->clearItems();
23		$this->addItems( $modifiedItems );
24	}
25}
26