-
Notifications
You must be signed in to change notification settings - Fork 0
/
ch-DragAndDrop.html
120 lines (120 loc) · 6.27 KB
/
ch-DragAndDrop.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Chapitre 22. Le glisser-déposer (DND)</title>
<link rel="stylesheet" href="pygtktutfr.css" type="text/css">
<meta name="generator" content="Bluefish 1.0.5">
<link rel="start" href="index.html" title="Tutoriel PyGTK 2.0">
<link rel="up" href="index.html" title="Tutoriel PyGTK 2.0">
<link rel="prev" href="sec-SupplyingTheSelection.html" title="21.3. Alimenter la sélection">
<link rel="next" href="sec-DNDProperties.html" title="22.2. Propriétés du glisser-déposer">
<meta name="keywords" content="python,pygtk,tutoriel,traduction,DND,drag and drop,drag'n drop">
<link rel="home" href="index.html" title="Table des matières">
</head>
<body>
<div class="localisation">
Vous êtes à peu près ici :
<a href="../../index.html">Accueil</a> »
<a href="../pygtktut.php">tutoriel PyGTK</a> »
<a href="index.html">PyGTK : sommaire</a>
</div>
<!-- fin localisation -->
<div class="navheader">
<table width="100%" summary="Navigation header">
<tr><th colspan="3" align="center">Chapitre 22. Le glisser-déposer (DND)</th></tr>
<tr>
<td width="20%" align="left">
<a accesskey="p" href="sec-SupplyingTheSelection.html">Préc.</a> </td>
<th width="60%" align="center"> </th>
<td width="20%" align="right"> <a accesskey="n" href="sec-DNDProperties.html">Suiv.</a>
</td>
</tr>
</table>
<hr>
</div>
<div class="chapter" lang="fr">
<div class="titlepage"><div><div><h2 class="title">
<a name="ch-DragAndDrop"></a>Chapitre 22. Le glisser-déposer (DND)</h2></div></div></div>
<div class="toc">
<p><b>Table des matières</b></p>
<dl>
<dt><span class="sect1"><a href="ch-DragAndDrop.html#sec-DNDOverview">22.1. Aperçu du DND</a></span></dt>
<dt><span class="sect1"><a href="sec-DNDProperties.html">22.2. Propriétés du glisser-déposer</a></span></dt>
<dt><span class="sect1"><a href="sec-DNDMethods.html">22.3. Méthodes du glisser-déposer</a></span></dt>
<dd><dl>
<dt><span class="sect2"><a href="sec-DNDMethods.html#id2540892">22.3.1. Configurer le widget origine</a></span></dt>
<dt><span class="sect2"><a href="sec-DNDMethods.html#sec-SignalsOnSourceWidget">22.3.2. Les signaux du widget origine</a></span></dt>
<dt><span class="sect2"><a href="sec-DNDMethods.html#sec-SettingUpDestinationWidget">22.3.3. Configurer un widget destination</a></span></dt>
<dt><span class="sect2"><a href="sec-DNDMethods.html#sec-SignalsOnDestinationWidget">22.3.4. Les signaux du widget destination</a></span></dt>
</dl></dd>
</dl>
</div>
<p>PyGTK possède un ensemble de fonctions de haut niveau de communication
inter-processus via le système glisser-déposer. PyGTK peut utiliser le glisser-déposer
par dessus les protocoles de bas niveau de Xdnd et le glisser-déposer Motif.</p>
<div class="sect1" lang="fr">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="sec-DNDOverview"></a>22.1. Aperçu du DND</h2></div></div></div>
<p>Une application capable du glisser-déposer doit d'abord définir et configurer
le(s) widget(s) pour le glisser-déposer. Chacun des widgets peut être l'origine
et/ou la destination du glisser-déposer. Il faut noter que ces widgets doivent
possèder une fenêtre X associée.</p>
<p>Les widgets origine peuvent exporter des données du glisser, en permettant
ainsi à l'utilisateur de tirer des objets à partir d'elles, pendant que les widgets
de destination peuvent recevoir des données du glisser. Les destinations du
glisser-déposer peuvent limiter de qui ils acceptent des données du
glisser, par ex. la même application ou n'importe quelle application
(y compris eux-mêmes).</p>
<p>Envoyer et recevoir des données de déposer utilisent des signaux.
Déposer un élément sur un widget de destination exige à la fois une
demande de données (pour le widget origine) et un gestionnaire de signal de
réception de données (pour le widget destination). Des gestionnaires de signaux
supplémentaires peuvent être connectés si on souhaite savoir quand un glisser
commence (à l'instant même du début), jusqu'à la réalisation du déposer, et quand la
procédure glisser-déposer entière s'esr terminée (avec succès ou pas).</p>
<p>Votre application aura besoin de fournir des données aux widgets origine
quand ce sera demandé, ce qui implique d'avoir ungestionnaire de signal de
requête de données de glisser. Pour les widgets de destination, ils auront besoin
d'un gestionnaire de signal de données de déposer reçues.</p>
<p>Un cycle de glisser-déposer typique se présentera ainsi :</p>
<div class="itemizedlist"><ul type="disc">
<li><p>Le glisser commence. Le widget origine peut recevoir le signal "drag-begin".
Il peut configurer une icône de glisser, etc.
</p></li>
<li><p>Le glisser se déplace au-dessus d'une zone de déposer. Le widget destination
peut recevoir le signal "drag-motion".</p></li>
<li><p>Le déposer est réalisé. Le widget destination peut recevoir le signal
"drag-drop". Il doit demander les données de l'origine.</p></li>
<li><p>Requête des données du glisser (quand le déposer a lieu). Le widget
origine peut recevoir le signal "drag-data-get"</p></li>
<li><p>Données du déposer reçues (de la même application ou d'une autre).
Le widget destination peut recevoir le signal "drag-data-received".</p></li>
<li><p>Données du glisser supprimées (si le glisser était un déplacement). Le
widget origne peut recevoir le signal "drag-data-delete".</p></li>
<li><p>Procédure glisser-déposer effectuée. Le widget origine peut recevoir
le signal "drag-end".</p></li>
</ul></div>
<p>Il existe quelques étapes mineures qui peuvent s'intercaler
ici où là, mais nous entrerons dans les détails plus tard.</p>
</div>
</div>
<div class="navfooter">
<hr>
<table width="100%" summary="Navigation footer">
<tr>
<td width="40%" align="left">
<a accesskey="p" href="sec-SupplyingTheSelection.html">Préc.</a> </td>
<td width="20%" align="center"> </td>
<td width="40%" align="right"> <a accesskey="n" href="sec-DNDProperties.html">Suiv.</a>
</td>
</tr>
<tr>
<td width="40%" align="left" valign="top">21.3. Alimenter la sélection </td>
<td width="20%" align="center"><a accesskey="h" href="index.html">Table des matières</a></td>
<td width="40%" align="right" valign="top"> 22.2. Propriétés du glisser-déposer</td>
</tr>
</table>
</div>
</body>
</html>