1*5fdc4257SSteve Yin /************************************************************************* 2*5fdc4257SSteve Yin * 3*5fdc4257SSteve Yin * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4*5fdc4257SSteve Yin * 5*5fdc4257SSteve Yin * Copyright IBM Corporation 2010. 6*5fdc4257SSteve Yin * Copyright 2000, 2010 Oracle and/or its affiliates. 7*5fdc4257SSteve Yin * 8*5fdc4257SSteve Yin * OpenOffice.org - a multi-platform office productivity suite 9*5fdc4257SSteve Yin * 10*5fdc4257SSteve Yin * This file is part of OpenOffice.org. 11*5fdc4257SSteve Yin * 12*5fdc4257SSteve Yin * OpenOffice.org is free software: you can redistribute it and/or modify 13*5fdc4257SSteve Yin * it under the terms of the GNU Lesser General Public License version 3 14*5fdc4257SSteve Yin * only, as published by the Free Software Foundation. 15*5fdc4257SSteve Yin * 16*5fdc4257SSteve Yin * OpenOffice.org is distributed in the hope that it will be useful, 17*5fdc4257SSteve Yin * but WITHOUT ANY WARRANTY; without even the implied warranty of 18*5fdc4257SSteve Yin * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19*5fdc4257SSteve Yin * GNU Lesser General Public License version 3 for more details 20*5fdc4257SSteve Yin * (a copy is included in the LICENSE file that accompanied this code). 21*5fdc4257SSteve Yin * 22*5fdc4257SSteve Yin * You should have received a copy of the GNU Lesser General Public License 23*5fdc4257SSteve Yin * version 3 along with OpenOffice.org. If not, see 24*5fdc4257SSteve Yin * <http://www.openoffice.org/license.html> 25*5fdc4257SSteve Yin * for a copy of the LGPLv3 License. 26*5fdc4257SSteve Yin * 27*5fdc4257SSteve Yin ************************************************************************/ 28*5fdc4257SSteve Yin 29*5fdc4257SSteve Yin #ifndef __ACCCOMMON_H_ 30*5fdc4257SSteve Yin #define __ACCCOMMON_H_ 31*5fdc4257SSteve Yin 32*5fdc4257SSteve Yin 33*5fdc4257SSteve Yin //using namespace com::sun::star::accessibility; 34*5fdc4257SSteve Yin //using namespace com::sun::star::uno; 35*5fdc4257SSteve Yin 36*5fdc4257SSteve Yin 37*5fdc4257SSteve Yin //for MAccessible.cpp 38*5fdc4257SSteve Yin struct ltComp 39*5fdc4257SSteve Yin { 40*5fdc4257SSteve Yin bool operator()(REFGUID rguid1, REFGUID rguid2) const 41*5fdc4257SSteve Yin { 42*5fdc4257SSteve Yin if(((PLONG) &rguid1)[0] < ((PLONG) &rguid2)[0]) 43*5fdc4257SSteve Yin return TRUE; 44*5fdc4257SSteve Yin else if(((PLONG) &rguid1)[0] > ((PLONG) &rguid2)[0]) 45*5fdc4257SSteve Yin return FALSE; 46*5fdc4257SSteve Yin if(((PLONG) &rguid1)[1] < ((PLONG) &rguid2)[1]) 47*5fdc4257SSteve Yin return TRUE; 48*5fdc4257SSteve Yin else if(((PLONG) &rguid1)[1] > ((PLONG) &rguid2)[1]) 49*5fdc4257SSteve Yin return FALSE; 50*5fdc4257SSteve Yin if(((PLONG) &rguid1)[2] < ((PLONG) &rguid2)[2]) 51*5fdc4257SSteve Yin return TRUE; 52*5fdc4257SSteve Yin else if(((PLONG) &rguid1)[2] > ((PLONG) &rguid2)[2]) 53*5fdc4257SSteve Yin return FALSE; 54*5fdc4257SSteve Yin if(((PLONG) &rguid1)[3] < ((PLONG) &rguid2)[3]) 55*5fdc4257SSteve Yin return TRUE; 56*5fdc4257SSteve Yin else if(((PLONG) &rguid1)[3] > ((PLONG) &rguid2)[3]) 57*5fdc4257SSteve Yin return FALSE; 58*5fdc4257SSteve Yin return FALSE; 59*5fdc4257SSteve Yin } 60*5fdc4257SSteve Yin }; 61*5fdc4257SSteve Yin 62*5fdc4257SSteve Yin #define BEGIN_AGGOBJECT_MAP(x) \ 63*5fdc4257SSteve Yin static _UNO_AGGMAP_ENTRY* WINAPI _GetAggEntries() { \ 64*5fdc4257SSteve Yin static _UNO_AGGMAP_ENTRY _aggentries[] = { 65*5fdc4257SSteve Yin #define END_AGGOBJECT_MAP() {NULL, NULL,NULL}}; \ 66*5fdc4257SSteve Yin return _aggentries;} 67*5fdc4257SSteve Yin #define AGGOBJECT_ENTRY(iid, clsid, ifindex) {&iid, \ 68*5fdc4257SSteve Yin CComAggregateCreator< CComObject<CMAccessible>, &clsid >::CreateInstance,\ 69*5fdc4257SSteve Yin XI_##ifindex}, 70*5fdc4257SSteve Yin 71*5fdc4257SSteve Yin enum DM_NIR { 72*5fdc4257SSteve Yin DM_FIRSTCHILD = 0x00, 73*5fdc4257SSteve Yin DM_LASTCHILD = 0x01, 74*5fdc4257SSteve Yin DM_NEXTCHILD = 0x02, 75*5fdc4257SSteve Yin DM_PREVCHILD = 0x03 76*5fdc4257SSteve Yin }; 77*5fdc4257SSteve Yin 78*5fdc4257SSteve Yin inline BOOL ImplIsEqualGUID(REFGUID rguid1, REFGUID rguid2) 79*5fdc4257SSteve Yin { 80*5fdc4257SSteve Yin return ( 81*5fdc4257SSteve Yin ((PLONG) &rguid1)[0] == ((PLONG) &rguid2)[0] && 82*5fdc4257SSteve Yin ((PLONG) &rguid1)[1] == ((PLONG) &rguid2)[1] && 83*5fdc4257SSteve Yin ((PLONG) &rguid1)[2] == ((PLONG) &rguid2)[2] && 84*5fdc4257SSteve Yin ((PLONG) &rguid1)[3] == ((PLONG) &rguid2)[3]); 85*5fdc4257SSteve Yin } 86*5fdc4257SSteve Yin #define InlineIsEqualGUID ImplIsEqualGUID 87*5fdc4257SSteve Yin //End 88*5fdc4257SSteve Yin 89*5fdc4257SSteve Yin //for AccAction.cpp 90*5fdc4257SSteve Yin #define CODEENTRY(key) \ 91*5fdc4257SSteve Yin {KEYCODE_##key, L#key} 92*5fdc4257SSteve Yin #define countof(x) (sizeof(x)/sizeof(x[0])) 93*5fdc4257SSteve Yin 94*5fdc4257SSteve Yin #define SELECT L"Select" 95*5fdc4257SSteve Yin #define PRESS L"Press" 96*5fdc4257SSteve Yin #define UNCHECK L"UnCheck" 97*5fdc4257SSteve Yin #define CHECK L"Check" 98*5fdc4257SSteve Yin //End 99*5fdc4257SSteve Yin 100*5fdc4257SSteve Yin static DWORD GetMSAAStateFromUNO(short xState); 101*5fdc4257SSteve Yin 102*5fdc4257SSteve Yin #endif 103