Pages : 1
#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é
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
Pages : 1