4 * Copyright (C) 2005, 2006 Kimmo Kinnunen <kimmo.t.kinnunen@nokia.com>.
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
11 * 2. Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in the
13 * documentation and/or other materials provided with the distribution.
15 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY
16 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
18 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
19 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
20 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
21 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
22 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
23 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
25 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 #include "MediaQuery.h"
31 #include "MediaQueryExp.h"
35 MediaQuery::MediaQuery(Restrictor r
, const String
& mediaType
, Vector
<MediaQueryExp
*>* exprs
)
37 , m_mediaType(mediaType
)
38 , m_expressions(exprs
)
41 m_expressions
= new Vector
<MediaQueryExp
*>;
44 MediaQuery::~MediaQuery()
47 deleteAllValues(*m_expressions
);
52 bool MediaQuery::operator==(const MediaQuery
& other
) const
54 if (m_restrictor
!= other
.m_restrictor
55 || m_mediaType
!= other
.m_mediaType
56 || m_expressions
->size() != other
.m_expressions
->size())
59 for (size_t i
= 0; i
< m_expressions
->size(); ++i
) {
60 MediaQueryExp
* exp
= m_expressions
->at(i
);
61 MediaQueryExp
* oexp
= other
.m_expressions
->at(i
);
69 String
MediaQuery::cssText() const
72 switch (m_restrictor
) {
73 case MediaQuery::Only
:
79 case MediaQuery::None
:
84 for (size_t i
= 0; i
< m_expressions
->size(); ++i
) {
85 MediaQueryExp
* exp
= m_expressions
->at(i
);
87 text
+= exp
->mediaFeature();
90 text
+= exp
->value()->cssText();