1<?php
2
3namespace Sabberworm\CSS\CSSList;
4
5use Sabberworm\CSS\Property\AtRule;
6
7/**
8 * A BlockList constructed by an unknown @-rule. @media rules are rendered into AtRuleBlockList objects.
9 */
10class AtRuleBlockList extends CSSBlockList implements AtRule {
11
12	private $sType;
13	private $sArgs;
14
15	public function __construct($sType, $sArgs = '', $iLineNo = 0) {
16		parent::__construct($iLineNo);
17		$this->sType = $sType;
18		$this->sArgs = $sArgs;
19	}
20
21	public function atRuleName() {
22		return $this->sType;
23	}
24
25	public function atRuleArgs() {
26		return $this->sArgs;
27	}
28
29	public function __toString() {
30		return $this->render(new \Sabberworm\CSS\OutputFormat());
31	}
32
33	public function render(\Sabberworm\CSS\OutputFormat $oOutputFormat) {
34		$sArgs = $this->sArgs;
35		if($sArgs) {
36			$sArgs = ' ' . $sArgs;
37		}
38		$sResult  = $oOutputFormat->sBeforeAtRuleBlock;
39		$sResult .= "@{$this->sType}$sArgs{$oOutputFormat->spaceBeforeOpeningBrace()}{";
40		$sResult .= parent::render($oOutputFormat);
41		$sResult .= '}';
42		$sResult .= $oOutputFormat->sAfterAtRuleBlock;
43		return $sResult;
44	}
45
46	public function isRootList() {
47		return false;
48	}
49
50}