Line data Source code
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/. */
6 :
7 : #include "xpcAccessibleGeneric.h"
8 : #include "Accessible.h"
9 :
10 : using namespace mozilla;
11 : using namespace mozilla::a11y;
12 :
13 : NS_IMETHODIMP
14 0 : xpcAccessibleValue::GetMaximumValue(double* aValue)
15 : {
16 0 : NS_ENSURE_ARG_POINTER(aValue);
17 0 : *aValue = 0;
18 :
19 0 : if (Intl().IsNull())
20 0 : return NS_ERROR_FAILURE;
21 :
22 0 : if (Intl().IsAccessible() && Intl().AsAccessible()->IsDefunct())
23 0 : return NS_ERROR_FAILURE;
24 :
25 : double value;
26 0 : if (Intl().IsAccessible()) {
27 0 : value = Intl().AsAccessible()->MaxValue();
28 : } else {
29 0 : value = Intl().AsProxy()->MaxValue();
30 : }
31 :
32 0 : if (!IsNaN(value))
33 0 : *aValue = value;
34 :
35 0 : return NS_OK;
36 : }
37 :
38 : NS_IMETHODIMP
39 0 : xpcAccessibleValue::GetMinimumValue(double* aValue)
40 : {
41 0 : NS_ENSURE_ARG_POINTER(aValue);
42 0 : *aValue = 0;
43 :
44 0 : if (Intl().IsNull())
45 0 : return NS_ERROR_FAILURE;
46 :
47 0 : if (Intl().IsAccessible() && Intl().AsAccessible()->IsDefunct())
48 0 : return NS_ERROR_FAILURE;
49 :
50 : double value;
51 0 : if (Intl().IsAccessible()) {
52 0 : value = Intl().AsAccessible()->MinValue();
53 : } else {
54 0 : value = Intl().AsProxy()->MinValue();
55 : }
56 :
57 0 : if (!IsNaN(value))
58 0 : *aValue = value;
59 :
60 0 : return NS_OK;
61 : }
62 :
63 : NS_IMETHODIMP
64 0 : xpcAccessibleValue::GetCurrentValue(double* aValue)
65 : {
66 0 : NS_ENSURE_ARG_POINTER(aValue);
67 0 : *aValue = 0;
68 :
69 0 : if (Intl().IsNull())
70 0 : return NS_ERROR_FAILURE;
71 :
72 0 : if (Intl().IsAccessible() && Intl().AsAccessible()->IsDefunct())
73 0 : return NS_ERROR_FAILURE;
74 :
75 : double value;
76 0 : if (Intl().IsAccessible()) {
77 0 : value = Intl().AsAccessible()->CurValue();
78 : } else {
79 0 : value = Intl().AsProxy()->CurValue();
80 : }
81 :
82 0 : if (!IsNaN(value))
83 0 : *aValue = value;
84 :
85 0 : return NS_OK;
86 : }
87 :
88 : NS_IMETHODIMP
89 0 : xpcAccessibleValue::SetCurrentValue(double aValue)
90 : {
91 0 : if (Intl().IsNull())
92 0 : return NS_ERROR_FAILURE;
93 :
94 0 : if (Intl().IsAccessible() && Intl().AsAccessible()->IsDefunct())
95 0 : return NS_ERROR_FAILURE;
96 :
97 0 : if (Intl().IsAccessible()) {
98 0 : Intl().AsAccessible()->SetCurValue(aValue);
99 : } else {
100 0 : Intl().AsProxy()->SetCurValue(aValue);
101 : }
102 :
103 0 : return NS_OK;
104 : }
105 :
106 : NS_IMETHODIMP
107 0 : xpcAccessibleValue::GetMinimumIncrement(double* aValue)
108 : {
109 0 : NS_ENSURE_ARG_POINTER(aValue);
110 0 : *aValue = 0;
111 :
112 0 : if (Intl().IsNull())
113 0 : return NS_ERROR_FAILURE;
114 :
115 0 : if (Intl().IsAccessible() && Intl().AsAccessible()->IsDefunct())
116 0 : return NS_ERROR_FAILURE;
117 :
118 : double value;
119 0 : if (Intl().IsAccessible()) {
120 0 : value = Intl().AsAccessible()->Step();
121 : } else {
122 0 : value = Intl().AsProxy()->Step();
123 : }
124 :
125 0 : if (!IsNaN(value))
126 0 : *aValue = value;
127 :
128 0 : return NS_OK;
129 : }
|