Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
qwindowsuiarangevalueprovider.cpp
Go to the documentation of this file.
1// Copyright (C) 2017 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4#include <QtGui/qtguiglobal.h>
5#if QT_CONFIG(accessibility)
6
8#include "qwindowsuiautils.h"
9#include "qwindowscontext.h"
10
11#include <QtGui/qaccessible.h>
12#include <QtCore/qloggingcategory.h>
13#include <QtCore/qstring.h>
14
16
17using namespace QWindowsUiAutomation;
18
19
20QWindowsUiaRangeValueProvider::QWindowsUiaRangeValueProvider(QAccessible::Id id) :
21 QWindowsUiaBaseProvider(id)
22{
23}
24
25QWindowsUiaRangeValueProvider::~QWindowsUiaRangeValueProvider()
26{
27}
28
29HRESULT STDMETHODCALLTYPE QWindowsUiaRangeValueProvider::SetValue(double val)
30{
31 qCDebug(lcQpaUiAutomation) << __FUNCTION__;
32
33 QAccessibleInterface *accessible = accessibleInterface();
34 if (!accessible)
35 return UIA_E_ELEMENTNOTAVAILABLE;
36
37 QAccessibleValueInterface *valueInterface = accessible->valueInterface();
38 if (!valueInterface)
39 return UIA_E_ELEMENTNOTAVAILABLE;
40
41 double minimum = valueInterface->minimumValue().toDouble();
42 double maximum = valueInterface->maximumValue().toDouble();
43 if ((val < minimum) || (val > maximum))
44 return E_INVALIDARG;
45
46 valueInterface->setCurrentValue(QVariant(val));
47 return S_OK;
48}
49
50HRESULT STDMETHODCALLTYPE QWindowsUiaRangeValueProvider::get_Value(double *pRetVal)
51{
52 qCDebug(lcQpaUiAutomation) << __FUNCTION__;
53
54 if (!pRetVal)
55 return E_INVALIDARG;
56
57 QAccessibleInterface *accessible = accessibleInterface();
58 if (!accessible)
59 return UIA_E_ELEMENTNOTAVAILABLE;
60
61 QAccessibleValueInterface *valueInterface = accessible->valueInterface();
62 if (!valueInterface)
63 return UIA_E_ELEMENTNOTAVAILABLE;
64
65 QVariant varValue = valueInterface->currentValue();
66 *pRetVal = varValue.toDouble();
67 return S_OK;
68}
69
70HRESULT STDMETHODCALLTYPE QWindowsUiaRangeValueProvider::get_IsReadOnly(BOOL *pRetVal)
71{
72 qCDebug(lcQpaUiAutomation) << __FUNCTION__;
73
74 if (!pRetVal)
75 return E_INVALIDARG;
76
77 QAccessibleInterface *accessible = accessibleInterface();
78 if (!accessible)
79 return UIA_E_ELEMENTNOTAVAILABLE;
80
81 *pRetVal = accessible->state().readOnly;
82 return S_OK;
83}
84
85HRESULT STDMETHODCALLTYPE QWindowsUiaRangeValueProvider::get_Maximum(double *pRetVal)
86{
87 qCDebug(lcQpaUiAutomation) << __FUNCTION__;
88
89 if (!pRetVal)
90 return E_INVALIDARG;
91
92 QAccessibleInterface *accessible = accessibleInterface();
93 if (!accessible)
94 return UIA_E_ELEMENTNOTAVAILABLE;
95
96 QAccessibleValueInterface *valueInterface = accessible->valueInterface();
97 if (!valueInterface)
98 return UIA_E_ELEMENTNOTAVAILABLE;
99
100 QVariant varValue = valueInterface->maximumValue();
101 *pRetVal = varValue.toDouble();
102 return S_OK;
103}
104
105HRESULT STDMETHODCALLTYPE QWindowsUiaRangeValueProvider::get_Minimum(double *pRetVal)
106{
107 qCDebug(lcQpaUiAutomation) << __FUNCTION__;
108
109 if (!pRetVal)
110 return E_INVALIDARG;
111
112 QAccessibleInterface *accessible = accessibleInterface();
113 if (!accessible)
114 return UIA_E_ELEMENTNOTAVAILABLE;
115
116 QAccessibleValueInterface *valueInterface = accessible->valueInterface();
117 if (!valueInterface)
118 return UIA_E_ELEMENTNOTAVAILABLE;
119
120 QVariant varValue = valueInterface->minimumValue();
121 *pRetVal = varValue.toDouble();
122 return S_OK;
123}
124
125HRESULT STDMETHODCALLTYPE QWindowsUiaRangeValueProvider::get_LargeChange(double *pRetVal)
126{
127 qCDebug(lcQpaUiAutomation) << __FUNCTION__;
128 return get_SmallChange(pRetVal);
129}
130
131HRESULT STDMETHODCALLTYPE QWindowsUiaRangeValueProvider::get_SmallChange(double *pRetVal)
132{
133 qCDebug(lcQpaUiAutomation) << __FUNCTION__;
134
135 if (!pRetVal)
136 return E_INVALIDARG;
137
138 QAccessibleInterface *accessible = accessibleInterface();
139 if (!accessible)
140 return UIA_E_ELEMENTNOTAVAILABLE;
141
142 QAccessibleValueInterface *valueInterface = accessible->valueInterface();
143 if (!valueInterface)
144 return UIA_E_ELEMENTNOTAVAILABLE;
145
146 QVariant varValue = valueInterface->minimumStepSize();
147 *pRetVal = varValue.toDouble();
148 return S_OK;
149}
150
152
153#endif // QT_CONFIG(accessibility)
\inmodule QtCore
Definition qvariant.h:65
QVector3D minimum(const QVector3D &v1, const QVector3D &v2) Q_DECL_NOTHROW
Definition qssgutils_p.h:54
QVector3D maximum(const QVector3D &v1, const QVector3D &v2) Q_DECL_NOTHROW
Definition qssgutils_p.h:55
Combined button and popup list for selecting options.
#define qCDebug(category,...)
GLenum GLuint id
[7]
GLuint GLfloat * val
long HRESULT