Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 31/08/2008, à 21:33

tiky

Icône et Gtk::Action

Bonsoir,

Je suis à la recherche d'un moyen simple d'associer une icône personnalisée ( pas un StockID donc ) à un Gtk::Action. J'ai trouvé la fonction parfaite pour faire cela avec Gtk::IconTheme mais elle n'est disponible que dans la version 2.13 de gtkmm, or j'ai la version 2.12.7... Je voudrais créer un grand nombre d'icônes pour mon application. J'ai regardé du côté de IconFactory mais le problème c'est que Gtk::Action::create() ne prend comme argument qu'un StockID.

Merci de votre aide.

Dernière modification par tiky (Le 31/08/2008, à 21:33)


Conseil d'expert: il vous faut un dentifrice adapté...

Hors ligne

#2 Le 02/09/2008, à 02:42

obiwankennedy

Re : Icône et Gtk::Action

euh je suis pas sur d'avoir compris ton problème mais essaie ceci. (c'est du GTK pur donc il doit y avoir equivalent en gtkmm)

image = gtk_image_new_from_file ("/usr/share/pixmaps/mypicture.png");
event_box = gtk_event_box_new ();
gtk_container_add (GTK_CONTAINER (event_box), image);
g_signal_connect (G_OBJECT (event_box), "button_press_event",
G_CALLBACK (on_button_press),
image);

Ce code permet de recupère des évènements sur le clique d'une image.
Si ça ne t'aide pas ben j'aurai essayé de faire avancer le schimiblick.


Dans mes logiciels, j'écris ton nom.
SGNGD: SvgGd is Not GD
Rolisteam

Hors ligne

#3 Le 02/09/2008, à 04:40

tiky

Re : Icône et Gtk::Action

J'ai trouvé une solution, j'avais pas encore écrit le poste désolé wink
Voilà ma solution

m_refIconFactory = Gtk::IconFactory::create();                                                                                          
  m_icons_info.push_back( "lancelot-new-line" );                                                                                          
  std::vector< std::string >::iterator iter;                                                                                              
  for( iter = m_icons_info.begin(); iter != m_icons_info.end(); iter++ )                                                                  
    {                                                                                                                                     
      Glib::RefPtr<Gdk::Pixbuf> refPixbuf = Gdk::Pixbuf::create_from_file( std::string( PATH_ICONS ) + *iter + ".svg" );                  
      Gtk::IconSet iconSet( refPixbuf );                                                                                                  
      m_refIconFactory->add( Gtk::StockID( *iter ), iconSet );                                                                            
    }                                                                                                                                     
  m_refIconFactory->add_default();

m_refIconFactory est du type Glib::RefPtr<Gtk::IconFactory> et m_icons_info du type std::vector< std::string >. Je peux ensuite utiliser mes icônes personnalisées comme des stockID comme-ci par exemple:

Gtk::StockID( "lancelot-new-line" );

Dernière modification par tiky (Le 02/09/2008, à 04:43)


Conseil d'expert: il vous faut un dentifrice adapté...

Hors ligne