Mercurial > projects > dwt-win
comparison dwt/custom/CTabFolderListener.d @ 311:02332a154347
Improved Listeners access functions.
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Tue, 16 Sep 2008 15:19:38 +0200 |
parents | a5afe31f5cdd |
children |
comparison
equal
deleted
inserted
replaced
310:d650eede28b3 | 311:02332a154347 |
---|---|
12 *******************************************************************************/ | 12 *******************************************************************************/ |
13 module dwt.custom.CTabFolderListener; | 13 module dwt.custom.CTabFolderListener; |
14 | 14 |
15 import dwt.internal.DWTEventListener; | 15 import dwt.internal.DWTEventListener; |
16 import dwt.custom.CTabFolderEvent; | 16 import dwt.custom.CTabFolderEvent; |
17 | |
18 import tango.core.Traits; | |
19 import tango.core.Tuple; | |
17 | 20 |
18 /** | 21 /** |
19 * Classes which implement this interface provide a method | 22 * Classes which implement this interface provide a method |
20 * that deals with events generated in the CTabFolder. | 23 * that deals with events generated in the CTabFolder. |
21 * <p> | 24 * <p> |
40 * | 43 * |
41 * @see CTabItem#setControl | 44 * @see CTabItem#setControl |
42 */ | 45 */ |
43 public void itemClosed(CTabFolderEvent event); | 46 public void itemClosed(CTabFolderEvent event); |
44 } | 47 } |
48 | |
49 | |
50 | |
51 /// Helper class for the dgListener template function | |
52 private class _DgCTabFolderListenerT(Dg,T...) : CTabFolderListener { | |
53 | |
54 alias ParameterTupleOf!(Dg) DgArgs; | |
55 static assert( is(DgArgs == Tuple!(CTabFolderEvent,T)), | |
56 "Delegate args not correct" ); | |
57 | |
58 Dg dg; | |
59 T t; | |
60 | |
61 private this( Dg dg, T t ){ | |
62 this.dg = dg; | |
63 static if( T.length > 0 ){ | |
64 this.t = t; | |
65 } | |
66 } | |
67 | |
68 void itemClosed( CTabFolderEvent e ){ | |
69 dg(e,t); | |
70 } | |
71 } | |
72 | |
73 /++ | |
74 + dgListener creates a class implementing the Listener interface and delegating the call to | |
75 + handleEvent to the users delegate. This template function will store also additional parameters. | |
76 + | |
77 + Examle of usage: | |
78 + --- | |
79 + void handleTextEvent (Event e, int inset ) { | |
80 + // ... | |
81 + } | |
82 + text.addListener (DWT.FocusOut, dgListener( &handleTextEvent, inset )); | |
83 + --- | |
84 +/ | |
85 CTabFolderListener dgCTabFolderListener( Dg, T... )( Dg dg, T args ){ | |
86 return new _DgCTabFolderListenerT!( Dg, T )( dg, args ); | |
87 } | |
88 | |
89 | |
90 |