|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
![]() ![]() Bernard SIAUDEnseignant Inscription : novembre 2003 Messages : 4 400 ![]() |
Bonjour
J'aimerais bien générer de tels menu avec gtk3 : ![]() Le but étant de différencier certains item par la couleur. Est-ce possible ?
__________________
Modérateur Mandriva Linux Amicalement VOOotre Troumad Alias Bernard SIAUD à découvrir sur http://troumad.org Mes tutoriels |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() ![]() Gérald Conducteur de train Inscription : février 2008 Messages : 1 287 ![]() |
A priori je dirais non. Du moins pas de manière simple.
Une idée qui me vient serait de créer une image que tu pourrais ensuite intégrer comme un GtkImageMenuItem. Mais bon, c'est peut être un peut tiré par les cheveux...
__________________
Système d'exploitation : Debian Amd64 Testing / Slackware 13.37 32 bits Site perso : http://gerald3d.developpez.com (article Glade3 et Gtk+) Site perso : http://linechec.sourceforge.net (jeu d'echec) v0.4-1 Site perso : http://m3dlib.tuxfamily.org/ (moteur 3d. Rendu dans un GtkDrawingArea avec utilisation de Cairo.) v0.24 contact jabber : gerald3d@jabber.tuxfamily.org |
|
|
00
|
|
|
#3 |
![]() ![]() Bernard SIAUDEnseignant Inscription : novembre 2003 Messages : 4 400 ![]() |
Il faudrait que je calcule la hauteur de chaque entrée ?
Pas génial !
__________________
Modérateur Mandriva Linux Amicalement VOOotre Troumad Alias Bernard SIAUD à découvrir sur http://troumad.org Mes tutoriels |
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() ![]() Gérald Conducteur de train Inscription : février 2008 Messages : 1 287 ![]() |
Je peux toujours essayer de construire une petite fonction adéquate pour voir si c'est faisable de manière relativement simple.
__________________
Système d'exploitation : Debian Amd64 Testing / Slackware 13.37 32 bits Site perso : http://gerald3d.developpez.com (article Glade3 et Gtk+) Site perso : http://linechec.sourceforge.net (jeu d'echec) v0.4-1 Site perso : http://m3dlib.tuxfamily.org/ (moteur 3d. Rendu dans un GtkDrawingArea avec utilisation de Cairo.) v0.24 contact jabber : gerald3d@jabber.tuxfamily.org |
|
|
00
|
|
|
#5 |
|
Membre Expert
![]() ![]() Gérald Conducteur de train Inscription : février 2008 Messages : 1 287 ![]() |
A force de chercher il y a peut être un début de solution avec la fonction gtk_widget_override_background_color();.
__________________
Système d'exploitation : Debian Amd64 Testing / Slackware 13.37 32 bits Site perso : http://gerald3d.developpez.com (article Glade3 et Gtk+) Site perso : http://linechec.sourceforge.net (jeu d'echec) v0.4-1 Site perso : http://m3dlib.tuxfamily.org/ (moteur 3d. Rendu dans un GtkDrawingArea avec utilisation de Cairo.) v0.24 contact jabber : gerald3d@jabber.tuxfamily.org |
|
|
00
|
|
|
#6 |
![]() ![]() Bernard SIAUDEnseignant Inscription : novembre 2003 Messages : 4 400 ![]() |
Le widget ? C'est quoi ? Un élément du menu ou tout le menu ?
Je ne pense pas qu'un élément du menu puisse être considéré comme un widget. Si ? Dans ce cas favorable, comment l'atteindre ?
__________________
Modérateur Mandriva Linux Amicalement VOOotre Troumad Alias Bernard SIAUD à découvrir sur http://troumad.org Mes tutoriels |
|
|
00
|
|
|
#7 | |
|
Membre Expert
![]() Développeur informatique Inscription : juin 2009 Messages : 840 ![]() |
Citation:
|
|
|
|
00
|
|
|
#8 |
|
Membre Expert
![]() ![]() Gérald Conducteur de train Inscription : février 2008 Messages : 1 287 ![]() |
Apparemment si l'entrée du menu est un GtkRadioMenuItem* seul le bouton sera affecté par la fonction gtk_widget_override_background_color();. Le label aura toujours le fond gris (ou de la couleur du gestionnaire de fenêtre choisi).
__________________
Système d'exploitation : Debian Amd64 Testing / Slackware 13.37 32 bits Site perso : http://gerald3d.developpez.com (article Glade3 et Gtk+) Site perso : http://linechec.sourceforge.net (jeu d'echec) v0.4-1 Site perso : http://m3dlib.tuxfamily.org/ (moteur 3d. Rendu dans un GtkDrawingArea avec utilisation de Cairo.) v0.24 contact jabber : gerald3d@jabber.tuxfamily.org |
|
|
00
|
|
|
#9 | ||||||
|
Membre Expert
![]() ![]() Gérald Conducteur de train Inscription : février 2008 Messages : 1 287 ![]() |
Ca y est. Je le tiens
Il faut ajouter une fonction callback associée au signal "draw" pour chaque GtkMenuItem*. Je te la fournis : Code :
Par exemple on pourrait écrire: Code :
Code :
Histoire de te montrer ce que ca donne j'ai modifié ton code perso. Les menus interactifs construits à partir du contenu des répertoires ont maintenant un fond jaune
__________________
Système d'exploitation : Debian Amd64 Testing / Slackware 13.37 32 bits Site perso : http://gerald3d.developpez.com (article Glade3 et Gtk+) Site perso : http://linechec.sourceforge.net (jeu d'echec) v0.4-1 Site perso : http://m3dlib.tuxfamily.org/ (moteur 3d. Rendu dans un GtkDrawingArea avec utilisation de Cairo.) v0.24 contact jabber : gerald3d@jabber.tuxfamily.org |
||||||
|
|
10
|
|
|
#10 |
![]() ![]() Bernard SIAUDEnseignant Inscription : novembre 2003 Messages : 4 400 ![]() |
Je ne pense pas avoir le temps de tester avant Jeudi après midi. Mais, là, c'est pour les barres de menus uniquement...
Je me suis mal exprimé peut-être ! Ma copie d'écran représentait une ComboBox... Et c'est une ComboBox que je voudrais colorier ! Ceci-dit, je vais sûrement profiter de cet exemple pour tester avec les menus Et peut-être rajouter quelques lignes dans mon articles sur les menus avec gtk
__________________
Modérateur Mandriva Linux Amicalement VOOotre Troumad Alias Bernard SIAUD à découvrir sur http://troumad.org Mes tutoriels |
|
|
00
|
|
|
#11 |
|
Membre Expert
![]() ![]() Gérald Conducteur de train Inscription : février 2008 Messages : 1 287 ![]() |
Bon, ben, je te fais ca pour les combobox alors
__________________
Système d'exploitation : Debian Amd64 Testing / Slackware 13.37 32 bits Site perso : http://gerald3d.developpez.com (article Glade3 et Gtk+) Site perso : http://linechec.sourceforge.net (jeu d'echec) v0.4-1 Site perso : http://m3dlib.tuxfamily.org/ (moteur 3d. Rendu dans un GtkDrawingArea avec utilisation de Cairo.) v0.24 contact jabber : gerald3d@jabber.tuxfamily.org |
|
|
00
|
|
|
#12 |
![]() ![]() Bernard SIAUDEnseignant Inscription : novembre 2003 Messages : 4 400 ![]() |
Je suis arrivé à faire marcher ton système avec mes menu
Cependant, je tombe sur un bug de code::blocks... J'aurais voulu étudier le paramètre widget de ta fonction, je mets un stoppeur à la ligne 171 du fichier callback_menu (dans ta fonction), lorsque le mode pas à pas arrive sur cette fonction, je n'ai plus que la souris qui marche dans l'interface graphique ! C'est la seconde fois que j'arrive sur un tel problème ! Voir : http://www.mageialinux-online.org/fo...t=&idm="e= En plus, bien avant d'arriver sur ta fonction, j'ai plein de warning qui arrivent en ligne de commande : Code :
Gtk-WARNING **: Theme parsing error: gtk.css:132:30: Not using units is deprecated. Assuming 'px'.
__________________
Modérateur Mandriva Linux Amicalement VOOotre Troumad Alias Bernard SIAUD à découvrir sur http://troumad.org Mes tutoriels |
|
|
00
|
|
|
#13 |
|
Membre Expert
![]() ![]() Gérald Conducteur de train Inscription : février 2008 Messages : 1 287 ![]() |
Un petit problème lié au thème de ton bureau peut êtrePour ce qui est de colorier un GtkCombox je suis toujours dessus. Je suis en train de me casser les dents dessus
. Je n'arrive toujours pas à accéder au popup qui s'ouvre lorsque tu cliques sur le bouton du GtkCombox. Je continue mes recherches...
__________________
Système d'exploitation : Debian Amd64 Testing / Slackware 13.37 32 bits Site perso : http://gerald3d.developpez.com (article Glade3 et Gtk+) Site perso : http://linechec.sourceforge.net (jeu d'echec) v0.4-1 Site perso : http://m3dlib.tuxfamily.org/ (moteur 3d. Rendu dans un GtkDrawingArea avec utilisation de Cairo.) v0.24 contact jabber : gerald3d@jabber.tuxfamily.org |
|
|
00
|
|
|
#14 | |||
![]() ![]() Bernard SIAUDEnseignant Inscription : novembre 2003 Messages : 4 400 ![]() |
Citation:
Il faut des float et on ne voit que des entiers Tu peux mettre à la limite :
__________________
Modérateur Mandriva Linux Amicalement VOOotre Troumad Alias Bernard SIAUD à découvrir sur http://troumad.org Mes tutoriels |
|||
|
|
00
|
|
|
#15 |
![]() ![]() Bernard SIAUDEnseignant Inscription : novembre 2003 Messages : 4 400 ![]() |
Mon but étant de colorier l'entrée du menu en fonction de sa configuration, j'ai besoin de savoir quelle est l'entrée : ce qu'elle affiche ou son rang dans les entrées. Est-ce possible à partir de l'entrée widget ?
J'ai un autre problème, pour certaines entrées, c'est bon, et pas pur d'autres. Dans certains cas, toute la case est coloriée, même ce qui est affiché ! En enlevant la ligne qui colorie c'est bon :Tu peux voir ceci aux lignes 296 et 184 de mon fichier callback_menu.c de mon projet http://troumad.org/Mes_regles/perso3.zip
__________________
Modérateur Mandriva Linux Amicalement VOOotre Troumad Alias Bernard SIAUD à découvrir sur http://troumad.org Mes tutoriels |
|
|
00
|
|
|
#16 |
|
Membre Expert
![]() ![]() Gérald Conducteur de train Inscription : février 2008 Messages : 1 287 ![]() |
Je ne comprends pas. Quelle entrée du menu? Du GtkComboBox? Quelle configuration? Désolée, là je suis perdu!
__________________
Système d'exploitation : Debian Amd64 Testing / Slackware 13.37 32 bits Site perso : http://gerald3d.developpez.com (article Glade3 et Gtk+) Site perso : http://linechec.sourceforge.net (jeu d'echec) v0.4-1 Site perso : http://m3dlib.tuxfamily.org/ (moteur 3d. Rendu dans un GtkDrawingArea avec utilisation de Cairo.) v0.24 contact jabber : gerald3d@jabber.tuxfamily.org |
|
|
00
|
|
|
#17 | |
|
Membre Expert
![]() ![]() Gérald Conducteur de train Inscription : février 2008 Messages : 1 287 ![]() |
Citation:
marche pas ton lien!
__________________
Système d'exploitation : Debian Amd64 Testing / Slackware 13.37 32 bits Site perso : http://gerald3d.developpez.com (article Glade3 et Gtk+) Site perso : http://linechec.sourceforge.net (jeu d'echec) v0.4-1 Site perso : http://m3dlib.tuxfamily.org/ (moteur 3d. Rendu dans un GtkDrawingArea avec utilisation de Cairo.) v0.24 contact jabber : gerald3d@jabber.tuxfamily.org |
|
|
|
00
|
|
|
#18 |
![]() ![]() Bernard SIAUDEnseignant Inscription : novembre 2003 Messages : 4 400 ![]() |
Oups... J'ai encore bouffé une partie du lien... Je corige...
Voici le menu que je voudrais colorier et le version colorié à côté : ![]() ![]() Celui qui marche est créé avec gtk_menu_item_new_with_mnemonic, ceux qui ne marchent pas sont créés avec gtk_check_menu_item_new_with_mnemonic ou gtk_radio_menu_item_new_with_mnemonic
__________________
Modérateur Mandriva Linux Amicalement VOOotre Troumad Alias Bernard SIAUD à découvrir sur http://troumad.org Mes tutoriels |
|
|
00
|
|
|
#19 |
|
Membre Expert
![]() ![]() Gérald Conducteur de train Inscription : février 2008 Messages : 1 287 ![]() |
À partir de quelle fonction appelles-tu callback_background_color_menu_classe();. Je ne trouve pas...
__________________
Système d'exploitation : Debian Amd64 Testing / Slackware 13.37 32 bits Site perso : http://gerald3d.developpez.com (article Glade3 et Gtk+) Site perso : http://linechec.sourceforge.net (jeu d'echec) v0.4-1 Site perso : http://m3dlib.tuxfamily.org/ (moteur 3d. Rendu dans un GtkDrawingArea avec utilisation de Cairo.) v0.24 contact jabber : gerald3d@jabber.tuxfamily.org |
|
|
00
|
|
|
#20 | ||
|
Membre Expert
![]() ![]() Gérald Conducteur de train Inscription : février 2008 Messages : 1 287 ![]() |
Bon, même si je n'ai pas trouvé l'origine de l'appel ce n'est pas grave.
La fonction que je t'ai donné est un Callback éxécuté sur l'appel du signal "draw". Donc le prototype de ce callback doit être respecté. Si tu veux que tes menus soient affichés correctement il faut ces prototypes : Code :
__________________
Système d'exploitation : Debian Amd64 Testing / Slackware 13.37 32 bits Site perso : http://gerald3d.developpez.com (article Glade3 et Gtk+) Site perso : http://linechec.sourceforge.net (jeu d'echec) v0.4-1 Site perso : http://m3dlib.tuxfamily.org/ (moteur 3d. Rendu dans un GtkDrawingArea avec utilisation de Cairo.) v0.24 contact jabber : gerald3d@jabber.tuxfamily.org |
||
|
|
10
|
Copyright © 2000-2012 - www.developpez.com