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 :

couleur d'un mouse pointer


Sujet :

GTK+ avec C & C++

  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur Web en Loisir
    Inscrit en
    Janvier 2006
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web en Loisir

    Informations forums :
    Inscription : Janvier 2006
    Messages : 129
    Par défaut couleur d'un mouse pointer
    bonjour,

    J'ai réussi à changer le type de mouse pointer en croix mais il apparait toujours en noir, impossible de le mettre en rouge avec gtk_widget_override_cursor.

    Je suis sous GTK3
    Je vous livre un code tout simple, qu'est-ce qui ne va pas ?

    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
    #include <stdlib.h>
    #include <gtk/gtk.h>
     
    int main(int argc,char **argv)
    {
        GtkWidget* pWindow;
     
        gtk_init(&argc,&argv);
        pWindow = gtk_window_new(GTK_WINDOW_TOPLEVEL);
        gtk_window_set_title(GTK_WINDOW(pWindow), "Cursor");
        gtk_window_set_default_size(GTK_WINDOW(pWindow), 640, 480);
        gtk_widget_show_all(pWindow);
     
        GdkWindow *gdk_window = gtk_widget_get_window(pWindow);
        GdkCursor *curseur = NULL;
        curseur = gdk_cursor_new(GDK_CROSS);
        gdk_window_set_cursor(gdk_window, curseur);
     
        GdkRGBA colour;
        colour.red=1.0;
        colour.green=0.0;
        colour.blue=0.0;
        colour.alpha=0.5;
        gtk_widget_override_cursor(pWindow, &colour, &colour);
     
        gtk_main();
        return EXIT_SUCCESS;
    }

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur Web en Loisir
    Inscrit en
    Janvier 2006
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web en Loisir

    Informations forums :
    Inscription : Janvier 2006
    Messages : 129
    Par défaut
    bonsoir,

    Bon, je me suis dis que j'allais redessiné le curseur souris avec cairo mais là non plus, la couleur rouge ne prend pas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cairo_set_source_rgba (cr, 1, 0.2, 0.2, 0.6);
    n'est pas pris en compte. Mon curseur souris reste un cercle noir.
    J'ai fait un test pour savoir si cursor color était supporté et oui c'est le cas chez moi.

    Pouah ! Que faire ??

    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
    #include <stdlib.h>
    #include <gtk/gtk.h>
     
    int main(int argc,char **argv)
    {
        GtkWidget* pWindow;
     
        gtk_init(&argc,&argv);
        pWindow = gtk_window_new(GTK_WINDOW_TOPLEVEL);
        gtk_window_set_title(GTK_WINDOW(pWindow), "Cursor");
        gtk_window_set_default_size(GTK_WINDOW(pWindow), 640, 480);
        gtk_widget_show_all(pWindow);
     
        GdkWindow *gdk_window = gtk_widget_get_window(pWindow);
     
        GdkCursor *cursor;
        cairo_surface_t *s;
        cairo_t *cr;
        GdkPixbuf *pixbuf;
        GdkDisplay *display = gdk_display_get_default();
        gboolean res = gdk_display_supports_cursor_color(display);
        if (res == TRUE) { g_print("TRUE\n"); } else { g_print("FALSE\n"); }
     
        s = cairo_image_surface_create (CAIRO_FORMAT_A1, 16, 16);
        cr = cairo_create (s);
        cairo_set_source_rgba (cr, 1, 0.2, 0.2, 0.6);
        cairo_arc (cr, 8, 8, 8, 0, 2*3.141592653);
        cairo_fill (cr);
        cairo_destroy (cr);
     
        pixbuf = gdk_pixbuf_get_from_surface (s, 0, 0, 16, 16);
     
        cairo_surface_destroy (s);
     
        cursor = gdk_cursor_new_from_pixbuf (display, pixbuf, 0, 0);
        gdk_window_set_cursor(gdk_window, cursor);
        g_object_unref (pixbuf);
     
        gtk_main();
        return EXIT_SUCCESS;
    }

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur Web en Loisir
    Inscrit en
    Janvier 2006
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web en Loisir

    Informations forums :
    Inscription : Janvier 2006
    Messages : 129
    Par défaut
    Je commence à me demander si c'est pas à cause de windows ?

    Quelqu'un peut-il compiler les codes sous Linux et me dire si ça fonctionne ?

    merci

  4. #4
    Membre confirmé
    Homme Profil pro
    Développeur Web en Loisir
    Inscrit en
    Janvier 2006
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web en Loisir

    Informations forums :
    Inscription : Janvier 2006
    Messages : 129
    Par défaut
    Pour le code n°1, j'ai pas de réponse à donner.
    Par contre, pour le code n°2 j'ai enfin trouvé et c'était tout bête.

    Il faut remplacer CAIRO_FORMAT_A1 par CAIRO_FORMAT_ARGB32 pour avoir le résultat voulu. A1 étant par définition monochrome.

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

Discussions similaires

  1. figure pointer couleur
    Par svagrim dans le forum Interfaces Graphiques
    Réponses: 2
    Dernier message: 08/06/2015, 08h31
  2. alterner les couleurs dans un tableau avec xsl
    Par Eithelgul dans le forum XSL/XSLT/XPATH
    Réponses: 14
    Dernier message: 03/05/2015, 23h29
  3. Animation fade de couleur du bouton (mouse enter)
    Par Naografix dans le forum Windows Presentation Foundation
    Réponses: 4
    Dernier message: 22/02/2015, 21h18
  4. Mixage de Couleurs
    Par exxos dans le forum Algorithmes et structures de données
    Réponses: 15
    Dernier message: 29/05/2002, 13h34
  5. String Grid et choix d'une couleur pour une ligne
    Par Gigottine dans le forum C++Builder
    Réponses: 12
    Dernier message: 17/05/2002, 15h23

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