⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 objcassociate.h

📁 很牛的GUI源码wxWidgets-2.8.0.zip 可在多种平台下运行.
💻 H
字号:
/////////////////////////////////////////////////////////////////////////////// Name:        wx/cocoa/ObjcAssociate.h// Purpose:     Associates an Objective-C class with a C++ class// Author:      David Elliott// Modified by:// Created:     2002/12/03// RCS-ID:      $Id: ObjcAssociate.h,v 1.5 2006/10/16 09:29:42 ABX Exp $// Copyright:   (c) 2002 David Elliott <dfe@cox.net>// Licence:     wxWindows licence/////////////////////////////////////////////////////////////////////////////#ifndef __WX_COCOA_OBJC_ASSOCIATE_H__#define __WX_COCOA_OBJC_ASSOCIATE_H__/*-------------------------------------------------------------------------Basic hashmap stuff, used by everything-------------------------------------------------------------------------*/#define WX_DECLARE_OBJC_HASHMAP(ObjcClass) \class wxCocoa##ObjcClass; \WX_DECLARE_HASH_MAP(WX_##ObjcClass,wxCocoa##ObjcClass*,wxPointerHash,wxPointerEqual,wxCocoa##ObjcClass##Hash)#define WX_DECLARE_OBJC_INTERFACE_HASHMAP(ObjcClass) \public: \    static inline wxCocoa##ObjcClass* GetFromCocoa(WX_##ObjcClass cocoaObjcClass) \    { \        wxCocoa##ObjcClass##Hash::iterator iter = sm_cocoaHash.find(cocoaObjcClass); \        if(iter!=sm_cocoaHash.end()) \        { \            return iter->second; \        } \        return NULL; \    } \protected: \    static wxCocoa##ObjcClass##Hash sm_cocoaHash;#define WX_IMPLEMENT_OBJC_INTERFACE_HASHMAP(ObjcClass) \wxCocoa##ObjcClass##Hash wxCocoa##ObjcClass::sm_cocoaHash;/*-------------------------------------------------------------------------The entire interface, including some boilerplate stuff-------------------------------------------------------------------------*/#define WX_DECLARE_OBJC_INTERFACE(ObjcClass) \WX_DECLARE_OBJC_INTERFACE_HASHMAP(ObjcClass) \public: \    inline void Associate##ObjcClass(WX_##ObjcClass cocoaObjcClass) \    { \        if(cocoaObjcClass) \            sm_cocoaHash.insert(wxCocoa##ObjcClass##Hash::value_type(cocoaObjcClass,this)); \    } \    inline void Disassociate##ObjcClass(WX_##ObjcClass cocoaObjcClass) \    { \        if(cocoaObjcClass) \            sm_cocoaHash.erase(cocoaObjcClass); \    }#define WX_IMPLEMENT_OBJC_INTERFACE(ObjcClass) \WX_IMPLEMENT_OBJC_INTERFACE_HASHMAP(ObjcClass)/*-------------------------------------------------------------------------Stuff to be used by the wxWidgets class (not the Cocoa interface)-------------------------------------------------------------------------*/#define WX_DECLARE_COCOA_OWNER(ObjcClass,ObjcBase,ObjcRoot) \public: \    inline WX_##ObjcClass Get##ObjcClass() { return (WX_##ObjcClass)m_cocoa##ObjcRoot; } \    inline const WX_##ObjcClass Get##ObjcClass() const { return (WX_##ObjcClass)m_cocoa##ObjcRoot; } \protected: \    void Set##ObjcClass(WX_##ObjcClass cocoaObjcClass);#define WX_IMPLEMENT_COCOA_OWNER(wxClass,ObjcClass,ObjcBase,ObjcRoot) \void wxClass::Set##ObjcClass(WX_##ObjcClass cocoaObjcClass) \{ \    Disassociate##ObjcClass((WX_##ObjcClass)m_cocoa##ObjcRoot); \    Set##ObjcBase(cocoaObjcClass); \    Associate##ObjcClass((WX_##ObjcClass)m_cocoa##ObjcRoot); \}#endif // __WX_COCOA_OBJC_ASSOCIATE_H__

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -