• [^] # Re: >D'une part Safari est développé en Objective C

    Posté par . En réponse à la dépêche Apple ouvre le CVS de WebCore. Évalué à 5.

    Un exemple : Une interface ( dans un .h habituellement )
    #import <Foundation/Foundation.h>
    #ifdef __cplusplus
    class KHTMLSettings;
    #else
    @class KHTMLSettings;
    #endif
    @interface WebCoreSettings : NSObject
    {
     NSString *standardFontFamily;
     NSString *fixedFontFamily;
     NSString *serifFontFamily;
     .....
    }
    //les methodes 
    - (void) setStandardFontFamily: (NSString *)family;
    - (NSString *) standardFontFamily;
    .....
    - (KHTMLSettings *)settings;
    @end
    
    L'implementation ( ObjC appel du C++ ) , ici dans un .mm pour l'extention de Objective-C++, ( .m étant par défaut de l'Objective-C / C )
    #import "WebCoreSettings.h"
    #import "KWQFoundationExtras.h"
    #import "KWQKHTMLPart.h"
    #import "KWQKHTMLSettings.h"
    ....
    ...
     // debut d'implementation 
    @implementation WebCoreSettings
    // Du code C++ et objective-C tout mélangé
    - (void)setStandardFontFamily:(NSString *)s
    {
     if ([standardFontFamily isEqualToString:s]) {
     return;
     }
     [standardFontFamily release];
     standardFontFamily = [s copy];
     settings->setStdFontName(QString::fromNSString(s));
     [self _updateAllViews]; 
    }
    .....
    - (KHTMLSettings *)settings
    {
     return settings;
    }