123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622 |
- #ifndef __ACCESSIBLE_H
- #define __ACCESSIBLE_H
- #include <bfc/common.h>
- #define WM_GETOBJECT 0x003D
- #ifdef OBJID_WINDOW
- #undef OBJID_WINDOW
- #endif
- #ifdef OBJID_SYSMENU
- #undef OBJID_SYSMENU
- #endif
- #ifdef OBJID_TITLEBAR
- #undef OBJID_TITLEBAR
- #endif
- #ifdef OBJID_MENU
- #undef OBJID_MENU
- #endif
- #ifdef OBJID_CLIENT
- #undef OBJID_CLIENT
- #endif
- #ifdef OBJID_VSCROLL
- #undef OBJID_VSCROLL
- #endif
- #ifdef OBJID_HSCROLL
- #undef OBJID_HSCROLL
- #endif
- #ifdef OBJID_SIZEGRIP
- #undef OBJID_SIZEGRIP
- #endif
- #ifdef OBJID_CARET
- #undef OBJID_CARET
- #endif
- #ifdef OBJID_CURSOR
- #undef OBJID_CURSOR
- #endif
- #ifdef OBJID_ALERT
- #undef OBJID_ALERT
- #endif
- #ifdef OBJID_SOUND
- #undef OBJID_SOUND
- #endif
- #ifdef STATE_SYSTEM_VALID
- #undef STATE_SYSTEM_VALID
- #endif
- #define OBJID_WINDOW 0x00000000
- #define OBJID_SYSMENU 0xFFFFFFFF
- #define OBJID_TITLEBAR 0xFFFFFFFE
- #define OBJID_MENU 0xFFFFFFFD
- #define OBJID_CLIENT 0xFFFFFFFC
- #define OBJID_VSCROLL 0xFFFFFFFB
- #define OBJID_HSCROLL 0xFFFFFFFA
- #define OBJID_SIZEGRIP 0xFFFFFFF9
- #define OBJID_CARET 0xFFFFFFF8
- #define OBJID_CURSOR 0xFFFFFFF7
- #define OBJID_ALERT 0xFFFFFFF6
- #define OBJID_SOUND 0xFFFFFFF5
- #if 0
- #define ROLE_SYSTEM_TITLEBAR 0x00000001
- #define ROLE_SYSTEM_MENUBAR 0x00000002
- #define ROLE_SYSTEM_SCROLLBAR 0x00000003
- #define ROLE_SYSTEM_GRIP 0x00000004
- #define ROLE_SYSTEM_SOUND 0x00000005
- #define ROLE_SYSTEM_CURSOR 0x00000006
- #define ROLE_SYSTEM_CARET 0x00000007
- #define ROLE_SYSTEM_ALERT 0x00000008
- #define ROLE_SYSTEM_WINDOW 0x00000009
- #define ROLE_SYSTEM_CLIENT 0x0000000A
- #define ROLE_SYSTEM_MENUPOPUP 0x0000000B
- #define ROLE_SYSTEM_MENUITEM 0x0000000C
- #define ROLE_SYSTEM_TOOLTIP 0x0000000D
- #define ROLE_SYSTEM_APPLICATION 0x0000000E
- #define ROLE_SYSTEM_DOCUMENT 0x0000000F
- #define ROLE_SYSTEM_PANE 0x00000010
- #define ROLE_SYSTEM_CHART 0x00000011
- #define ROLE_SYSTEM_DIALOG 0x00000012
- #define ROLE_SYSTEM_BORDER 0x00000013
- #define ROLE_SYSTEM_GROUPING 0x00000014
- #define ROLE_SYSTEM_SEPARATOR 0x00000015
- #define ROLE_SYSTEM_TOOLBAR 0x00000016
- #define ROLE_SYSTEM_STATUSBAR 0x00000017
- #define ROLE_SYSTEM_TABLE 0x00000018
- #define ROLE_SYSTEM_COLUMNHEADER 0x00000019
- #define ROLE_SYSTEM_ROWHEADER 0x0000001A
- #define ROLE_SYSTEM_COLUMN 0x0000001B
- #define ROLE_SYSTEM_ROW 0x0000001C
- #define ROLE_SYSTEM_CELL 0x0000001D
- #define ROLE_SYSTEM_LINK 0x0000001E
- #define ROLE_SYSTEM_HELPBALLOON 0x0000001F
- #define ROLE_SYSTEM_CHARACTER 0x00000020
- #define ROLE_SYSTEM_LIST 0x00000021
- #define ROLE_SYSTEM_LISTITEM 0x00000022
- #define ROLE_SYSTEM_OUTLINE 0x00000023
- #define ROLE_SYSTEM_OUTLINEITEM 0x00000024
- #define ROLE_SYSTEM_PAGETAB 0x00000025
- #define ROLE_SYSTEM_PROPERTYPAGE 0x00000026
- #define ROLE_SYSTEM_INDICATOR 0x00000027
- #define ROLE_SYSTEM_GRAPHIC 0x00000028
- #define ROLE_SYSTEM_STATICTEXT 0x00000029
- #define ROLE_SYSTEM_TEXT 0x0000002A
- #define ROLE_SYSTEM_PUSHBUTTON 0x0000002B
- #define ROLE_SYSTEM_CHECKBUTTON 0x0000002C
- #define ROLE_SYSTEM_RADIOBUTTON 0x0000002D
- #define ROLE_SYSTEM_COMBOBOX 0x0000002E
- #define ROLE_SYSTEM_DROPLIST 0x0000002F
- #define ROLE_SYSTEM_PROGRESSBAR 0x00000030
- #define ROLE_SYSTEM_DIAL 0x00000031
- #define ROLE_SYSTEM_HOTKEYFIELD 0x00000032
- #define ROLE_SYSTEM_SLIDER 0x00000033
- #define ROLE_SYSTEM_SPINBUTTON 0x00000034
- #define ROLE_SYSTEM_DIAGRAM 0x00000035
- #define ROLE_SYSTEM_ANIMATION 0x00000036
- #define ROLE_SYSTEM_EQUATION 0x00000037
- #define ROLE_SYSTEM_BUTTONDROPDOWN 0x00000038
- #define ROLE_SYSTEM_BUTTONMENU 0x00000039
- #define ROLE_SYSTEM_BUTTONDROPDOWNGRID 0x0000003A
- #define ROLE_SYSTEM_WHITESPACE 0x0000003B
- #define ROLE_SYSTEM_PAGETABLIST 0x0000003C
- #define ROLE_SYSTEM_CLOCK 0x0000003D
- #endif
- #define STATE_SYSTEM_UNAVAILABLE 0x00000001
- #define STATE_SYSTEM_SELECTED 0x00000002
- #define STATE_SYSTEM_FOCUSED 0x00000004
- #define STATE_SYSTEM_PRESSED 0x00000008
- #define STATE_SYSTEM_CHECKED 0x00000010
- #define STATE_SYSTEM_MIXED 0x00000020
- #define STATE_SYSTEM_READONLY 0x00000040
- #define STATE_SYSTEM_HOTTRACKED 0x00000080
- #define STATE_SYSTEM_DEFAULT 0x00000100
- #define STATE_SYSTEM_EXPANDED 0x00000200
- #define STATE_SYSTEM_COLLAPSED 0x00000400
- #define STATE_SYSTEM_BUSY 0x00000800
- #define STATE_SYSTEM_FLOATING 0x00001000
- #define STATE_SYSTEM_MARQUEED 0x00002000
- #define STATE_SYSTEM_ANIMATED 0x00004000
- #define STATE_SYSTEM_INVISIBLE 0x00008000
- #define STATE_SYSTEM_OFFSCREEN 0x00010000
- #define STATE_SYSTEM_SIZEABLE 0x00020000
- #define STATE_SYSTEM_MOVEABLE 0x00040000
- #define STATE_SYSTEM_SELFVOICING 0x00080000
- #define STATE_SYSTEM_FOCUSABLE 0x00100000
- #define STATE_SYSTEM_SELECTABLE 0x00200000
- #define STATE_SYSTEM_LINKED 0x00400000
- #define STATE_SYSTEM_TRAVERSED 0x00800000
- #define STATE_SYSTEM_MULTISELECTABLE 0x01000000
- #define STATE_SYSTEM_EXTSELECTABLE 0x02000000
- #define STATE_SYSTEM_ALERT_LOW 0x04000000
- #define STATE_SYSTEM_ALERT_MEDIUM 0x08000000
- #define STATE_SYSTEM_ALERT_HIGH 0x10000000
- #define STATE_SYSTEM_VALID 0x1FFFFFFF
- #define OBJID_WINDOW 0x00000000
- #define OBJID_SYSMENU 0xFFFFFFFF
- #define OBJID_TITLEBAR 0xFFFFFFFE
- #define OBJID_MENU 0xFFFFFFFD
- #define OBJID_CLIENT 0xFFFFFFFC
- #define OBJID_VSCROLL 0xFFFFFFFB
- #define OBJID_HSCROLL 0xFFFFFFFA
- #define OBJID_SIZEGRIP 0xFFFFFFF9
- #define OBJID_CARET 0xFFFFFFF8
- #define OBJID_CURSOR 0xFFFFFFF7
- #define OBJID_ALERT 0xFFFFFFF6
- #define OBJID_SOUND 0xFFFFFFF5
- #define EVENT_MIN 0x00000001
- #define EVENT_MAX 0x7FFFFFFF
- #define EVENT_SYSTEM_SOUND 0x0001
- #define EVENT_SYSTEM_ALERT 0x0002
- #define EVENT_SYSTEM_FOREGROUND 0x0003
- #define EVENT_SYSTEM_MENUSTART 0x0004
- #define EVENT_SYSTEM_MENUEND 0x0005
- #define EVENT_SYSTEM_MENUPOPUPSTART 0x0006
- #define EVENT_SYSTEM_MENUPOPUPEND 0x0007
- #define EVENT_SYSTEM_CAPTURESTART 0x0008
- #define EVENT_SYSTEM_CAPTUREEND 0x0009
- #define EVENT_SYSTEM_MOVESIZESTART 0x000A
- #define EVENT_SYSTEM_MOVESIZEEND 0x000B
- #define EVENT_SYSTEM_CONTEXTHELPSTART 0x000C
- #define EVENT_SYSTEM_CONTEXTHELPEND 0x000D
- #define EVENT_SYSTEM_DRAGDROPSTART 0x000E
- #define EVENT_SYSTEM_DRAGDROPEND 0x000F
- #define EVENT_SYSTEM_DIALOGSTART 0x0010
- #define EVENT_SYSTEM_DIALOGEND 0x0011
- #define EVENT_SYSTEM_SCROLLINGSTART 0x0012
- #define EVENT_SYSTEM_SCROLLINGEND 0x0013
- #define EVENT_SYSTEM_SWITCHSTART 0x0014
- #define EVENT_SYSTEM_SWITCHEND 0x0015
- #define EVENT_SYSTEM_MINIMIZESTART 0x0016
- #define EVENT_SYSTEM_MINIMIZEEND 0x0017
- #define EVENT_OBJECT_CREATE 0x8000
- #define EVENT_OBJECT_DESTROY 0x8001
- #define EVENT_OBJECT_SHOW 0x8002
- #define EVENT_OBJECT_HIDE 0x8003
- #define EVENT_OBJECT_REORDER 0x8004
- #define EVENT_OBJECT_FOCUS 0x8005
- #define EVENT_OBJECT_SELECTION 0x8006
- #define EVENT_OBJECT_SELECTIONADD 0x8007
- #define EVENT_OBJECT_SELECTIONREMOVE 0x8008
- #define EVENT_OBJECT_SELECTIONWITHIN 0x8009
- #define EVENT_OBJECT_STATECHANGE 0x800A
- #define EVENT_OBJECT_LOCATIONCHANGE 0x800B
- #define EVENT_OBJECT_NAMECHANGE 0x800C
- #define EVENT_OBJECT_DESCRIPTIONCHANGE 0x800D
- #define EVENT_OBJECT_VALUECHANGE 0x800E
- #define EVENT_OBJECT_PARENTCHANGE 0x800F
- #define EVENT_OBJECT_HELPCHANGE 0x8010
- #define EVENT_OBJECT_DEFACTIONCHANGE 0x8011
- #define EVENT_OBJECT_ACCELERATORCHANGE 0x8012
- #ifdef WIN32
- WINUSERAPI VOID WINAPI
- NotifyWinEvent(
- DWORD event,
- HWND hwnd,
- LONG idObject,
- LONG idChild);
- #endif
- #include <bfc/dispatch.h>
- struct IAccessible;
- class Accessible : public Dispatchable {
- public:
- IAccessible *getIAccessible();
- #ifdef _WIN32
- HRESULT getOSHandle(int p);
- #endif
- void release();
- void addRef();
- int getNumRefs();
- void onGetFocus(int idx=-1);
- void onStateChange(int idx=-1);
- void onSetName(const wchar_t *newname, int idx=-1);
- OSWINDOWHANDLE getOSWnd();
- int flattenContent(OSWINDOWHANDLE *w);
- enum {
- ACCESSIBLE_GETIACCESSIBLE=10,
- ACCESSIBLE_GETOSHANDLE=20,
- ACCESSIBLE_ADDREF=30,
- ACCESSIBLE_RELEASE=40,
- ACCESSIBLE_GETNUMREFS=50,
- ACCESSIBLE_ONGETFOCUS=60,
- ACCESSIBLE_ONSETNAME=70,
- ACCESSIBLE_GETOSWND=80,
- ACCESSIBLE_ONSTATECHANGE=90,
- ACCESSIBLE_FLATTENCONTENT=100,
- };
- };
- inline IAccessible *Accessible::getIAccessible() {
- return _call(ACCESSIBLE_GETIACCESSIBLE, (IAccessible *)NULL);
- }
- #ifdef _WIN32
- inline HRESULT Accessible::getOSHandle(int p) {
- return _call(ACCESSIBLE_GETOSHANDLE, (HRESULT)NULL, p);
- }
- #endif
- inline void Accessible::addRef() {
- _voidcall(ACCESSIBLE_ADDREF);
- }
- inline void Accessible::release() {
- _voidcall(ACCESSIBLE_RELEASE);
- }
- inline int Accessible::getNumRefs() {
- return _call(ACCESSIBLE_GETNUMREFS, 0);
- }
- inline void Accessible::onGetFocus(int idx) {
- _voidcall(ACCESSIBLE_ONGETFOCUS, idx);
- }
- inline void Accessible::onSetName(const wchar_t *name, int idx) {
- _voidcall(ACCESSIBLE_ONSETNAME, name, idx);
- }
- inline OSWINDOWHANDLE Accessible::getOSWnd() {
- return _call(ACCESSIBLE_GETOSWND, (OSWINDOWHANDLE)NULL);
- }
- inline void Accessible::onStateChange(int idx) {
- _voidcall(ACCESSIBLE_ONSTATECHANGE, idx);
- }
- inline int Accessible::flattenContent(OSWINDOWHANDLE *w) {
- return _call(ACCESSIBLE_FLATTENCONTENT, 0, w);
- }
- class AccessibleI : public Accessible {
- public:
- AccessibleI() {}
- virtual ~AccessibleI() {}
- virtual IAccessible *getIAccessible()=0;
- #ifdef _WIN32
- virtual HRESULT getOSHandle(int p)=0;
- #endif
- virtual void release()=0;
- virtual void addRef()=0;
- virtual int getNumRefs()=0;
- virtual void onGetFocus(int idx=-1)=0;
- virtual void onSetName(const wchar_t *name, int idx)=0;
- virtual OSWINDOWHANDLE getOSWnd()=0;
- virtual void onStateChange(int idx=-1)=0;
- virtual int flattenContent(OSWINDOWHANDLE *w)=0;
- protected:
- RECVS_DISPATCH;
- };
- #endif
|