septembre
2009
Bonjour !
Pour mon troisième et dernier volet consacré au widget GtkSourceView 2, je vous propose de parler un peu des thèmes de coloration syntaxique et du widget GtkSourceStyleScheme.
Pour accéder aux thèmes installés sur votre ordinateur (ils se trouvent dans le répertoire /usr/share/gtksourceview-2.0/styles et ce sont des fichiers XML), vous devez d’abord créer un widget de type GtkSourceStyleSchemeManager. Vous l’aurez compris, c’est le gestionnaire de thèmes ! Pour en créer un avec LablGTK, rien de plus facile :
let manager = GSourceView2.source_style_scheme_manager ~default:true
Ce gestionnaire vous donne accès à une liste d’identifiants (ids) qui correspondent à tous les thèmes installés. Chaque identifiant vous donne accès à un widget GtkSourceStyleScheme qui contient les données du thème proprement dit. Pour récupérer les thèmes, vous pouvez procéder ainsi :
let manager = GSourceView2.source_style_scheme_manager ~default:true in
List.map (fun id ->
match manager#style_scheme id with
| Some scheme -> scheme
| _ -> assert false (* cas logiquement impossible dans ce contexte. *)
) (List.sort String.compare manager#style_scheme_ids)
Enfin, chaque GtkSourceStyleScheme contient des informations que vous pouvez extraire et afficher dans vos applications : il s’agit du nom et de la description du thème. Voyez par exemple :
Printf.printf "Nom : %s\nDescription : %s\n"
scheme#name scheme#description;
flush stdout
En combinant ces quelques idées, on peut facilement extraire la liste des thèmes disponibles pour l’insérer dans une application et laisser à l’utilisateur le soin de choisir ce qui lui plaît le plus (à la manière de gedit) :
Pour finir, voici quelques liens qui pourront vous aider à aller plus loin :
À bientôt,
Cacophrène