/* Properties and methods */ HRESULT STDMETHODCALLTYPE QWindowsAccessible::accDoDefaultAction(VARIANT varID) { #ifdef DEBUG_SHOW_ATCLIENT_COMMANDS showDebug(__FUNCTION__, accessible); #endif //DEBUG_SHOW_ATCLIENT_COMMANDS if (!accessible->isValid()) return E_FAIL; return accessible->doAction(DefaultAction, varID.lVal, QVariantList()) ? S_OK : S_FALSE; }
HRESULT STDMETHODCALLTYPE QWindowsAccessible::accSelect(long flagsSelect, VARIANT varID) { #ifdef DEBUG_SHOW_ATCLIENT_COMMANDS showDebug(__FUNCTION__, accessible); #endif //DEBUG_SHOW_ATCLIENT_COMMANDS if (!accessible->isValid()) return E_FAIL; bool res = false; if (flagsSelect & SELFLAG_TAKEFOCUS) res = accessible->doAction(SetFocus, varID.lVal, QVariantList()); if (flagsSelect & SELFLAG_TAKESELECTION) { accessible->doAction(ClearSelection, 0, QVariantList()); res = accessible->doAction(AddToSelection, varID.lVal, QVariantList()); } if (flagsSelect & SELFLAG_EXTENDSELECTION) res = accessible->doAction(ExtendSelection, varID.lVal, QVariantList()); if (flagsSelect & SELFLAG_ADDSELECTION) res = accessible->doAction(AddToSelection, varID.lVal, QVariantList()); if (flagsSelect & SELFLAG_REMOVESELECTION) res = accessible->doAction(RemoveSelection, varID.lVal, QVariantList()); return res ? S_OK : S_FALSE; }
HRESULT STDMETHODCALLTYPE QWindowsAccessible::accSelect(long flagsSelect, VARIANT varID) { showDebug(__FUNCTION__, accessible); if (!accessible->isValid()) return E_FAIL; bool res = false; AccessibleElement elem(varID.lVal, accessible); QAccessibleInterface *acc = elem.iface; if (acc) { const int entry = elem.entry; if (flagsSelect & SELFLAG_TAKEFOCUS) res = acc->doAction(SetFocus, entry, QVariantList()); if (flagsSelect & SELFLAG_TAKESELECTION) { acc->doAction(ClearSelection, 0, QVariantList()); //### bug, 0 should be entry?? res = acc->doAction(AddToSelection, entry, QVariantList()); } if (flagsSelect & SELFLAG_EXTENDSELECTION) res = acc->doAction(ExtendSelection, entry, QVariantList()); if (flagsSelect & SELFLAG_ADDSELECTION) res = acc->doAction(AddToSelection, entry, QVariantList()); if (flagsSelect & SELFLAG_REMOVESELECTION) res = acc->doAction(RemoveSelection, entry, QVariantList()); } return res ? S_OK : S_FALSE; }