2011-03-16 4 views
0

Je n'ai pas eu de réponse du forum officiel de JUCE et j'essaie de demander ici et j'espère.addMouseListener ne fonctionne pas sur juce :: TreeView

Voici mon problème:

Je veux enregistrer/accrocher un événement mouseDoubleClick à JUCE :: classe TreeView ou il est dérivation.

void MainComponent::mouseDoubleClick (const MouseEvent &e) 
{ 
// 
// do something here 
} 

MainComponent::MainComponent(....) 
{ 
tv = new TreeView(); 
addAndMakeVisible(tv); 

addMouseListener(this, false); 

} 

Le code ci-dessus ne fonctionne pas et aucune réponse du créateur JUCE. Ma question est de savoir comment le faire fonctionner? Il devrait pouvoir être expliqué dans un exemple simple. Le addMouseListener() serait incohérent et devrait être documenté comme "addMouseListener ne fonctionnera pas sur certaines classes telles que TreeView". Je serai heureux de le trouver sur la documentation et d'éviter d'utiliser les techniques précédentes.

+1

Quelle est l'erreur réelle que vous obtenez? Est-ce que cela fonctionnerait pour vous d'implémenter à la place 'itemDoubleClicked()' dans les classes dérivées de 'TreeViewItem' que vous stockez dans TreeView? – bgporter

Répondre

1

Désolé pour la réponse tardive, mais ... pour le dossier:

Ce que vous faites ici est l'ajout d'un MouseListener à votre composant principal, et lui disant de ne pas transmettre les événements à sa enfants (2 param == false), le comportement est donc normal.

à mon humble avis, il devrait fonctionner si vous avez écrit à la place:

tv->addMouseListener(this, false); 
Questions connexes