IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Caml Discussion :

ocaml 3.10.2 & lablgtk 1.2.7


Sujet :

Caml

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 47
    Points : 39
    Points
    39
    Par défaut ocaml 3.10.2 & lablgtk 1.2.7
    Bonjour,

    Question dénuée de tout intérêt mais dont j'aimerai bien connaître la réponse.

    J'aurais voulu savoir s'il y avait un quelconque rapport entre ocaml & gtk et les fichiers
    se trouvant dans /etc/gtk/gtkrc.XX, i.e. est-ce que ceux-ci (/etc/gtk/gtkrc.XX)
    sont utilisé par ocaml si on réalise une IHM ou bien seulement les fichiers se trouvant dans /usr/lib/ocaml/... sont utilisés ?

    Mon but est en fait de modifier de façon simple (une seule modif sinon ce n'est plus maintienable)
    la couleur d'arrière plan d'une fenêtre, et donc par extension de toutes les fenêtres.

    J'ai lu que la couleur grise par défaut faisait en fait parti du thème (par défaut) et que
    si on voulait changer ça il fallait changer le style.

    source : http://live.gnome.org/GnomeArt/Tutorials/GtkThemes

    Bien évidement je n'ai pas le résultat choisi mais en même temps je ne sais pas quel fichier
    gtkrc.XX ocaml utilise (s'il en utilise un). J'ai fait à tout hasard la modif sur le fichier gtkrc.utf-8.

    En voyant ceci, je me suis demandé s'il ne pouvait pas y avoir une certaine relation entre
    ces fichiers (qui chez moi contiennent simplement des polices à utiliser) et et le fait qu'il peut
    y avoir un défaut d'affichage (pour les accents français) ?

    Je sais pas si c'est très clair mais je me ferais un plaisir de rajouter des détails s'il faut ^^

    Merci.

  2. #2
    Membre éprouvé
    Avatar de Cacophrene
    Homme Profil pro
    Biologiste
    Inscrit en
    Janvier 2009
    Messages
    535
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Biologiste

    Informations forums :
    Inscription : Janvier 2009
    Messages : 535
    Points : 1 125
    Points
    1 125
    Par défaut
    Bonjour !

    Avant toute chose je te conseille de passer à LablGTK2 plutôt que d'utiliser encore les version 1.* (sauf si tu as une bonne raison de le faire). Les versions de la série 2 sont aujourd'hui très stables et peuvent être utilisées sans problème. Pour information la version actuelle est la 2.14.

    Citation Envoyé par asefthukom
    Mon but est en fait de modifier de façon simple (une seule modif sinon ce n'est plus maintienable) la couleur d'arrière plan d'une fenêtre
    Pour ça, il n'est pas nécessaire de passer par les fichiers RC. Voici un exemple simple (la ligne importante est écrite en vert) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    (* val get_window : GDraw.color -> GWindow.window *)
    let get_window backcolor =
      let wnd = GWindow.window () in
      wnd#misc#modify_bg [`NORMAL, backcolor];
      wnd
    Évidemment ce code ne modifie qu'une seule fenêtre... Juste une remarque en passant : on déconseille généralement de modifier les couleurs, au risque qu'elles ne soient plus du tout plaisantes combinées à tel ou tel thème un peu exotique. Mais bien sûr il y a toujours des cas où c'est justifié. Bon, voyons quand même comment faire avec un fichier RC...

    Citation Envoyé par asefthukom
    Bien évidement je n'ai pas le résultat choisi mais en même temps je ne sais pas quel fichier gtkrc.XX ocaml utilise (s'il en utilise un). J'ai fait à tout hasard la modif sur le fichier gtkrc.utf-8
    De façon générale, il faut éviter de modifier les fichiers présents sur le système de fichiers. Utilise plutôt une copie locale qui sera analysée par GTK. Voir la documentation :

    Citation Envoyé par Documentation GTK
    For each RC file, in addition to the file itself, GTK+ will look for a locale-specific file that will be parsed after the main file. For instance, if LANG is set to ja_JP.ujis, when loading the default file ~/.gtkrc then GTK+ looks for ~/.gtkrc.ja_JP and ~/.gtkrc.ja, and parses the first of those that exists.
    D'abord créer un fichier test.rc dans le dossier courant, et lui ajouter ceci (voir le lien ci-dessus pour la documentation) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    style "BlackWindow" { bg[NORMAL] = "black" }
    class "GtkWindow" style "BlackWindow"
    Ensuite, dans le fichier test.ml, placer le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    let _ =
      GMain.Rc.add_default_file "test.rc";
      GMain.init ()
    
    let window = 
      let wnd = GWindow.window 
        ~position:`CENTER
        ~width:200 ~height:200 () in
      wnd#connect#destroy GMain.quit;
      wnd
    
    let _ =
      window#show ();
      GMain.main ()
    Compilation et exécution : ocamlc -w s -I +lablgtk2 lablgtk.cma test.ml -o test && ./test. Et c'est tout !

    Remarque 1 : GMain.Rc.add_default_file ajoute le fichier à la liste des fichiers lus à la fin de GMain.init. Il faut donc que la commande apparaisse avant l'initialisation !

    Remarque 2 : LablGTK2 ne fournit pas de binding pour toutes les fonctions de manipulation des fichiers RC. Ce n'est pas très gênant dans la mesure où add_default_file suffit à faire toutes les modifications que l'on veut.

    Cordialement,
    Cacophrène

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 47
    Points : 39
    Points
    39
    Par défaut
    Merci pour toutes ces informations qui m'ont permis de résoudre ce "problème".

    Envoyé par Cacophrène :
    Avant toute chose je te conseille de passer à LablGTK2 plutôt que d'utiliser encore les version 1.* (sauf si tu as une bonne raison de le faire).

    ...

    Évidemment ce code ne modifie qu'une seule fenêtre... Juste une remarque en passant : on déconseille généralement de modifier les couleurs, au risque qu'elles ne soient plus du tout plaisantes combinées à tel ou tel thème un peu exotique. Mais bien sûr il y a toujours des cas où c'est justifié.
    Malheureusement oui, et encore oui

    Par ailleurs cette solution marche donc aussi pour lablgtk 1.xx

    Désolé de ne pas avoir répondu plus tôt, mais merci encore !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Ocaml + lablgtk]
    Par Hayawan dans le forum Caml
    Réponses: 4
    Dernier message: 18/10/2013, 19h41
  2. Réponses: 2
    Dernier message: 21/11/2012, 18h32
  3. ocaml lablgtk compilation
    Par asefthukom dans le forum Caml
    Réponses: 2
    Dernier message: 14/02/2011, 21h17
  4. Probleme Lablgtk Ocaml
    Par Suzaku dans le forum Caml
    Réponses: 10
    Dernier message: 19/10/2010, 20h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo