4#include <QtGui/qtguiglobal.h>
5#if QT_CONFIG(accessibility)
11#include <QtGui/qaccessible.h>
12#include <QtGui/private/qwindow_p.h>
13#include <QtCore/qloggingcategory.h>
14#include <QtCore/qstring.h>
18using namespace QWindowsUiAutomation;
21QWindowsUiaWindowProvider::QWindowsUiaWindowProvider(QAccessible::Id
id) :
22 QWindowsUiaBaseProvider(
id)
26QWindowsUiaWindowProvider::~QWindowsUiaWindowProvider()
30HRESULT STDMETHODCALLTYPE QWindowsUiaWindowProvider::SetVisualState(WindowVisualState
state) {
31 qCDebug(lcQpaUiAutomation) << __FUNCTION__;
32 QAccessibleInterface *accessible = accessibleInterface();
33 if (!accessible || !accessible->window())
34 return UIA_E_ELEMENTNOTAVAILABLE;
35 auto window = accessible->window();
37 case WindowVisualState_Normal:
40 case WindowVisualState_Maximized:
43 case WindowVisualState_Minimized:
50HRESULT STDMETHODCALLTYPE QWindowsUiaWindowProvider::Close() {
51 qCDebug(lcQpaUiAutomation) << __FUNCTION__;
52 QAccessibleInterface *accessible = accessibleInterface();
53 if (!accessible || !accessible->window())
54 return UIA_E_ELEMENTNOTAVAILABLE;
55 accessible->window()->close();
59HRESULT STDMETHODCALLTYPE QWindowsUiaWindowProvider::WaitForInputIdle(
int milliseconds, __RPC__out BOOL *pRetVal) {
62 return UIA_E_NOTSUPPORTED;
65HRESULT STDMETHODCALLTYPE QWindowsUiaWindowProvider::get_CanMaximize(__RPC__out BOOL *pRetVal) {
66 qCDebug(lcQpaUiAutomation) << __FUNCTION__;
67 QAccessibleInterface *accessible = accessibleInterface();
68 if (!accessible || !accessible->window())
69 return UIA_E_ELEMENTNOTAVAILABLE;
71 auto window = accessible->window();
81HRESULT STDMETHODCALLTYPE QWindowsUiaWindowProvider::get_CanMinimize(__RPC__out BOOL *pRetVal) {
82 qCDebug(lcQpaUiAutomation) << __FUNCTION__;
83 QAccessibleInterface *accessible = accessibleInterface();
84 if (!accessible || !accessible->window())
85 return UIA_E_ELEMENTNOTAVAILABLE;
90HRESULT STDMETHODCALLTYPE QWindowsUiaWindowProvider::get_IsModal(__RPC__out BOOL *pRetVal) {
91 qCDebug(lcQpaUiAutomation) << __FUNCTION__;
92 QAccessibleInterface *accessible = accessibleInterface();
93 if (!accessible || !accessible->window())
94 return UIA_E_ELEMENTNOTAVAILABLE;
95 *pRetVal = accessible->window()->isModal();
99HRESULT STDMETHODCALLTYPE QWindowsUiaWindowProvider::get_WindowVisualState(__RPC__out
enum WindowVisualState *pRetVal) {
100 qCDebug(lcQpaUiAutomation) << __FUNCTION__;
101 QAccessibleInterface *accessible = accessibleInterface();
102 if (!accessible || !accessible->window())
103 return UIA_E_ELEMENTNOTAVAILABLE;
104 auto visibility = accessible->window()->visibility();
105 switch (visibility) {
106 case QWindow::FullScreen:
107 case QWindow::Maximized:
108 *pRetVal = WindowVisualState_Maximized;
110 case QWindow::Minimized:
111 *pRetVal = WindowVisualState_Minimized;
114 *pRetVal = WindowVisualState_Normal;
120HRESULT STDMETHODCALLTYPE QWindowsUiaWindowProvider::get_WindowInteractionState(__RPC__out
enum WindowInteractionState *pRetVal) {
122 return UIA_E_NOTSUPPORTED;
125HRESULT STDMETHODCALLTYPE QWindowsUiaWindowProvider::get_IsTopmost(__RPC__out BOOL *pRetVal) {
127 return UIA_E_NOTSUPPORTED;
Combined button and popup list for selecting options.
@ MSWindowsFixedSizeDialogHint
@ WindowMaximizeButtonHint
@ WindowMinimizeButtonHint
#define qCDebug(category,...)