1a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)/* 2a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) * Copyright (C) 1999 Lars Knoll (knoll@kde.org) 3a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserved. 4a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) * Copyright (C) 2013 Google Inc. All rights reserved. 5a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) * 6a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) * This library is free software; you can redistribute it and/or 7a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) * modify it under the terms of the GNU Library General Public 8a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) * License as published by the Free Software Foundation; either 95c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu * version 2 of the License, or (at your option) any later version. 10a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) * 11a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) * This library is distributed in the hope that it will be useful, 12a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) * but WITHOUT ANY WARRANTY; without even the implied warranty of 135c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) * Library General Public License for more details. 15a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) * 16a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) * You should have received a copy of the GNU Library General Public License 17a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) * along with this library; see the file COPYING.LIB. If not, write to 18a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 19a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) * Boston, MA 02110-1301, USA. 20a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) * 21a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) */ 22a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) 23a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#ifndef MediaQueryResult_h 24a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#define MediaQueryResult_h 25a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) 26a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#include "core/css/MediaQueryExp.h" 27a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#include "wtf/Noncopyable.h" 28a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#include "wtf/RefCounted.h" 29a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) 30a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)namespace blink { 31a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) 32a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)class MediaQueryResult : public RefCountedWillBeGarbageCollectedFinalized<MediaQueryResult> { 33a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) WTF_MAKE_NONCOPYABLE(MediaQueryResult); WTF_MAKE_FAST_ALLOCATED_WILL_BE_REMOVED; 34a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)public: 35a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) MediaQueryResult(const MediaQueryExp& expr, bool result) 36a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#if ENABLE(OILPAN) 37a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) : m_expression(&expr) 38a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#else 39a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) : m_expression(expr) 40a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#endif 41a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) , m_result(result) 42a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) { 43a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) } 44a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) 45a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) void trace(Visitor* visitor) { visitor->trace(m_expression); } 46a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) 47a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) const MediaQueryExp* expression() const 48a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) { 49a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#if ENABLE(OILPAN) 50a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) return m_expression; 51a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#else 52a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) return &m_expression; 53a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#endif 54a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) } 55a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) 56a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) bool result() const { return m_result; } 57a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) 58a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)private: 59a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#if ENABLE(OILPAN) 60a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) Member<const MediaQueryExp> m_expression; 61a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#else 62a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) MediaQueryExp m_expression; 63a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#endif 64a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) bool m_result; 65a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)}; 66a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) 67a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)} 68a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) 69a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#endif 70a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)