Wiki source code of Gestion du Glisser Déposer
Last modified by Julien EYMERY on 2015/08/31 11:07
Hide last authors
| author | version | line-number | content |
|---|---|---|---|
| |
1.1 | 1 | ((( |
| 2 | = Introduction = | ||
| 3 | ))) | ||
| 4 | |||
| 5 | (% style="color: rgb(0,0,0);" %)La fonctionnalité **(% style="color: rgb(255,102,0);" %)Glisser-Déposer(%%)** consiste à transférer des données entre deux composants graphiques (Liste, Arbre-Liste, Arborescence et Image) à l’aide de la souris. | ||
| 6 | Plus précisément, l’utilisateur clique sur le composant source et déplace la souris au-dessus du composant cible en conservant le bouton appuyé, puis relâche le bouton. | ||
| 7 | Il peut aussi annuler l’opération en appuyant sur la touche Echap.(%%) | ||
| 8 | |||
| 9 | (% style="color: rgb(0,0,0);" %)Les composants peuvent appartenir à des applications ou à des fenêtres différentes.(%%) | ||
| 10 | ((( | ||
| 11 | = Scénario usuel = | ||
| 12 | ))) | ||
| 13 | * Lorsque l’utilisateur clique sur un objet source avec le bouton gauche ou droit de la souris, l’objet reçoit l’**(% style="color: rgb(255,102,0);" %)évènement GD_DebutGlissement(%%)**. | ||
| 14 | Les propriétés **(% style="color: rgb(255,102,0);" %)GD_ETAT_CLAVIER(%%)** et **(% style="color: rgb(255,102,0);" %)GD_ETAT_SOURIS(%%)** permettent de savoir quels sont les boutons et les touches enfoncés. | ||
| 15 | |||
| 16 | * Sur cet événement, le développeur utilise les méthodes (% style="color: rgb(255,102,0);" %)**GD_ECRIRE_DONNEES**(%%) et **(% style="color: rgb(255,102,0);" %)GD_EXECUTER_GLISSEMENT(%%)** pour indiquer les données à transférer et démarrer le mécanisme de glisser-déposer. | ||
| 17 | Ces données peuvent être déplacées ou copiées dans l’objet cible. | ||
| 18 | |||
| 19 | {{hardis-info type="note" icon="true"}} | ||
| 20 | (% style="color: rgb(0,0,0);" %)Il faut noter que les (%%)instructions placées après la méthode **(% style="color: rgb(255,102,0);" %)GD_EXECUTER_GLISSEMENT(%%)** ne s’exécutent pas tant que l’action de glisser-déposer n’est pas terminée. | ||
| 21 | {{/hardis-info}} | ||
| 22 | |||
| 23 | |||
| 24 | * Lorsque l’utilisateur déplace la souris en maintenant le bouton appuyé, il peut survoler un objet qui peut être une cible. Un tel objet doit avoir la propriété **(% style="color: rgb(255,102,0);" %)GD_DEPOSE_AUTORISEE(%%)** à **(% style="color: rgb(255,102,0);" %)*VRAI(%%)**. Si ce n’est pas le cas, ou si l’objet survolé ne gère pas le glisser-déposer, le système affiche un panneau d'interdiction comme curseur de souris. Dans un objet cible, les événements suivants sont déclenchés: | ||
| 25 | ** Lorsque la souris entre dans la zone de l’objet cible, ce dernier reçoit un **(% style="color: rgb(255,102,0);" %)évènement GD_EntreeGlissement(%%)**. | ||
| 26 | Sur cet évènement, le développeur peut indiquer à travers la propriété **(% style="color: rgb(255,102,0);" %)GD_ACTION_DEPOSE(%%)** de l’objet cible quel serait le résultat de l’opération si l’utilisateur relâchait la souris à ce moment. | ||
| 27 | Le développeur peut utiliser éventuellement les propriétés **(% style="color: rgb(255,102,0);" %)GD_ETAT_CLAVIER(%%)** et **(% style="color: rgb(255,102,0);" %)GD_ETAT_SOURIS(%%)**, ainsi que la méthode **(% style="color: rgb(255,102,0);" %)GD_DONNEES_DISPONIBLES(%%)** pour déterminer si l’objet cible accepte une copie, un déplacement ou refuse les données. | ||
| 28 | Il doit aussi prendre en compte la propriété GD_ACTIONS_PERMISES, qui contient les actions autorisées par l’objet source (paramètre de la méthode GD_EXECUTER_GLISSEMENT). | ||
| 29 | |||
| 30 | {{hardis-info type="info" icon="true"}} | ||
| 31 | Il n’est pas indispensable de programmer cet événement. | ||
| 32 | {{/hardis-info}} | ||
| 33 | |||
| 34 | |||
| 35 | ** (% style="color: rgb(0,0,0);" %)Lorsque la souris survole la zone de l’objet cible, ce dernier reçoit continuellement des **(% style="color: rgb(255,102,0);" %)événements GD_SurvolGlissement(%%)**. | ||
| 36 | (%%)De même que ci-dessus, le développeur peut indiquer à travers la propriété (% style="color: rgb(0,0,0);" %)**(% style="color: rgb(255,102,0);" %)GD_ACTION_DEPOSE(%%)**(%%) de l’objet cible quel serait le résultat de l’opération si l’utilisateur relâchait la souris à ce moment. | ||
| 37 | Le développeur peut utiliser éventuellement les propriétés (% style="color: rgb(255,102,0);" %)**GD_ETAT_CLAVIER**(%%) et **(% style="color: rgb(255,102,0);" %)GD_ETAT_SOURIS(%%)**, et la méthode **(% style="color: rgb(255,102,0);" %)GD_DONNEES_DISPONIBLES(%%)** pour déterminer si l’objet cible accepte une copie, un déplacement ou refuse les données. | ||
| 38 | Il doit aussi prendre en compte la propriété **(% style="color: rgb(255,102,0);" %)GD_ACTIONS_PERMISES(%%)**, qui contient les actions autorisées par l’objet source (paramètre de la **(% style="color: rgb(255,102,0);" %)méthode GD_EXECUTER_GLISSEMENT(%%)**). | ||
| 39 | |||
| 40 | |||
| 41 | ** Lorsque la souris sort de la zone de l’objet cible, ce dernier reçoit un événement GD_SortieGlissement. Il n’est pas indispensable de programmer cet évènement. | ||
| 42 | |||
| 43 | |||
| 44 | |||
| 45 | (% style="margin-left: 30.0px;" %) | ||
| 46 | La (% style="color: rgb(0,0,0);" %)propriété **(% style="color: rgb(255,102,0);" %)GD_ACTION_DEPOSE(%%)** contient l’action indiquée lors de l’événement (% style="color: rgb(255,102,0);" %)**GD_SurvolGlissement**(%%) ((% style="color: rgb(255,102,0);" %)**_GD_ACTION_COPIE**(%%) ou **(% style="color: rgb(255,102,0);" %)_GD_ACTION_DEPLACEMENT(%%)**). | ||
| 47 | Le développeur utilise la **(% style="color: rgb(255,102,0);" %)méthode GD_LIRE_DONNEES(%%)** pour récupérer les données transférées.(%%) | ||
| 48 | * (% style="color: rgb(0,0,0);" %)Dans l’**(% style="color: rgb(255,102,0);" %)événement GD_DebutGlissement(%%)**, la **(% style="color: rgb(255,102,0);" %)méthode GD_EXECUTER_GLISSEMENT(%%)** se termine et le développeur doit supprimer les données transférées de l’objet source dans le cas où l’action a été un déplacement.(%%) | ||
| 49 | |||
| 50 |