首页 > 代码库 > CCEditBox/CCEditBoxImplMac

CCEditBox/CCEditBoxImplMac

#ifndef __CCEditBoxIMPLMAC_H__

#define __CCEditBoxIMPLMAC_H__


#include "cocos2d.h"


#if (CC_TARGET_PLATFORM == CC_PLATFORM_MAC)


#import <Foundation/Foundation.h>

#import <AppKit/AppKit.h>


#include "ExtensionMacros.h"

#include "CCEditBoxImpl.h"


@interface CustomNSTextField : NSTextField

{

}


@end


@interface EditBoxImplMac : NSObject <NSTextFieldDelegate>

{

    CustomNSTextField* textField_;

    void* editBox_;

    BOOL editState_;

}


@property(nonatomic, retain) NSTextField* textField;

@property(nonatomic, readonly, getter = isEditState) BOOL editState;

@property(nonatomic, assign) void* editBox;


-(id) initWithFrame: (NSRect) frameRect editBox: (void*) editBox;

-(void) doAnimationWhenKeyboardMoveWithDuration:(float)duration distance:(float)distance;

-(void) setPosition:(NSPoint) pos;

-(void) setContentSize:(NSSize) size;

-(void) visit;

-(void) openKeyboard;

-(void) closeKeyboard;


@end


NS_CC_EXT_BEGIN


class CCEditBox;


class CCEditBoxImplMac : public CCEditBoxImpl

{

public:

    CCEditBoxImplMac(CCEditBox* pEditText);

    virtual ~CCEditBoxImplMac();

    

    virtual bool initWithSize(const CCSize& size);

    virtual void setFont(const char* pFontName, int fontSize);

    virtual void setFontColor(const ccColor3B& color);

    virtual void setPlaceholderFont(const char* pFontName, int fontSize);

    virtual void setPlaceholderFontColor(const ccColor3B& color);

    virtual void setInputMode(EditBoxInputMode inputMode);

    virtual void setInputFlag(EditBoxInputFlag inputFlag);

    virtual void setMaxLength(int maxLength);

    virtual int  getMaxLength();

    virtual void setReturnType(KeyboardReturnType returnType);

    virtual bool isEditing();

    

    virtual void setText(const char* pText);

    virtual const char* getText(void);

    virtual void setPlaceHolder(const char* pText);

    virtual void setPosition(const CCPoint& pos);

    virtual void setVisible(bool visible);

    virtual void setContentSize(const CCSize& size);

    virtual void setAnchorPoint(const CCPoint& anchorPoint);

    virtual void visit(void);

    virtual void doAnimationWhenKeyboardMove(float duration, float distance);

    virtual void openKeyboard();

    virtual void closeKeyboard();

    virtual void onEnter(void);

private:

    NSPoint    convertDesignCoordToScreenCoord(const CCPoint& designCoord, bool bInRetinaMode);

    void       adjustTextFieldPosition();

    CCSize     m_tContentSize;

    CCPoint    m_obPosition;

    CCPoint    m_obAnchorPoint;

    int        m_nMaxTextLength;

    bool       m_bInRetinaMode;

    EditBoxImplMac*  m_pSysEdit;

};



NS_CC_EXT_END


#endif // #if (CC_TARGET_PLATFORM == CC_PLATFORM_MAC)


#endif /* __CCEditBoxIMPLMAC_H__ */


CCEditBox/CCEditBoxImplMac