1 /*
   2  * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.  Oracle designates this
   8  * particular file as subject to the "Classpath" exception as provided
   9  * by Oracle in the LICENSE file that accompanied this code.
  10  *
  11  * This code is distributed in the hope that it will be useful, but WITHOUT
  12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  14  * version 2 for more details (a copy is included in the LICENSE file that
  15  * accompanied this code).
  16  *
  17  * You should have received a copy of the GNU General Public License version
  18  * 2 along with this work; if not, write to the Free Software Foundation,
  19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20  *
  21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any
  23  * questions.
  24  */
  25 
  26 /*
  27  * A class to manage firing Accessibility events to Windows AT
  28  */
  29 
  30 #ifndef __AccessBridgeEventHandler_H__
  31 #define __AccessBridgeEventHandler_H__
  32 
  33 #include "AccessBridgeCallbacks.h"
  34 #include "AccessBridgePackages.h"
  35 
  36 class WinAccessBridge;
  37 
  38 class AccessBridgeEventHandler {
  39         long javaEventMask;
  40         long accessibilityEventMask;
  41 
  42         AccessBridge_PropertyChangeFP propertyChangeFP;
  43         AccessBridge_JavaShutdownFP javaShutdownFP;
  44         AccessBridge_FocusGainedFP focusGainedFP;
  45         AccessBridge_FocusLostFP focusLostFP;
  46         AccessBridge_CaretUpdateFP caretUpdateFP;
  47         AccessBridge_MouseClickedFP mouseClickedFP;
  48         AccessBridge_MouseEnteredFP mouseEnteredFP;
  49         AccessBridge_MouseExitedFP mouseExitedFP;
  50         AccessBridge_MousePressedFP mousePressedFP;
  51         AccessBridge_MouseReleasedFP mouseReleasedFP;
  52         AccessBridge_MenuCanceledFP menuCanceledFP;
  53         AccessBridge_MenuDeselectedFP menuDeselectedFP;
  54         AccessBridge_MenuSelectedFP menuSelectedFP;
  55         AccessBridge_PopupMenuCanceledFP popupMenuCanceledFP;
  56         AccessBridge_PopupMenuWillBecomeInvisibleFP popupMenuWillBecomeInvisibleFP;
  57         AccessBridge_PopupMenuWillBecomeVisibleFP popupMenuWillBecomeVisibleFP;
  58 
  59     AccessBridge_PropertyNameChangeFP propertyNameChangeFP;
  60     AccessBridge_PropertyDescriptionChangeFP propertyDescriptionChangeFP;
  61     AccessBridge_PropertyStateChangeFP propertyStateChangeFP;
  62     AccessBridge_PropertyValueChangeFP propertyValueChangeFP;
  63     AccessBridge_PropertySelectionChangeFP propertySelectionChangeFP;
  64     AccessBridge_PropertyTextChangeFP propertyTextChangeFP;
  65     AccessBridge_PropertyCaretChangeFP propertyCaretChangeFP;
  66     AccessBridge_PropertyVisibleDataChangeFP propertyVisibleDataChangeFP;
  67     AccessBridge_PropertyChildChangeFP propertyChildChangeFP;
  68     AccessBridge_PropertyActiveDescendentChangeFP propertyActiveDescendentChangeFP;
  69 
  70         AccessBridge_PropertyTableModelChangeFP propertyTableModelChangeFP;
  71 
  72 
  73 
  74 public:
  75         AccessBridgeEventHandler();
  76         ~AccessBridgeEventHandler();
  77         long getJavaEventMask() {return javaEventMask;};
  78         long getAccessibilityEventMask() {return accessibilityEventMask;};
  79 
  80         // ------- Registry methods
  81         void setPropertyChangeFP(AccessBridge_PropertyChangeFP fp, WinAccessBridge *wab);
  82         void setJavaShutdownFP(AccessBridge_JavaShutdownFP fp, WinAccessBridge *wab);
  83         void setFocusGainedFP(AccessBridge_FocusGainedFP fp, WinAccessBridge *wab);
  84         void setFocusLostFP(AccessBridge_FocusLostFP fp, WinAccessBridge *wab);
  85         void setCaretUpdateFP(AccessBridge_CaretUpdateFP fp, WinAccessBridge *wab);
  86         void setMouseClickedFP(AccessBridge_MouseClickedFP fp, WinAccessBridge *wab);
  87         void setMouseEnteredFP(AccessBridge_MouseEnteredFP fp, WinAccessBridge *wab);
  88         void setMouseExitedFP(AccessBridge_MouseExitedFP fp, WinAccessBridge *wab);
  89         void setMousePressedFP(AccessBridge_MousePressedFP fp, WinAccessBridge *wab);
  90         void setMouseReleasedFP(AccessBridge_MouseReleasedFP fp, WinAccessBridge *wab);
  91         void setMenuCanceledFP(AccessBridge_MenuCanceledFP fp, WinAccessBridge *wab);
  92         void setMenuDeselectedFP(AccessBridge_MenuDeselectedFP fp, WinAccessBridge *wab);
  93         void setMenuSelectedFP(AccessBridge_MenuSelectedFP fp, WinAccessBridge *wab);
  94         void setPopupMenuCanceledFP(AccessBridge_PopupMenuCanceledFP fp, WinAccessBridge *wab);
  95         void setPopupMenuWillBecomeInvisibleFP(AccessBridge_PopupMenuWillBecomeInvisibleFP fp,
  96                                                WinAccessBridge *wab);
  97         void setPopupMenuWillBecomeVisibleFP(AccessBridge_PopupMenuWillBecomeVisibleFP fp,
  98                                              WinAccessBridge *wab);
  99 
 100         void setPropertyNameChangeFP(AccessBridge_PropertyNameChangeFP fp, WinAccessBridge *wab);
 101         void setPropertyDescriptionChangeFP(AccessBridge_PropertyDescriptionChangeFP fp,
 102                                             WinAccessBridge *wab);
 103         void setPropertyStateChangeFP(AccessBridge_PropertyStateChangeFP fp, WinAccessBridge *wab);
 104         void setPropertyValueChangeFP(AccessBridge_PropertyValueChangeFP fp, WinAccessBridge *wab);
 105         void setPropertySelectionChangeFP(AccessBridge_PropertySelectionChangeFP fp,
 106                                           WinAccessBridge *wab);
 107         void setPropertyTextChangeFP(AccessBridge_PropertyTextChangeFP fp, WinAccessBridge *wab);
 108         void setPropertyCaretChangeFP(AccessBridge_PropertyCaretChangeFP fp, WinAccessBridge *wab);
 109         void setPropertyVisibleDataChangeFP(AccessBridge_PropertyVisibleDataChangeFP fp,
 110                                             WinAccessBridge *wab);
 111         void setPropertyChildChangeFP(AccessBridge_PropertyChildChangeFP fp, WinAccessBridge *wab);
 112         void setPropertyActiveDescendentChangeFP(AccessBridge_PropertyActiveDescendentChangeFP fp,
 113                                                  WinAccessBridge *wab);
 114 
 115         void setPropertyTableModelChangeFP(AccessBridge_PropertyTableModelChangeFP fp,
 116                                            WinAccessBridge *wab);
 117 
 118         // ------- Event notification methods
 119         void firePropertyChange(long vmID, JOBJECT64 event, JOBJECT64 source,
 120                                 wchar_t *property, wchar_t *oldName, wchar_t *newName);
 121         void fireJavaShutdown(long vmID);
 122         void fireFocusGained(long vmID, JOBJECT64 event, JOBJECT64 source);
 123         void fireFocusLost(long vmID, JOBJECT64 event, JOBJECT64 source);
 124         void fireCaretUpdate(long vmID, JOBJECT64 event, JOBJECT64 source);
 125         void fireMouseClicked(long vmID, JOBJECT64 event, JOBJECT64 source);
 126         void fireMouseEntered(long vmID, JOBJECT64 event, JOBJECT64 source);
 127         void fireMouseExited(long vmID, JOBJECT64 event, JOBJECT64 source);
 128         void fireMousePressed(long vmID, JOBJECT64 event, JOBJECT64 source);
 129         void fireMouseReleased(long vmID, JOBJECT64 event, JOBJECT64 source);
 130         void fireMenuCanceled(long vmID, JOBJECT64 event, JOBJECT64 source);
 131         void fireMenuDeselected(long vmID, JOBJECT64 event, JOBJECT64 source);
 132         void fireMenuSelected(long vmID, JOBJECT64 event, JOBJECT64 source);
 133         void firePopupMenuCanceled(long vmID, JOBJECT64 event, JOBJECT64 source);
 134         void firePopupMenuWillBecomeInvisible(long vmID, JOBJECT64 event, JOBJECT64 source);
 135         void firePopupMenuWillBecomeVisible(long vmID, JOBJECT64 event, JOBJECT64 source);
 136 
 137         void firePropertyNameChange(long vmID, JOBJECT64 event, JOBJECT64 source,
 138                                                         wchar_t *oldName, wchar_t *newName);
 139         void firePropertyDescriptionChange(long vmID, JOBJECT64 event, JOBJECT64 source,
 140                                                                wchar_t *oldDescription, wchar_t *newDescription);
 141         void firePropertyStateChange(long vmID, JOBJECT64 event, JOBJECT64 source,
 142                                                          wchar_t *oldState, wchar_t *newState);
 143         void firePropertyValueChange(long vmID, JOBJECT64 event, JOBJECT64 source,
 144                                                          wchar_t *oldValue, wchar_t *newValue);
 145         void firePropertySelectionChange(long vmID, JOBJECT64 event, JOBJECT64 source);
 146         void firePropertyTextChange(long vmID, JOBJECT64 event, JOBJECT64 source);
 147         void firePropertyCaretChange(long vmID, JOBJECT64 event, JOBJECT64 source,
 148                                                          int oldPosition, int newPosition);
 149         void firePropertyVisibleDataChange(long vmID, JOBJECT64 event, JOBJECT64 source);
 150         void firePropertyChildChange(long vmID, JOBJECT64 event, JOBJECT64 source,
 151                                                          JOBJECT64 oldChild, JOBJECT64 newChild);
 152         void firePropertyActiveDescendentChange(long vmID, JOBJECT64 event, JOBJECT64 source,
 153                                                                     JOBJECT64 oldActiveDescendent, JOBJECT64 newActiveDescendent);
 154 
 155         void firePropertyTableModelChange(long vmID, JOBJECT64 event, JOBJECT64 source,
 156                                                               wchar_t *oldValue, wchar_t *newValue);
 157 
 158 };
 159 
 160 
 161 #endif