14576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang/* 24576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) 34576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang * 44576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang * This library is free software; you can redistribute it and/or 54576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang * modify it under the terms of the GNU Library General Public 64576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang * License as published by the Free Software Foundation; either 74576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang * version 2 of the License, or (at your option) any later version. 84576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang * 94576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang * This library is distributed in the hope that it will be useful, 104576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang * but WITHOUT ANY WARRANTY; without even the implied warranty of 114576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 124576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang * Library General Public License for more details. 134576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang * 144576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang * You should have received a copy of the GNU Library General Public License 154576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang * along with this library; see the file COPYING.LIB. If not, write to 164576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 174576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang * Boston, MA 02110-1301, USA. 184576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang */ 194576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang 204576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang#ifndef MediaQueryListListener_h 214576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang#define MediaQueryListListener_h 224576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang 234576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang#include "PlatformString.h" 244576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang#include "ScriptState.h" 254576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang#include "ScriptValue.h" 264576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang 274576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang#include <wtf/RefCounted.h> 284576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang 294576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wangnamespace WebCore { 304576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang 314576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wangclass MediaQueryList; 324576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang 334576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang// See http://dev.w3.org/csswg/cssom-view/#the-mediaquerylist-interface 344576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang 354576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wangclass MediaQueryListListener : public RefCounted<MediaQueryListListener> { 364576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wangpublic: 374576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang static PassRefPtr<MediaQueryListListener> create(ScriptValue value) 384576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang { 394576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang if (!value.isFunction()) 404576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang return 0; 414576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang return adoptRef(new MediaQueryListListener(value)); 424576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang } 434576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang void queryChanged(ScriptState*, MediaQueryList*); 444576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang 454576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang bool operator==(const MediaQueryListListener& other) const { return m_value == other.m_value; } 464576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang 474576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wangprivate: 484576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang MediaQueryListListener(ScriptValue value) : m_value(value) { } 494576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang 504576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang ScriptValue m_value; 514576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang}; 524576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang 534576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang} 544576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang 554576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang#endif // MediaQueryListListener_h 56