URL: https://linuxfr.org/users/linkdd/journaux/des-nouvelles-de-cream-browser Title: Des nouvelles de Cream-Browser Authors: David Delassus Date: 2011年09月24日T01:11:54+02:00 Tags: web, creambrowser, lua, gtk3, vim, css et logiciel Score: 18 Je vous avez déjà parlé de _Cream-Browser_ dans ce [journal](http://linuxfr.org/users/linkdd/journaux/cream-browser). Après 5 long mois je pense qu'il est temps de rédiger un nouvel article pour ceux ayant la flemme de suivre le blog, le flux *RSS*, la mailing list ou carrément le *commit log* sur **github**. J'avais dans mon dernier article présenté deux caractéristiques de _Cream-Browser_ : - support de *GTK+-2.0* et *GTK+-3.0* - les **GModule** - la configuration en **lua** Quelques petites choses ont changés depuis. Suppression du support de *GTK+-2.0* =========== C'est relativement chiant de maintenir le support pour deux librairies, cela implique d'avoir les deux installées même si au final on en utilise qu'une seule :/ De plus **GTK+-3.0** apporte des fonctionnalités fortes intéressantes. Le support de **GTK+-2.0** handicape donc le développement sur certains point. Bref désormais _Cream-Browser_, c'est ***full-gtk3*** Les GModule remplacés par une interface. =========== Pour rappel, **GModule** me permet de charger une librairie dynamique au **runtime**. J'avais eu dans l'idée de déléguer le support des protocoles à des modules externes, ainsi on ne chargerait pas en mémoire ce dont on ne veut pas. L'idée est belle, mais pas réalisable. Si le module externe dépend lui même d'une autre librairie dynamique, il faut que _Cream-Browser_ soit lié à cette librairie lors de la compilation. On perd donc totalement l'aspect **runtime** de la chose. Donc au lieu de créer un module externe, il s'agit désormais d'un module interne (un simple **GObject** qui implémente l'interface **CreamModule**, via cette interface _Cream-Browser_ utilise le module qui est associé à tel ou tel protocole). La configuration lua =========== Je tiens à préciser qu'il s'agit ici uniquement de la configuration qui est en *lua*, pas comme **luakit** (celui ci se présente sous la forme d'une librairie *lua* développé en *C*, le navigateur à proprement parler est donc développé en *lua*). Actuellement seul les key-bindings sont fait, je vous invite à voir cette [page](http://github.com/linkdd/cream-browser/wiki/Configuration). GtkVimSplit =========== Je suis plutôt fier de cette fonctionnalité (qui a dit auto-satisfaction ?), et je n'ai vu aucun navigateur l'implémenter, je n'ai peut-être pas cherché assez loin. Vous, linuxiens aguerri, vous connaissez **vim**, vous connaissez les commandes ***split*** et ***vsplit***. Le *GtkVimSplit* est un widget de ma création permettant la même chose dans _Cream-Browser_. Je vous laisse voir le résultat sur la section [captures d'écran](http://github.com/linkdd/cream-browser/wiki/Screenshots) du wiki. Après tout, je veux faire un navigateur **vim-like**, je me devais d'implémenter cette fonctionnalité. Personnalisation de l'interface via du *CSS* =========== C'est une des fonctionnalités de **GTK+-3.0** qui m'a séduit : le ***GtkCssProvider*** pour charger une feuille de style *CSS* afin de personnaliser l'apparence des widgets *GTK*. On passe donc de ceci : [![screenshot](https://github.com/linkdd/cream-browser/wiki/screenshots/small/gtkvimsplit.png)](https://github.com/linkdd/cream-browser/wiki/screenshots/big/gtkvimsplit.png) à ceci : [![screenshot](https://github.com/linkdd/cream-browser/wiki/screenshots/small/css-theme.png)](https://github.com/linkdd/cream-browser/wiki/screenshots/big/css-theme.png) Ce qu'il reste à faire =========== - Cookies/Session/Favoris/Historique : la base d'un navigateur quoi. - La complétion - Le **follow-hint** : Essayez de tapez "f" lorsque vous êtes sous **Vimperator**/**Pentadactyl** (*firefox*), vous verrez comme c'est pratique :) - L'API *lua* : Elle avance, mais il y a encore pas mal de choses à faire dedans. - Un *plugin-blocker* : Par exemple afficher un bouton **"Activer l'animation flash"** à la place de l'animation en elle même et l'activer seulement si on clique sur le bouton, le tout scriptable en *lua* bien sûr. - La finition du module **WebKit** et le développement de quelques autres ((S)FTP, Gopher, ...) - Et sûrement d'autres choses encore. Bref j'ai encore du boulot mais j'espère sortir rapidement une release ^^. Infos supplémentaires ===================== - Un canal IRC est ouvert depuis les débuts du projet : #cream-browser @ irc.freenode.net - Le site Internet est disponible à l'adresse suivante : http://cream-browser.net/ - Le blog est disponible à l'adresse suivante : http://cream-browser.net/blog/ [[RSS](http://cream-browser.net/blog/rss2.xml)] - Les mailing list : [devel](http://groups.google.com/group/cream-browser-devel), [users](http://groups.google.com/group/cream-browser-users) - Le wiki : http://github.com/linkdd/cream-browser/wiki/ - Lien sur github : http://github.com/linkdd/cream-browser

AltStyle によって変換されたページ (->オリジナル) /