Mercurial > projects > dwt-win
annotate dwt/events/SelectionListener.d @ 253:fbb9174f2a2c
Reuse the tango windows api
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Fri, 11 Jul 2008 23:01:25 +0200 |
parents | bef1ed4ebc50 |
children | 02332a154347 |
rev | line source |
---|---|
0 | 1 /******************************************************************************* |
2 * Copyright (c) 2000, 2005 IBM Corporation and others. | |
3 * All rights reserved. This program and the accompanying materials | |
4 * are made available under the terms of the Eclipse Public License v1.0 | |
5 * which accompanies this distribution, and is available at | |
6 * http://www.eclipse.org/legal/epl-v10.html | |
7 * | |
8 * Contributors: | |
9 * IBM Corporation - initial API and implementation | |
10 * Port to the D programming language: | |
11 * Frank Benoit <benoit@tionex.de> | |
12 *******************************************************************************/ | |
13 module dwt.events.SelectionListener; | |
14 | |
15 | |
16 public import dwt.internal.DWTEventListener; | |
17 public import dwt.events.SelectionEvent; | |
18 | |
19 /** | |
20 * Classes which implement this interface provide methods | |
21 * that deal with the events that are generated when selection | |
22 * occurs in a control. | |
23 * <p> | |
86
bef1ed4ebc50
again copied events from dwt-linux
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
24 * After creating an instance of a class that : |
0 | 25 * this interface it can be added to a control using the |
26 * <code>addSelectionListener</code> method and removed using | |
27 * the <code>removeSelectionListener</code> method. When | |
28 * selection occurs in a control the appropriate method | |
29 * will be invoked. | |
30 * </p> | |
31 * | |
32 * @see SelectionAdapter | |
33 * @see SelectionEvent | |
34 */ | |
35 public interface SelectionListener : DWTEventListener { | |
36 | |
37 /** | |
38 * Sent when selection occurs in the control. | |
39 * <p> | |
40 * For example, selection occurs in a List when the user selects | |
41 * an item or items with the keyboard or mouse. On some platforms, | |
42 * the event occurs when a mouse button or key is pressed. On others, | |
43 * it happens when the mouse or key is released. The exact key or | |
44 * mouse gesture that causes this event is platform specific. | |
45 * </p> | |
46 * | |
47 * @param e an event containing information about the selection | |
48 */ | |
49 public void widgetSelected(SelectionEvent e); | |
50 | |
51 /** | |
52 * Sent when default selection occurs in the control. | |
53 * <p> | |
54 * For example, on some platforms default selection occurs in a List | |
55 * when the user double-clicks an item or types return in a Text. | |
56 * On some platforms, the event occurs when a mouse button or key is | |
57 * pressed. On others, it happens when the mouse or key is released. | |
58 * The exact key or mouse gesture that causes this event is platform | |
59 * specific. | |
60 * </p> | |
61 * | |
62 * @param e an event containing information about the default selection | |
63 */ | |
64 public void widgetDefaultSelected(SelectionEvent e); | |
65 } | |
253 | 66 |
67 | |
68 | |
69 /// Helper class for the dgListener template function | |
70 private class _DgSelectionListenerWidgetSelectedT(Dg,T...) : SelectionListener { | |
71 | |
72 alias ParameterTupleOf!(DgSel) DgArgs; | |
73 static assert( is(DgArgs == Tuple!(SelectionEvent,T)), | |
74 "Delegate args not correct" ); | |
75 | |
76 Dg dg; | |
77 T t; | |
78 | |
79 private this( Dg dg, T t ){ | |
80 this.dg = dg; | |
81 static if( T.length > 0 ){ | |
82 this.t = t; | |
83 } | |
84 } | |
85 | |
86 public void widgetSelected(SelectionEvent e){ | |
87 dg(e,t); | |
88 } | |
89 public void widgetDefaultSelected(SelectionEvent e){ | |
90 } | |
91 } | |
92 | |
93 private class _DgSelectionListenerWidgetDefaultSelectedT(Dg,T...) : SelectionListener { | |
94 | |
95 alias ParameterTupleOf!(DgSel) DgArgs; | |
96 static assert( is(DgArgs == Tuple!(SelectionEvent,T)), | |
97 "Delegate args not correct" ); | |
98 | |
99 Dg dg; | |
100 T t; | |
101 | |
102 private this( Dg dg, T t ){ | |
103 this.dg = dg; | |
104 static if( T.length > 0 ){ | |
105 this.t = t; | |
106 } | |
107 } | |
108 | |
109 public void widgetSelected(SelectionEvent e){ | |
110 } | |
111 public void widgetDefaultSelected(SelectionEvent e){ | |
112 dg(e,t); | |
113 } | |
114 } | |
115 | |
116 SelectionListener dgSelectionListenerWidgetSelected( Dg, T... )( Dg dg, T args ){ | |
117 return new _DgSelectionListenerWidgetSelectedT!( Dg, T )( dg, args ); | |
118 } | |
119 SelectionListener dgSelectionListenerWidgetDefaultSelected( Dg, T... )( Dg dg, T args ){ | |
120 return new _DgSelectionListenerWidgetDefaultSelectedT!( Dg, T )( dg, args ); | |
121 } | |
122 | |
123 | |
124 |