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 :

fichier gtkrc + apparence label des boutons


Sujet :

GTK+ avec C & C++

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 111
    Points : 63
    Points
    63
    Par défaut fichier gtkrc + apparence label des boutons
    Bonjour à tous !!

    Je n'arrive pas à changer la couleur des labels de mes boutons en fonction de leur état (par exemple , normal -> jaune, selected ou prelight -> cyan ...) à l'aide de mon fichier gtkrc.
    Je veux que les autres labels restent semblables à windows ou au theme que j'aurais choisi.

    Voici mon fichier gtkrc :
    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
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
     
    gtk-icon-sizes = "gtk-menu=13,13:gtk-small-toolbar=16,16:gtk-large-toolbar=24,24:gtk-dnd=32,32"
    gtk-toolbar-icon-size = small-toolbar
     
    # disable images in buttons. i've only seen ugly delphi apps use this feature.
    gtk-button-images = 0
     
    # enable/disable images in menus. most "stock" microsoft apps don't use these, except sparingly.
    # the office apps use them heavily, though.
    gtk-menu-images = 1
     
    # use the win32 button ordering instead of the GNOME HIG one, where applicable
    gtk-alternative-button-order = 1
     
    style "msw-test"="msw"
    {
      GtkRange::slider_width = 30
    }
    class "GtkScrollbar" style "msw-test"
     
    style "msw"
    {
    	fg[NORMAL]                 = { 0, 0, 0 }
    	fg[PRELIGHT]               = { 0, 0, 0 }
    	fg[ACTIVE]                 = { 0, 0, 0 }
    	fg[INSENSITIVE]            = { 0.5, 0.5, 0.5 }
    	fg[SELECTED]               = { 0, 0, 0 }
        bg[NORMAL]                 = { 0, 0, 0 }
    	bg[PRELIGHT]               = { 0, 0, 0 }
    	bg[ACTIVE]                 = { 0, 0, 0 } 
    	bg[INSENSITIVE]            = { 0, 0, 0 }
    	bg[SELECTED]               = { 0, 0, 0 }
    	base[NORMAL]               = { 0, 0, 0 }
    	base[PRELIGHT]             = { 0, 0, 0 }
    	base[ACTIVE]               = { 0, 0, 0 }
    	base[INSENSITIVE]          = { 0, 0, 0 }
    	base[SELECTED]             = { 0, 0, 0 }
    	text[NORMAL]               = { 0, 0, 0 }
    	text[PRELIGHT]             = { 0, 1.0, 1.0 }
    	text[ACTIVE]               = { 0, 0, 0 }
    	text[INSENSITIVE]          = { 0.5, 0.5, 0.5 }
    	text[SELECTED]             = { 1.0, 1.0, 0 } 
    	#light[NORMAL]              = { 0, 0, 0 }
    	#light[PRELIGHT]            = { 0, 0, 0 }
    	#light[ACTIVE]              = { 0, 0, 0 }
    	#light[INSENSITIVE]         = { 0, 0, 0 }
    	#light[SELECTED]            = { 0, 0, 0 } 
    	#mid[NORMAL]                = { 0, 0, 0 }
    	#mid[PRELIGHT]              = { 0, 0, 0 }
    	#mid[ACTIVE]                = { 0, 0, 0 }
    	#mid[INSENSITIVE]           = { 0, 0, 0 }
    	#mid[SELECTED]              = { 0, 0, 0 } 
    	#dark[NORMAL]               = { 0, 0, 0 }
    	#dark[PRELIGHT]             = { 0, 0, 0 }
    	#dark[ACTIVE]               = { 0, 0, 0 }
    	#dark[INSENSITIVE]          = { 0, 0, 0 }
    	#dark[SELECTED]             = { 0, 0, 0 } 
    	#fg_gc[NORMAL]			   = { 0, 0, 0 }
    	#fg_gc[PRELIGHT]			   = { 0, 0, 0}
    	#fg_gc[ACTIVE]			   = { 0, 0, 0}
    	#fg_gc[INSENSITIVE]		   = { 0, 0, 0}
    	#fg_gc[SELECTED]			   = { 0, 0, 0}
    	#bg_gc[NORMAL]			   = { 0, 0, 0}
    	#bg_gc[PRELIGHT]			   = { 0, 0, 0}
    	#bg_gc[ACTIVE]			   = { 0, 0, 0}
    	#bg_gc[INSENSITIVE]		   = { 0, 0, 0}
    	#bg_gc[SELECTED]			   = { 0, 0, 0}
    	#light_gc[NORMAL]		   = { 1.0, 0, 0}
    	#light_gc[PRELIGHT]		   = { 1.0, 0, 0}
    	#light_gc[ACTIVE]		   = { 1.0, 0, 0}
    	#light_gc[INSENSITIVE]	   = { 1.0, 0, 0}
    	#light_gc[SELECTED]		   = { 1.0, 0, 0}
    	#base_gc[NORMAL]			   = { 0, 0, 0}
    	#base_gc[PRELIGHT]			   = { 0, 0, 0}
    	#base_gc[ACTIVE]			   = { 0, 0, 0}
    	#base_gc[INSENSITIVE]		   = { 0, 0, 0}
    	#base_gc[SELECTED]			   = { 0, 0, 0}
    	GtkButton::default_border  = {0,0,0,0}
    	GtkButton::inner_border    = {0,0,0,0}
    	GtkButton::default_outside_border = { 0,0,0,0 }
    	xthickness = 1
    	ythickness = 1
    }
    class "GtkWidget" style "msw"
     
    style "msw-button"="msw"
    {
    	fg[NORMAL]                 = { 1.0, 1.0, 0 }
    	fg[PRELIGHT]               = { 0, 1.0, 1.0 }
    	fg[ACTIVE]                 = { 0, 0, 0 }
    	fg[INSENSITIVE]            = { 0.5, 0.5, 0.5 }
    	fg[SELECTED]               = { 1.0, 1.0, 0 }
    	bg[NORMAL]                 = { 0, 0, 0 }
    	bg[PRELIGHT]               = { 0, 0, 0 }
    	bg[ACTIVE]                 = { 0.5, 0.5, 0.5 } 
    	bg[INSENSITIVE]            = { 0.5, 0.5, 0.5 }
    	bg[SELECTED]               = { 0, 0, 0 }
    	base[NORMAL]               = { 0, 0, 0 }
    	base[PRELIGHT]             = { 0, 0, 0 }
    	base[ACTIVE]               = { 0.5, 0.5, 0.5 }
    	base[INSENSITIVE]          = { 0.5, 0.5, 0.5 }
    	base[SELECTED]             = { 0, 0, 0 }
    	text[NORMAL]               = { 1.0, 1.0, 0 }
    	text[PRELIGHT]             = { 0, 1.0, 1.0 }
    	text[ACTIVE]               = { 0, 0, 0 }
    	text[INSENSITIVE]          = { 0.5, 0.5, 0.5 }
    	text[SELECTED]             = { 1.0, 1.0, 0 } 
     
      #constructed : 0;
      #in_button : 0;
      #button_down : 1;
      #relief : 4;
      #use_underline : 1;
      #use_stock : 0;
      #depressed : 0;
      #depress_on_activate : 1;
      #focus_on_click : 4;
    }
    class "GtkButton" style "msw-button"
     
    style "msw-label"="msw"
    {
    	fg[NORMAL]          = { 1.0, 1.0, 0 }
    	fg[PRELIGHT]        = { 0, 1.0, 1.0 }
    	fg[ACTIVE]          = { 0, 0, 0 }
    	fg[INSENSITIVE]     = { 0.5, 0.5, 0.5 }
    	fg[SELECTED]        = { 1.0, 1.0, 0 }
    	bg[NORMAL]          = { 0, 0, 0 }
    	bg[PRELIGHT]        = { 0, 0, 0 }
    	bg[ACTIVE]          = { 0.5, 0.5, 0.5 } 
    	bg[INSENSITIVE]     = { 0, 0, 0 }
    	bg[SELECTED]        = { 0, 0, 0 }
    	base[NORMAL]        = { 0, 0, 0 }
    	base[PRELIGHT]      = { 0, 0, 0 }
    	base[ACTIVE]        = { 0.5, 0.5, 0.5 }
    	base[INSENSITIVE]   = { 0, 0, 0 }
    	base[SELECTED]      = { 0, 0, 0 }
    }
    class "*<GtkButton>.GtkLabel" style "msw-label"
    Si quelqu'un peut m'aider soit en m'indiquant les modifications à apporter à mon fichier soit en me mettant sur la voie d'une autre solution

    Cdlt.

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 111
    Points : 63
    Points
    63
    Par défaut
    Bon finalement après de nombreux tests, j'arrive à une solution en modifiant les paramètres graphiques de la classe GtkMisc.
    Il faut savoir qu'un bouton a une structure graphique complexe (GtkButton + GtkLabel + GtkMisc ....)
    En jouant sur cette classe j'arrive à modifier la couleur du label de mes boutons en fonction de leur etat.

    Ex :
    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
     
    style "msw-misc"="msw"
    {
    	fg[NORMAL]          = { 1.0, 1.0, 0 }
    	fg[PRELIGHT]        = { 0, 1.0, 1.0 }
    	fg[ACTIVE]          = { 0, 0, 0 }
    	fg[INSENSITIVE]     = { 0.5, 0.5, 0.5 }
    	fg[SELECTED]        = { 0, 1.0, 1.0 }
    	bg[NORMAL]          = { 0, 0, 0 }
    	bg[PRELIGHT]        = { 0, 0, 0 }
    	bg[ACTIVE]          = { 0.5, 0.5, 0.5 } 
    	bg[INSENSITIVE]     = { 0, 0, 0 }
    	bg[SELECTED]        = { 0, 0, 0 }
    	base[NORMAL]        = { 0, 0, 0 }
    	base[PRELIGHT]      = { 0, 0, 0 }
    	base[ACTIVE]        = { 0, 0, 0 }
    	base[INSENSITIVE]   = { 0, 0, 0 }
    	base[SELECTED]      = { 0, 0, 0 }	
    }
    class "GtkMisc" style "msw-misc"
    cdlt

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

Discussions similaires

  1. Afficher du texte sur des boutons ou label
    Par Geroni dans le forum Débuter
    Réponses: 1
    Dernier message: 31/08/2011, 10h25
  2. [QtGui] Créer des labels (labels, images, boutons) ?
    Par moithibault dans le forum PyQt
    Réponses: 2
    Dernier message: 16/01/2011, 18h12
  3. [AC-2007] Donner au bouton l'apparence des boutons windows xp,vista,7
    Par Tifriis dans le forum IHM
    Réponses: 3
    Dernier message: 25/11/2010, 14h37
  4. Apparence des boutons access
    Par Big-amine dans le forum Access
    Réponses: 15
    Dernier message: 18/09/2006, 21h24
  5. Apparence des boutons de commande sur les forms
    Par azopei dans le forum Access
    Réponses: 2
    Dernier message: 17/02/2006, 15h19

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