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