Wxwidgets icones des fichiers

Résolu
Roro8883 Messages postés 70 Date d'inscription mardi 25 février 2003 Statut Membre Dernière intervention 1 février 2008 - 24 nov. 2007 à 23:51
Roro8883 Messages postés 70 Date d'inscription mardi 25 février 2003 Statut Membre Dernière intervention 1 février 2008 - 25 nov. 2007 à 21:29
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

cs_Xaviou Messages postés 154 Date d'inscription dimanche 1 avril 2001 Statut Membre Dernière intervention 2 octobre 2009
25 nov. 2007 à 21:26
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'
3
Roro8883 Messages postés 70 Date d'inscription mardi 25 février 2003 Statut Membre Dernière intervention 1 février 2008
25 nov. 2007 à 21:29
oui, ça marche très bien !
Merci
0
Rejoignez-nous