#ifndef __CC_IME_DELEGATE_H__
#define __CC_IME_DELEGATE_H__
#include "cocoa/CCGeometry.h"
NS_CC_BEGIN
/**
* @addtogroup input
* @{
*/
typedef struct
{
CCRect begin; // the soft keyboard rectangle when animation begins
CCRect end; // the soft keyboard rectangle when animation ends
float duration; // the soft keyboard animation duration
} CCIMEKeyboardNotificationInfo;
/**
@brief Input method editor delegate.
*/
class CC_DLL CCIMEDelegate
{
public:
virtual ~CCIMEDelegate();
virtual bool attachWithIME();
virtual bool detachWithIME();
protected:
friend class CCIMEDispatcher;
/**
@brief Decide if the delegate instance is ready to receive an IME message.
Called by CCIMEDispatcher.
*/
virtual bool canAttachWithIME() { return false; }
/**
@brief When the delegate detaches from the IME, this method is called by CCIMEDispatcher.
*/
virtual void didAttachWithIME() {}
/**
@brief Decide if the delegate instance can stop receiving IME messages.
*/
virtual bool canDetachWithIME() { return false; }
/**
@brief When the delegate detaches from the IME, this method is called by CCIMEDispatcher.
*/
virtual void didDetachWithIME() {}
/**
@brief Called by CCIMEDispatcher when text input received from the IME.
*/
virtual void insertText(const char * text, int len) {CC_UNUSED_PARAM(text);CC_UNUSED_PARAM(len);}
/**
@brief Called by CCIMEDispatcher after the user clicks the backward key.
*/
virtual void deleteBackward() {}
/**
@brief Called by CCIMEDispatcher for text stored in delegate.
*/
virtual const char * getContentText() { return 0; }
//
// keyboard show/hide notification
//
virtual void keyboardWillShow(CCIMEKeyboardNotificationInfo& info) {CC_UNUSED_PARAM(info);}
virtual void keyboardDidShow(CCIMEKeyboardNotificationInfo& info) {CC_UNUSED_PARAM(info);}
virtual void keyboardWillHide(CCIMEKeyboardNotificationInfo& info) {CC_UNUSED_PARAM(info);}
virtual void keyboardDidHide(CCIMEKeyboardNotificationInfo& info) {CC_UNUSED_PARAM(info);}
protected:
CCIMEDelegate();
};
// end of input group
/// @}
NS_CC_END
#endif // __CC_IME_DELEGATE_H__