summaryrefslogtreecommitdiff
path: root/vendor/oojs/oojs-ui/php/themes/MediaWikiTheme.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/oojs/oojs-ui/php/themes/MediaWikiTheme.php')
-rw-r--r--vendor/oojs/oojs-ui/php/themes/MediaWikiTheme.php39
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;
+ }
+}