ILIAS  release_6 Revision v6.24-5-g0c8bfefb3b8
All Data Structures Namespaces Files Functions Variables Modules Pages
Engageable.php
Go to the documentation of this file.
1 <?php
2 
3 /* Copyright (c) 2018 Nils Haagen <nils.haagen@concepts-and-training.de> Extended GPL, see docs/LICENSE */
4 
6 
7 use ILIAS\UI\Component\Button\Engageable as EngageableInterface;
8 
14 trait Engageable
15 {
19  protected $is_engageable = false;
20 
24  protected $engaged = false;
25 
29  public function isEngageable() : bool
30  {
31  return $this->is_engageable;
32  }
33 
37  public function withEngagedState(bool $state) : EngageableInterface
38  {
39  $clone = clone $this;
40  $clone->is_engageable = true;
41  $clone->engaged = $state;
42  return $clone;
43  }
44 
48  public function isEngaged() : bool
49  {
50  return $this->engaged;
51  }
52 }
A Button can be stateful; when engaged, the state MUST be refelected in the "aria-pressed"-, respectively the "aria-checked"-attribute.
Definition: Engageable.php:14