1635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project/* 22fc2651226baac27029e38c9d6ef883fa32084dbSteve Block * Copyright (C) 2006, 2007, 2008, 2009 Apple Inc. All rights reserved. 32fc2651226baac27029e38c9d6ef883fa32084dbSteve Block * Copyright (C) 2010 Google Inc. All rights reserved. 48f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian * 5635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * Redistribution and use in source and binary forms, with or without 6635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * modification, are permitted provided that the following conditions are 7635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * met: 88f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian * 9635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * * Redistributions of source code must retain the above copyright 10635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * notice, this list of conditions and the following disclaimer. 11635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * * Redistributions in binary form must reproduce the above 12635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * copyright notice, this list of conditions and the following disclaimer 13635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * in the documentation and/or other materials provided with the 14635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * distribution. 15635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * * Neither the name of Google Inc. nor the names of its 16635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * contributors may be used to endorse or promote products derived from 17635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * this software without specific prior written permission. 188f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian * 19635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 20635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 21635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 22635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 23635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 24635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 25635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 26635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 27635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 28635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 29635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 30635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project */ 31635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 322daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch#ifndef ProgressShadowElement_h 332daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch#define ProgressShadowElement_h 34635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 352fc2651226baac27029e38c9d6ef883fa32084dbSteve Block#include "HTMLDivElement.h" 362fc2651226baac27029e38c9d6ef883fa32084dbSteve Block#include <wtf/Forward.h> 37635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 38635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Projectnamespace WebCore { 39635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 402daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdochclass HTMLProgressElement; 412daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch 422daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdochclass ProgressShadowElement : public HTMLDivElement { 432daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdochpublic: 442daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch ProgressShadowElement(Document*); 452daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch HTMLProgressElement* progressElement() const; 462daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch 472daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdochprivate: 482daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch virtual bool rendererIsNeeded(RenderStyle*); 492daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch}; 502daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch 512daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdochclass ProgressBarElement : public ProgressShadowElement { 52643ca7872b450ea4efacab6188849e5aac2ba161Steve Blockpublic: 532daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch ProgressBarElement(Document* document) 542daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch : ProgressShadowElement(document) 552fc2651226baac27029e38c9d6ef883fa32084dbSteve Block { 562fc2651226baac27029e38c9d6ef883fa32084dbSteve Block } 5765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 582daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch static PassRefPtr<ProgressBarElement> create(Document*); 592fc2651226baac27029e38c9d6ef883fa32084dbSteve Block virtual const AtomicString& shadowPseudoId() const; 602fc2651226baac27029e38c9d6ef883fa32084dbSteve Block}; 61635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 622daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdochinline PassRefPtr<ProgressBarElement> ProgressBarElement::create(Document* document) 632fc2651226baac27029e38c9d6ef883fa32084dbSteve Block{ 642daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch return adoptRef(new ProgressBarElement(document)); 652fc2651226baac27029e38c9d6ef883fa32084dbSteve Block} 66643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 6765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 682daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdochclass ProgressValueElement : public ProgressShadowElement { 692daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdochpublic: 702daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch ProgressValueElement(Document* document) 712daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch : ProgressShadowElement(document) 722daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch { 732daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch } 742daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch 752daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch virtual const AtomicString& shadowPseudoId() const; 762daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch static PassRefPtr<ProgressValueElement> create(Document*); 772daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch void setWidthPercentage(double); 782daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch}; 792daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch 802daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdochinline PassRefPtr<ProgressValueElement> ProgressValueElement::create(Document* document) 812fc2651226baac27029e38c9d6ef883fa32084dbSteve Block{ 822daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch return adoptRef(new ProgressValueElement(document)); 832fc2651226baac27029e38c9d6ef883fa32084dbSteve Block} 84643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 852fc2651226baac27029e38c9d6ef883fa32084dbSteve Block} 868f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian 872fc2651226baac27029e38c9d6ef883fa32084dbSteve Block#endif 88