forked from mirrors/gecko-dev
		
	 265e672179
			
		
	
	
		265e672179
		
	
	
	
	
		
			
			# ignore-this-changeset --HG-- extra : amend_source : 4d301d3b0b8711c4692392aa76088ba7fd7d1022
		
			
				
	
	
		
			95 lines
		
	
	
	
		
			4.2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			95 lines
		
	
	
	
		
			4.2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| /* This Source Code Form is subject to the terms of the Mozilla Public
 | |
|  * License, v. 2.0. If a copy of the MPL was not distributed with this
 | |
|  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 | |
| 
 | |
| #ifndef mozilla_textinputdispatcherlistener_h_
 | |
| #define mozilla_textinputdispatcherlistener_h_
 | |
| 
 | |
| #include "nsWeakReference.h"
 | |
| 
 | |
| namespace mozilla {
 | |
| namespace widget {
 | |
| 
 | |
| class TextEventDispatcher;
 | |
| struct IMENotification;
 | |
| struct IMENotificationRequests;
 | |
| 
 | |
| #define NS_TEXT_INPUT_PROXY_LISTENER_IID \
 | |
|   {0xf2226f55,                           \
 | |
|    0x6ddb,                               \
 | |
|    0x40d5,                               \
 | |
|    {0x8a, 0x24, 0xce, 0x4d, 0x5b, 0x38, 0x15, 0xf0}};
 | |
| 
 | |
| class TextEventDispatcherListener : public nsSupportsWeakReference {
 | |
|  public:
 | |
|   NS_DECLARE_STATIC_IID_ACCESSOR(NS_TEXT_INPUT_PROXY_LISTENER_IID)
 | |
| 
 | |
|   /**
 | |
|    * NotifyIME() is called by TextEventDispatcher::NotifyIME().  This is a
 | |
|    * notification or request to IME.  See document of nsIWidget::NotifyIME()
 | |
|    * for the detail.
 | |
|    */
 | |
|   NS_IMETHOD NotifyIME(TextEventDispatcher* aTextEventDispatcher,
 | |
|                        const IMENotification& aNotification) = 0;
 | |
| 
 | |
|   /**
 | |
|    * Returns preference for which IME notification are received by NotifyIME().
 | |
|    */
 | |
|   NS_IMETHOD_(IMENotificationRequests) GetIMENotificationRequests() = 0;
 | |
| 
 | |
|   /**
 | |
|    * OnRemovedFrom() is called when the TextEventDispatcher stops working and
 | |
|    * is releasing the listener.
 | |
|    */
 | |
|   NS_IMETHOD_(void)
 | |
|   OnRemovedFrom(TextEventDispatcher* aTextEventDispatcher) = 0;
 | |
| 
 | |
|   /**
 | |
|    * WillDispatchKeyboardEvent() may be called immediately before
 | |
|    * TextEventDispatcher dispatching a keyboard event.  This is called only
 | |
|    * during calling TextEventDispatcher::DispatchKeyboardEvent() or
 | |
|    * TextEventDispatcher::MaybeDispatchKeypressEvents().  But this may not
 | |
|    * be called if TextEventDispatcher thinks that the keyboard event doesn't
 | |
|    * need alternative char codes.
 | |
|    *
 | |
|    * This method can overwrite any members of aKeyboardEvent which is already
 | |
|    * initialized by TextEventDispatcher.  If it's necessary, this method should
 | |
|    * overwrite the charCode when Control key is pressed.  TextEventDispatcher
 | |
|    * computes charCode from mKeyValue.  However, when Control key is pressed,
 | |
|    * charCode should be an ASCII char.  In such case, this method needs to
 | |
|    * overwrite it properly.
 | |
|    *
 | |
|    * @param aTextEventDispatcher    Pointer to the caller.
 | |
|    * @param aKeyboardEvent          The event trying to dispatch.
 | |
|    *                                This is already initialized, but if it's
 | |
|    *                                necessary, this method should overwrite the
 | |
|    *                                members and set alternative char codes.
 | |
|    * @param aIndexOfKeypress        When aKeyboardEvent is eKeyPress event,
 | |
|    *                                it may be a sequence of keypress events
 | |
|    *                                if the key causes multiple characters.
 | |
|    *                                In such case, this indicates the index from
 | |
|    *                                first keypress event.
 | |
|    *                                If aKeyboardEvent is the first eKeyPress or
 | |
|    *                                other events, this value is 0.
 | |
|    * @param aData                   The pointer which was specified at calling
 | |
|    *                                the method of TextEventDispatcher.
 | |
|    *                                For example, if you do:
 | |
|    *                                |TextEventDispatcher->DispatchKeyboardEvent(
 | |
|    *                                   eKeyDown, event, status, this);|
 | |
|    *                                Then, aData of this method becomes |this|.
 | |
|    *                                Finally, you can use it like:
 | |
|    *                                |static_cast<NativeEventHandler*>(aData)|
 | |
|    */
 | |
|   NS_IMETHOD_(void)
 | |
|   WillDispatchKeyboardEvent(TextEventDispatcher* aTextEventDispatcher,
 | |
|                             WidgetKeyboardEvent& aKeyboardEvent,
 | |
|                             uint32_t aIndexOfKeypress, void* aData) = 0;
 | |
| };
 | |
| 
 | |
| NS_DEFINE_STATIC_IID_ACCESSOR(TextEventDispatcherListener,
 | |
|                               NS_TEXT_INPUT_PROXY_LISTENER_IID)
 | |
| 
 | |
| }  // namespace widget
 | |
| }  // namespace mozilla
 | |
| 
 | |
| #endif  // #ifndef mozilla_textinputdispatcherlistener_h_
 |