1dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block/*
2dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
3dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *
4dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * This library is free software; you can redistribute it and/or
5dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * modify it under the terms of the GNU Library General Public
6dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * License as published by the Free Software Foundation; either
7dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * version 2 of the License, or (at your option) any later version.
8dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *
9dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * This library is distributed in the hope that it will be useful,
10dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * but WITHOUT ANY WARRANTY; without even the implied warranty of
11dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * Library General Public License for more details.
13dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *
14dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * You should have received a copy of the GNU Library General Public License
15dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * along with this library; see the file COPYING.LIB.  If not, write to
16dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * Boston, MA 02110-1301, USA.
18dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *
19dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block */
20dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
21dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#include "config.h"
22dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
23dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#if ENABLE(PROGRESS_TAG)
24dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
25dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#include "AccessibilityProgressIndicator.h"
26dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
27dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#include "FloatConversion.h"
28dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#include "HTMLNames.h"
29dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#include "HTMLProgressElement.h"
30dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#include "RenderObject.h"
31dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#include "RenderProgress.h"
32dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
33dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Blocknamespace WebCore {
34dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
35dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Blockusing namespace HTMLNames;
36dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
37dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockAccessibilityProgressIndicator::AccessibilityProgressIndicator(RenderProgress* renderer)
38dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    : AccessibilityRenderObject(renderer)
39dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block{
40dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block}
41dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
42dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockPassRefPtr<AccessibilityProgressIndicator> AccessibilityProgressIndicator::create(RenderProgress* renderer)
43dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block{
44dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    return adoptRef(new AccessibilityProgressIndicator(renderer));
45dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block}
46dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
47dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Blockbool AccessibilityProgressIndicator::accessibilityIsIgnored() const
48dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block{
49dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    return accessibilityIsIgnoredBase() == IgnoreObject;
50dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block}
51dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
52dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Blockfloat AccessibilityProgressIndicator::valueForRange() const
53dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block{
54dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    if (element()->position() >= 0)
55dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block        return narrowPrecisionToFloat(element()->value());
56dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    // Indeterminate progress bar should return 0.
57dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    return 0.0f;
58dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block}
59dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
60dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Blockfloat AccessibilityProgressIndicator::maxValueForRange() const
61dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block{
62dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    return narrowPrecisionToFloat(element()->max());
63dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block}
64dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
65dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Blockfloat AccessibilityProgressIndicator::minValueForRange() const
66dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block{
67dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    return 0.0f;
68dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block}
69dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
70dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockHTMLProgressElement* AccessibilityProgressIndicator::element() const
71dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block{
72dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    return toRenderProgress(m_renderer)->progressElement();
73dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block}
74dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
75dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
76dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block} // namespace WebCore
77dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
78dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#endif // ENABLE(PROGRESS_TAG)
79