Faire un don ! | | style | statistiques | contactez-nous | plan | lettre d'information

: Apple ouvre le CVS de WebCore

Posté par Philippe Fremy (page perso, ). Modéré le 08 juin 2005.
Suite à la mauvaise presse faite à Apple parce qu'elle ne « jouait pas le jeu » avec la communauté du libre, notamment les développeurs de KHTML, Apple a décidé d'ouvrir complètement le CVS et la base de données de bugs de leur moteur web, WebCore, et d'être plus réceptif.

> Lire la dépêche (56 commentaires, moyenne: 2,1).  

Vous avez demandé le commentaire #585968.

>D'une part Safari est développé en Objective C

Posté par oops (page perso, ) le 08/06/2005 à 11:34. (lien). Évalué à 1.

Il ne me semble pas que Safari soit inclus dans le WebKit.
Le WebKit est le coeur de Safari.

D'autres part Objective-C++ ( berk ) devrait être inclus dans gcc-4.1
ce qui permettra à KDE d'utilser l'Objective-C et à GNUstep d'utiliser le C++ ...

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

    Posté par Philippe Fremy (page perso, ) le 08/06/2005 à 13:51. (lien). Évalué à 3.

    Je m'avance un peu mais M. Binding de KDE, nom de code Richard Dale a commence a travailler sur les bindings de KDE uniquement pour pouvoir ecrire des applis KDE en Objective C. Depuis, il s'est plus tourne vers java, ruby et C# mais je ne serai pas surpris que les bindings objective C marchent encore.

    Mais il faut bien plus que gcc pour faire marcher KDE en objective C. Il faut que chaque classe C++ soit egalement accessible en objective C, ce qui represente le gros du travail du binding. Heureusement, tout ca est relativement automatise, de sorte qu'on a un moteur (nom de code smoke) qui genere un "runtime", c'est a dire un espece de pont generique entre KDE/Qt et des fonctions en C. Generer des bindings revient a alors juste a interfacer le "runtime".

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

      Posté par oops (page perso, ) le 08/06/2005 à 14:29. (lien). Évalué à 6.

      >Mais il faut bien plus que gcc pour faire marcher KDE en objective C.

      Je ne pense pas .
      Ce n'est pas un binding ...

      En fait ObjC++ permet d'appeler des classes C++ a partir 'objective-C et inversement

      ObjC++ est un extension du système de classe d'objective-C ( qui est lui est simple ) au niveau compilo.

      Ce que tu ne peux pas faire c'est hériter d'une classe C++ dans une classe ObjC.

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

        Posté par Philippe Fremy (page perso, ) le 08/06/2005 à 16:07. (lien). Évalué à 2.

        Donc tu peux instancier des classes C++. Il y a pas besoin d'un .h en objective C pour faire ca ?

        Qt s'appuie beaucoup sur l'heritage et la surcharge de methodes pour fonctionner. Si tu ne peux faire aucune de ces deux choses, tu ne vas pas aller tres loin.

        Mais quand meme ca ouvre des perspectives...

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

          Posté par oops (page perso, ) le 08/06/2005 à 16:34. (lien). É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;
          }