Forums : Xul, Xbl, JS...

Aller à la discussion :  Plus récente Plus ancienne

# Couper-coller

Envoyé par : Papagrieng

Date : 31/05/2006 11:32

Bonjour, Dans une opération de drag'n'drop, en mode "move" (couper), je n'arrive pas à savoir où placer le code pour supprimer l'élément de l'emplacement d'origine.

Normalement, au moment où on commence à "dragger", je donne les données. Exemple: transferData.data.addDataForFlavour("text/rdf/Photo",txt);

Puis au moment où l'utilisateur "droppe" l'élément, si l'opération est faite en mode "couper" au lieu de "copier", je dois retirer l'élément de l'emplacement d'origine. Comment faire ?

Merci !

# Re: Couper-coller

Envoyé par : thefab

Date : 31/05/2006 11:44

Personnelement je le fais de cette manière (code inutile supprimé): je met tout dans l'observateur du drag & drop, drag: je mémorise la source, drop: je supprime si touche Control

var dragAndDropObserver =
  {
  // Source du drag & drop
  source: null,

  onDragStart: function(evt, transferData, action)
    {
    this.source = evt.currentTarget;
    },

onDrop: function(evt, dropdata, session)
  {
  if (!evt.ctrlKey)
    {
    // pour une listbox
    this.source.removeItemAt(this.source.selectedIndex);
    }
 };

Ca fonctionne pour les listbox en tout cas.

# Re: Couper-coller

Envoyé par : Papagrieng

Date : 31/05/2006 12:00

Merci, c'est comme ça que je vais faire dans un premier temps. Mais c'est pas parfait ;-) : Si l'objet est déplacé dans une autre application, tu n'en as jamais connaissance.

Il faudrait peut-être modifier la session (de type nsIDragSession, cf getCurrentSession ), et sa méthode "getData". Cette méthode semble être appelée lorsque le récepteur a besoin des données: ce serait le moment idéal pour lui passer "mes" données et les supprimer.

J'enquête, j'enquête, mais j'imagine qu'il y a un moyen plus simple de le faire...

# Re: Couper-coller

Envoyé par : thefab

Date : 31/05/2006 12:43

Si l'objet est déplacé dans une autre application, tu n'en as jamais connaissance.

C'est vrai j'avais pas fait attention, merci. Je n'ai pas exploré plus en détail le drag & drop mais je vais aussi jeter un oeil sur nsIDragSession.

Il n'est plus possible de poster des messages dans ce forum.


Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.

Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™ sont des marques de la fondation Mozilla.