blob: 675e595a3b08ada91ac5d3b858b0238611d5e438 [file] [log] [blame]
/**
* This file is part of the DOM implementation for KDE.
*
* (C) 1999-2003 Lars Knoll (knoll@kde.org)
* Copyright (C) 2004, 2006 Apple Computer, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public License
* along with this library; see the file COPYING.LIB. If not, write to
* the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/
#include "config.h"
#include "MediaList.h"
#include "CSSRule.h"
#include "CSSStyleSheet.h"
#include "DeprecatedStringList.h"
namespace WebCore {
MediaList::MediaList(CSSStyleSheet* parentSheet)
: StyleBase(parentSheet)
{
}
MediaList::MediaList(CSSStyleSheet* parentSheet, const String& media)
: StyleBase(parentSheet)
{
setMediaText(media);
}
MediaList::MediaList(CSSRule* parentRule, const String& media)
: StyleBase(parentRule)
{
setMediaText(media);
}
bool MediaList::contains(const String& medium) const
{
return m_lstMedia.count() == 0 || m_lstMedia.contains(medium) || m_lstMedia.contains("all");
}
CSSStyleSheet *MediaList::parentStyleSheet() const
{
return parent()->isCSSStyleSheet() ? static_cast<CSSStyleSheet*>(parent()) : 0;
}
CSSRule *MediaList::parentRule() const
{
return parent()->isRule() ? static_cast<CSSRule*>(parent()) : 0;
}
void MediaList::deleteMedium(const String& oldMedium)
{
for (DeprecatedValueList<String>::Iterator it = m_lstMedia.begin(); it != m_lstMedia.end(); ++it) {
if ((*it) == oldMedium) {
m_lstMedia.remove(it);
return;
}
}
}
WebCore::String MediaList::mediaText() const
{
String text = "";
for (DeprecatedValueList<String>::ConstIterator it = m_lstMedia.begin(); it != m_lstMedia.end(); ++it) {
if (text.length() > 0)
text += ", ";
text += *it;
}
return text;
}
void MediaList::setMediaText(const WebCore::String& value)
{
m_lstMedia.clear();
DeprecatedStringList list = DeprecatedStringList::split(',', value.deprecatedString());
for (DeprecatedStringList::Iterator it = list.begin(); it != list.end(); ++it) {
String medium = (*it).stripWhiteSpace();
if (!medium.isEmpty())
m_lstMedia.append(medium);
}
}
}