diff options
Diffstat (limited to 'vendor/oojs/oojs-ui/php/themes/MediaWikiTheme.php')
-rw-r--r-- | vendor/oojs/oojs-ui/php/themes/MediaWikiTheme.php | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/vendor/oojs/oojs-ui/php/themes/MediaWikiTheme.php b/vendor/oojs/oojs-ui/php/themes/MediaWikiTheme.php new file mode 100644 index 00000000..86e4c353 --- /dev/null +++ b/vendor/oojs/oojs-ui/php/themes/MediaWikiTheme.php @@ -0,0 +1,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; + } +} |