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

GTK+ avec C & C++ Discussion :

versions de gtk et css


Sujet :

GTK+ avec C & C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur/Modérateur
    Avatar de troumad
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2003
    Messages
    5 607
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 5 607
    Par défaut versions de gtk et css
    Bonjour

    Je teste les thèmes gtk (à la suite de http://www.developpez.net/forums/d11...menu-colories/).
    J'ai de gros problèmes de compatibilités entre les versions de gtk3 !

    Je travaille sous Mageia 2, Mageia Cauldron (future 3) et Windows (sous WM qui vient de rebooter conte mon avis suite à une màj automatique ).

    Sous Mageia , j'ai gtk 3.4, sous Cauldron, j'ai gtk 3.5.12 et sous windows gtk3.4 il y a des différences...
    Certaines choses qui ne marchent pas sous gtk 3.4 marchent sous gtk 3.5. Ce code par exemple est sans effet sous gtk 3.4 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    GtkLabel
    {background-color: rgba(100%, 100%, 100%, 0.5)}
    Certains codes ne peuvent être simplifiés sous gtk 3.4 comme celui-là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    GtkWindow {
        background : url("./images/dragon.jpg") top center;
    }
    qui marche sous gtk 3.5 doit être mis en deux lignes pour être fonctionnel sous gtk 3.4 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    GtkWindow {
        background : url("./images/dragon.jpg");
        background-position : top center;
    }
    Après le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    background : url("./images/dragon.jpg");
    ne marche pas sous windows J'ai du mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    background-image : url("./images/dragon.jpg");
    Et l'image est dimensionnée pour être à la taille de la fenêtre contrairement à linux ! Peut-être parce que background-position n'est pas reconnu.

    Pourquoi ? Où puis-je trouver exactement des infos sur cela sans tâtonner comme je fais maintenant ?
    Modérateur Mageia/Mandriva Linux
    Amicalement VOOotre
    Troumad Alias Bernard SIAUD à découvrir sur http://troumad.org
    Mes tutoriels : xrandr, algorigramme et C, xml et gtk...

  2. #2
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 308
    Billets dans le blog
    5
    Par défaut
    Bon j'ai un peu trifouillé la doc pour obtenir l'image en pièce jointe.

    Le fichier css correspondant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    GtkButton {
    background-image : url('Images/lixgreen_thumb.jpg');
    background-repeat : no-repeat;
    background-size : cover;
    font: Comic Sans 12;
    font-style: italic;
    }
     
    GtkWindow {
    background-image : url('Images/mission_impossible.png');
    background-repeat : no-repeat;
    background-size : cover;  /*contain;*/
    }
    Le code source qui va avec :
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    #include <gtk/gtk.h>
    #include <stdlib.h>
     
    int
    main(int argc, char *argv [])
    {
      GtkWidget *fenetre_principale;
      GtkWidget *box;
      GtkWidget *button;
      GError *error = NULL;
      GtkCssProvider *cssprovider;
      GFile *file;
     
      /* Initialisation de la librairie Gtk. */
      gtk_init(&argc, &argv);
     
      // création de la fenêtre principale
      fenetre_principale =gtk_window_new ( GTK_WINDOW_TOPLEVEL );
      gtk_window_set_title(GTK_WINDOW(fenetre_principale), "Test background");
      gtk_window_set_position(GTK_WINDOW( fenetre_principale ), GTK_WIN_POS_CENTER_ALWAYS);
     
      box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
      gtk_container_add (GTK_CONTAINER (fenetre_principale), box);
     
      button = gtk_button_new_with_label ("mission impossible");
      gtk_box_pack_start (GTK_BOX (box), button, FALSE, FALSE, 4);
      button = gtk_button_new_with_label ("bouton 2");
      gtk_box_pack_start (GTK_BOX (box), button, FALSE, FALSE, 4);
     
      /* Ajout du css à la fenêtre */
      /* Chargement du css */
      file = g_file_new_for_path ("./cssprovider.style");
      cssprovider = gtk_css_provider_new ();
      if (!gtk_css_provider_load_from_file (cssprovider, file, &error))
        {
          g_printerr ("%s\n", error->message);
          exit (error->code);
        }
      gtk_style_context_add_provider_for_screen (gdk_display_get_default_screen (gtk_widget_get_display (fenetre_principale)), GTK_STYLE_PROVIDER (cssprovider), GTK_STYLE_PROVIDER_PRIORITY_USER);
     
     
     
      // signaux pour la fermeture de l'application
      g_signal_connect(G_OBJECT(fenetre_principale), "delete_event", (GCallback)gtk_main_quit, NULL);
      g_signal_connect(G_OBJECT(fenetre_principale), "destroy",(GCallback)gtk_main_quit, NULL);
     
      gtk_widget_show_all(fenetre_principale);
     
      gtk_main();
     
      g_object_unref (G_OBJECT (cssprovider));
     
      return 0;
    }
    Pour les infos c'est par ici : http://www.w3.org/TR/css3-background/
    Images attachées Images attachées  

  3. #3
    Rédacteur/Modérateur
    Avatar de troumad
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2003
    Messages
    5 607
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 5 607
    Par défaut
    Mon problème n'est pas tout à fait celui-ci !
    Je me suis bien sûr référé à mes connaissances css pour les pages html. Mon problème, c'est que la réaction n'est pas toujours la même en fonction du gtk utilisé. Tu as quelle version de gtk ?

    Par exemple, il y a des choses quant aux fonds qui ne marchent pas sous gtk 3.4 alors qu'elles passent sous gtk 3.5. C'est comme la compatibilité était en cours, mais inachevée.
    Modérateur Mageia/Mandriva Linux
    Amicalement VOOotre
    Troumad Alias Bernard SIAUD à découvrir sur http://troumad.org
    Mes tutoriels : xrandr, algorigramme et C, xml et gtk...

  4. #4
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 308
    Billets dans le blog
    5
    Par défaut
    Ma version gtk : 3.4.2-3 (Debian testing Amd64)

    Je n'ai pas l'impression qu'il y ait du nouveau entre la v3.4 et v3.5. La documentation spécifie simplement de respecter le CSS3.
    Ensuite certaines propriétés ne peuvent pas être contrôlées depuis un css. Le problème vient peut être de là...
    Supported properties

    Properties are the part that differ the most to common CSS, not all properties are supported (some are planned to be supported eventually, some others are meaningless or don't map intuitively in a widget based environment).
    Edit : faute corrigée .

  5. #5
    Rédacteur/Modérateur
    Avatar de troumad
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2003
    Messages
    5 607
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 5 607
    Par défaut
    Citation Envoyé par gerald3d Voir le message
    Je n'ai pas l'impression qu'il y ait du nouveau entre la v3.4 et v3.5.
    Alors pourquoi ai-je une différence ?
    Gnome3 classic d'un côté et Gnome3 normal de l'autre ?

    Je vais faire des tests !
    Modérateur Mageia/Mandriva Linux
    Amicalement VOOotre
    Troumad Alias Bernard SIAUD à découvrir sur http://troumad.org
    Mes tutoriels : xrandr, algorigramme et C, xml et gtk...

  6. #6
    Modérateur

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    1 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 395
    Par défaut
    Perso il me semble avoir entendu qu'une bonne partie du moteur de thèmes avait été réécrit, et les gens gueulent que ça n'a plus le même comportement entre GTK <= 3.4 et >= 3.5... A vérifier sur la mailing list GTK ou sur le bugzilla.

Discussions similaires

  1. Version de GTK+ requise
    Par Slookeur dans le forum GTK+ avec C & C++
    Réponses: 3
    Dernier message: 15/02/2011, 13h40
  2. [W3C] W3C quel version de html et css utiliser pour être optimal
    Par xess91 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 02/06/2009, 15h36
  3. Comment bien installer GTK+ avec la "bonne version"?
    Par 0v3rb1t dans le forum GTK+ avec C & C++
    Réponses: 13
    Dernier message: 16/11/2007, 23h43
  4. Devis version PHP/MYSQL/CSS site en flash
    Par djoyeux dans le forum Devis
    Réponses: 1
    Dernier message: 17/09/2007, 08h31
  5. [CSS] Version imprimable : imprimer un arrière-plan
    Par PtiBubu dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 15/11/2005, 15h16

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