Wxwidgets icones des fichiers [Résolu]

Signaler
Messages postés
70
Date d'inscription
mardi 25 février 2003
Statut
Membre
Dernière intervention
1 février 2008
-
Roro8883
Messages postés
70
Date d'inscription
mardi 25 février 2003
Statut
Membre
Dernière intervention
1 février 2008
-
Bonsoir !

Je souhaiterais récupérer les icones pour les types de fichiers, afin de les afficher dans une listCtrl ...
J'ai lu dans plusieurs codes qu'il fallait utiliser wxFileIconsTable::, le probleme c'est que ça compile pas, wxFileIconsTable n'est pas défini !

Quels sont les headers à utiliser ?
Est-ce que ça existe toujours ??? parce que je n'ai trouvé que très peu d'info .... en anglais en plus !

2 réponses

Messages postés
154
Date d'inscription
dimanche 1 avril 2001
Statut
Membre
Dernière intervention
2 octobre 2009

Salut.
Après quelques recherches sur le sujet, voici ce que j'ai trouvé :
Il n'est pas nécessaire d'utiliser wxFileIconsTable (qui, ceci dit en passant est déclaré dans "wx/generic/dirctrlg.h").

En fait, il faut d'abord utiliser la classe wxFileType.
Mais comme il n'estpas possible de créer directement un élément de cette classe, il faut utiliser "wxTheMimeTypesManager -> GetFileTypeFromExtension()" ou "wxTheMimeTypesManager -> GetFileTypeFromMimeType()"
Il faut donc que tu connaisse l'extension ou le type mime du type de fichier dont tu veux récupérer l'icône.

Donc, en utilisant l'une des deux méthodes ci-dessus, tu vas obtenir un objet de type "FileType *" (qu'il faudra penser à détruire).

Ensuite, il faut demander à cet objet de renseigner un objet de type "IconLocation" qui te servira à créer un wxIcon.

Voici un exemple, pour retrouver l'icône associée à l'extension "pdf"'

    wxFileType *ft = wxTheMimeTypesManager->GetFileTypeFromExtension(_T(".pdf"));

    wxIconLocation iloc;

    ft->GetIcon(&iloc);

    wxIcon pdf_icon(iloc);

    delete ft;

Ensuite, il ne te reste plus qu'à faire ce que tu veux de l'icône "pdf_icon".

J'espère que ça aura répondu à ta question.
@+
Xav'
Messages postés
70
Date d'inscription
mardi 25 février 2003
Statut
Membre
Dernière intervention
1 février 2008

oui, ça marche très bien !
Merci