summaryrefslogtreecommitdiff
path: root/vendor/oojs/oojs-ui/php/themes/MediaWikiTheme.php
blob: 86e4c35370312f0552f6c7c68e9b3685323bea3c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?php

namespace OOUI;

class MediaWikiTheme extends Theme {

	/* Methods */

	public function getElementClasses( Element $element ) {
		$variants = array(
			'warning' => false,
			'invert' => false,
			'progressive' => false,
			'constructive' => false,
			'destructive' => false
		);

		// Parent method
		$classes = parent::getElementClasses( $element );

		if ( $element->supports( array( 'hasFlag' ) ) ) {
			$isFramed = $element->supports( array( 'isFramed' ) ) && $element->isFramed();
			if ( $isFramed && ( $element->isDisabled() || $element->hasFlag( 'primary' ) ) ) {
				$variants['invert'] = true;
			} else {
				$variants['progressive'] = $element->hasFlag( 'progressive' );
				$variants['constructive'] = $element->hasFlag( 'constructive' );
				$variants['destructive'] = $element->hasFlag( 'destructive' );
				$variants['warning'] = $element->hasFlag( 'warning' );
			}
		}

		foreach ( $variants as $variant => $toggle ) {
			$classes[$toggle ? 'on' : 'off'][] = 'oo-ui-image-' . $variant;
		}

		return $classes;
	}
}