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+ Discussion :

[C#/Gtk#3] Comment modifier une propriété de style d'un widget


Sujet :

GTK+

  1. #1
    Membre à l'essai
    Homme Profil pro
    ʌǝp
    Inscrit en
    Mars 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : ʌǝp

    Informations forums :
    Inscription : Mars 2006
    Messages : 22
    Points : 19
    Points
    19
    Par défaut [C#/Gtk#3] Comment modifier une propriété de style d'un widget
    Bonjour à tous,

    Un truc simple : sous Gtk# 3, je cherche un moyen de modifier dans le code une propriété de style d'un widget.
    Par exemple changer la forme et la couleur du curseur texte dans un TextView.
    (on parle ici du binding de Gtk+ 3 pour C#/.Net)

    J'arrive à avoir la valeur de la propriété :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    TextView view = new TextView();
    object style_prop = view.StyleGetProperty("cursor-aspect-ratio");
    Console.WriteLine(style_prop); // il affiche bien la valeur par défaut 0.04
    Mais je n'arrive pas à la modifier... Des idées ?
    D'avance merci.

  2. #2
    Membre confirmé Avatar de Gaulouis
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2015
    Messages
    252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2015
    Messages : 252
    Points : 476
    Points
    476
    Par défaut
    Bonjour,

    Peut-être avec la propriété :
    Code CSS : Sélectionner tout - Visualiser dans une fenêtre à part
    -GtkWidget-cursor-aspect-ratio

    Avec Gtk+3, j'obtiens:
    Nom : cursor.gif
Affichages : 294
Taille : 132,3 Ko

    A+

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

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

    Informations forums :
    Inscription : Février 2008
    Messages : 2 291
    Points : 4 941
    Points
    4 941
    Billets dans le blog
    5
    Par défaut
    Bonjour.

    D'après la documentation la propriété "cursor-aspect-ratio" est en simple lecture !
    Côté CSS je n'ai pas trouvé de propriété attachée au curseur.

    Je ne dis pas qu'il est impossible de modifier le curseur mais à priori cette possibilité ne semble pas faisable avec Gtk+.

    Maintenant je ne détiens pas la vérité .

  4. #4
    Membre confirmé Avatar de Gaulouis
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2015
    Messages
    252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2015
    Messages : 252
    Points : 476
    Points
    476
    Par défaut
    je ne détiens pas la vérité
    C'est déjà une vérité

    Mais, comme dirait :
    Citation Envoyé par Jean-Claude Van Damme
    La vérité doit s'inspirer de la pratique. C'est par la pratique que l'on conçoit la vérité. Il faut corriger la vérité d'après la pratique.



    En pratique ca donne ça en C/C++( qui pour porter le code en # )
    Code C : 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
     
    /* main.c
     * gcc `pkg-config --cflags gtk+-3.0` main.c -o main `pkg-config --libs gtk+-3.0`
     */
     
    #include <gtk/gtk.h>
     
    static void
    activate (GtkApplication *app,
              gpointer        user_data)
    {
      GtkWidget *window;
      GtkWidget *widget;
     
      window = gtk_application_window_new (app);
      gtk_window_set_title (GTK_WINDOW (window), "dvz");
      gtk_window_set_default_size (GTK_WINDOW (window), 200, 200);
      gtk_container_set_border_width (GTK_CONTAINER (window), 10);
     
      widget = gtk_text_view_new();
      gtk_container_add(GTK_CONTAINER(window), widget);
     
      /*gchar *data = "* { \
        -GtkTextView-cursor_aspect_ratio: 0.3; \
      }";*/
      gchar *data = "textview { \
        -GtkWidget-cursor-aspect-ratio: 0.1; \
      }";
      GtkCssProvider *cssProvider = gtk_css_provider_new();
      gtk_css_provider_load_from_data(cssProvider, data, strlen(data), NULL);
      gtk_style_context_add_provider_for_screen(gdk_screen_get_default(),
                                   GTK_STYLE_PROVIDER(cssProvider),
                                   GTK_STYLE_PROVIDER_PRIORITY_USER);
     
      gtk_widget_show_all (window);
    }
     
    int main(int   argc,
             char *argv[])
    {
      g_autoptr(GtkApplication) app = NULL;
      int status;
     
      app = gtk_application_new ("org.gnome.Dvz", G_APPLICATION_FLAGS_NONE);
      g_signal_connect (app, "activate", G_CALLBACK (activate), NULL);
      status = g_application_run (G_APPLICATION (app), argc, argv);
     
      return status;
    }

    PS: Pour s'approché de la vérité, je crois que la documentation se trouve au niveau de gtk-engine( murrine par exemple) Mais ca c'était en Gtk+2. La vérité restera décidément ailleurs...

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