[TASK] Replace sprite icon "actions-view-table-*" with the new IconFactory
[Packages/TYPO3.CMS.git] / typo3 / sysext / core / Classes / Imaging / Icon.php
index 18464e2..bdc2dbc 100644 (file)
@@ -13,6 +13,8 @@ namespace TYPO3\CMS\Core\Imaging;
  *
  * The TYPO3 project - inspiring people to share!
  */
+
+use TYPO3\CMS\Core\Type\Icon\IconState;
 use TYPO3\CMS\Core\Utility\GeneralUtility;
 
 /**
@@ -44,28 +46,39 @@ class Icon {
 
        /**
         * The identifier which the PHP code that calls the IconFactory hands over
+        *
         * @var string
         */
        protected $identifier;
 
        /**
         * The identifier for a possible overlay icon
+        *
         * @var Icon
         */
        protected $overlayIcon = NULL;
 
        /**
         * Contains the size string ("large", "small" or "default")
+        *
         * @var string
         */
        protected $size = '';
 
        /**
         * Flag to indicate if the icon has a spinning animation
+        *
         * @var bool
         */
        protected $spinning = FALSE;
 
+       /**
+        * Contains the state information
+        *
+        * @var IconState
+        */
+       protected $state;
+
        /**
         * @var Dimension
         */
@@ -128,6 +141,7 @@ class Icon {
 
        /**
         * Sets the size and creates the new dimension
+        *
         * @param string $size
         */
        public function setSize($size) {
@@ -136,19 +150,35 @@ class Icon {
        }
 
        /**
-        * @return boolean
+        * @return bool
         */
        public function isSpinning() {
                return $this->spinning;
        }
 
        /**
-        * @param boolean $spinning
+        * @param bool $spinning
         */
        public function setSpinning($spinning) {
                $this->spinning = $spinning;
        }
 
+       /**
+        * @return IconState
+        */
+       public function getState() {
+               return $this->state;
+       }
+
+       /**
+        * Sets the state of the icon
+        *
+        * @param IconState $state
+        */
+       public function setState(IconState $state) {
+               $this->state = $state;
+       }
+
        /**
         * @return Dimension
         */
@@ -162,7 +192,11 @@ class Icon {
         * @return string
         */
        public function render() {
-               return $this->__toString();
+               $overlayIconMarkup = '';
+               if ($this->overlayIcon !== NULL) {
+                       $overlayIconMarkup = '<span class="icon-overlay icon-' . htmlspecialchars($this->overlayIcon->getIdentifier()) . '">' . $this->overlayIcon->getMarkup() . '</span>';
+               }
+               return str_replace('{overlayMarkup}', $overlayIconMarkup, $this->wrappedIcon());
        }
 
        /**
@@ -171,11 +205,7 @@ class Icon {
         * @return string
         */
        public function __toString() {
-               $overlayIconMarkup = '';
-               if ($this->overlayIcon !== NULL) {
-                       $overlayIconMarkup = '<span class="icon-overlay icon-' . htmlspecialchars($this->overlayIcon->getIdentifier()) . '">' . $this->overlayIcon->getMarkup() . '</span>';
-               }
-               return str_replace('{overlayMarkup}', $overlayIconMarkup, $this->wrappedIcon());
+               return $this->render();
        }
 
        /**
@@ -187,6 +217,7 @@ class Icon {
                $classes = array();
                $classes[] = 'icon';
                $classes[] = 'icon-size-' . $this->size;
+               $classes[] = 'icon-state-' . htmlspecialchars((string)$this->state);
                $classes[] = 'icon-' . $this->getIdentifier();
                if ($this->isSpinning()) {
                        $classes[] = 'icon-spin';