1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* vim: set ts=2 et sw=2 tw=80: */
3 /* This Source Code Form is subject to the terms of the Mozilla Public
4 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
5 * You can obtain one at http://mozilla.org/MPL/2.0/. */
7 #include "xpcAccessibleGeneric.h"
8 #include "Accessible.h"
10 using namespace mozilla
;
11 using namespace mozilla::a11y
;
14 xpcAccessibleValue::GetMaximumValue(double* aValue
) {
15 NS_ENSURE_ARG_POINTER(aValue
);
18 if (Intl().IsNull()) return NS_ERROR_FAILURE
;
20 if (Intl().IsAccessible() && Intl().AsAccessible()->IsDefunct())
21 return NS_ERROR_FAILURE
;
24 if (Intl().IsAccessible()) {
25 value
= Intl().AsAccessible()->MaxValue();
27 value
= Intl().AsProxy()->MaxValue();
30 if (!IsNaN(value
)) *aValue
= value
;
36 xpcAccessibleValue::GetMinimumValue(double* aValue
) {
37 NS_ENSURE_ARG_POINTER(aValue
);
40 if (Intl().IsNull()) return NS_ERROR_FAILURE
;
42 if (Intl().IsAccessible() && Intl().AsAccessible()->IsDefunct())
43 return NS_ERROR_FAILURE
;
46 if (Intl().IsAccessible()) {
47 value
= Intl().AsAccessible()->MinValue();
49 value
= Intl().AsProxy()->MinValue();
52 if (!IsNaN(value
)) *aValue
= value
;
58 xpcAccessibleValue::GetCurrentValue(double* aValue
) {
59 NS_ENSURE_ARG_POINTER(aValue
);
62 if (Intl().IsNull()) return NS_ERROR_FAILURE
;
64 if (Intl().IsAccessible() && Intl().AsAccessible()->IsDefunct())
65 return NS_ERROR_FAILURE
;
68 if (Intl().IsAccessible()) {
69 value
= Intl().AsAccessible()->CurValue();
71 value
= Intl().AsProxy()->CurValue();
74 if (!IsNaN(value
)) *aValue
= value
;
80 xpcAccessibleValue::SetCurrentValue(double aValue
) {
81 if (Intl().IsNull()) return NS_ERROR_FAILURE
;
83 if (Intl().IsAccessible() && Intl().AsAccessible()->IsDefunct())
84 return NS_ERROR_FAILURE
;
86 if (Intl().IsAccessible()) {
87 Intl().AsAccessible()->SetCurValue(aValue
);
89 Intl().AsProxy()->SetCurValue(aValue
);
96 xpcAccessibleValue::GetMinimumIncrement(double* aValue
) {
97 NS_ENSURE_ARG_POINTER(aValue
);
100 if (Intl().IsNull()) return NS_ERROR_FAILURE
;
102 if (Intl().IsAccessible() && Intl().AsAccessible()->IsDefunct())
103 return NS_ERROR_FAILURE
;
106 if (Intl().IsAccessible()) {
107 value
= Intl().AsAccessible()->Step();
109 value
= Intl().AsProxy()->Step();
112 if (!IsNaN(value
)) *aValue
= value
;