Changeset 311:02332a154347
- Timestamp:
- 09/16/08 09:19:38 (2 months ago)
- Files:
-
- dwt/custom/CTabFolder2Listener.d (modified) (3 diffs)
- dwt/custom/CTabFolderListener.d (modified) (2 diffs)
- dwt/dwthelper/Runnable.d (modified) (1 diff)
- dwt/events/SelectionListener.d (modified) (4 diffs)
- dwt/widgets/Listener.d (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
dwt/custom/CTabFolder2Listener.d
r155 r311 15 15 import dwt.internal.DWTEventListener; 16 16 import dwt.custom.CTabFolderEvent; 17 18 import tango.core.Traits; 19 import tango.core.Tuple; 17 20 18 21 /** … … 35 38 */ 36 39 public interface CTabFolder2Listener : DWTEventListener { 40 public enum { 41 MINIMIZE, 42 MAXIMIZE, 43 SHOWLIST, 44 RESTORE, 45 CLOSE 46 } 37 47 38 48 /** … … 114 124 public void showList(CTabFolderEvent event); 115 125 } 126 127 128 129 /// Helper class for the dgListener template function 130 private class _DgCTabFolder2ListenerT(Dg,T...) : CTabFolder2Listener { 131 132 alias ParameterTupleOf!(Dg) DgArgs; 133 static assert( is(DgArgs == Tuple!(CTabFolderEvent,T)), 134 "Delegate args not correct: "~DgArgs.stringof~" vs. (Event,"~T.stringof~")" ); 135 136 Dg dg; 137 T t; 138 int type; 139 140 private this( int type, Dg dg, T t ){ 141 this.type = type; 142 this.dg = dg; 143 static if( T.length > 0 ){ 144 this.t = t; 145 } 146 } 147 148 void itemClosed( CTabFolderEvent e ){ 149 dg(e,t); 150 } 151 public void close(CTabFolderEvent e){ 152 if( type is CTabFolder2Listener.CLOSE ){ 153 dg(e,t); 154 } 155 } 156 public void minimize(CTabFolderEvent e){ 157 if( type is CTabFolder2Listener.MINIMIZE ){ 158 dg(e,t); 159 } 160 } 161 public void maximize(CTabFolderEvent e){ 162 if( type is CTabFolder2Listener.MAXIMIZE ){ 163 dg(e,t); 164 } 165 } 166 public void restore(CTabFolderEvent e){ 167 if( type is CTabFolder2Listener.RESTORE ){ 168 dg(e,t); 169 } 170 } 171 public void showList(CTabFolderEvent e){ 172 if( type is CTabFolder2Listener.SHOWLIST ){ 173 dg(e,t); 174 } 175 } 176 } 177 178 /++ 179 + dgListener creates a class implementing the Listener interface and delegating the call to 180 + handleEvent to the users delegate. This template function will store also additional parameters. 181 + 182 + Examle of usage: 183 + --- 184 + void handleTextEvent ( Event e, int inset ) { 185 + // ... 186 + } 187 + text.addListener (DWT.FocusOut, dgListener( &handleTextEvent, inset )); 188 + --- 189 +/ 190 CTabFolder2Listener dgCTabFolder2Listener( Dg, T... )( int type, Dg dg, T args ){ 191 return new _DgCTabFolder2ListenerT!( Dg, T )( type, dg, args ); 192 } 193 194 195 dwt/custom/CTabFolderListener.d
r155 r311 15 15 import dwt.internal.DWTEventListener; 16 16 import dwt.custom.CTabFolderEvent; 17 18 import tango.core.Traits; 19 import tango.core.Tuple; 17 20 18 21 /** … … 43 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 dwt/dwthelper/Runnable.d
r248 r311 18 18 alias ParameterTupleOf!(Dg) DgArgs; 19 19 static assert( is(DgArgs == Tuple!(T)), 20 "Delegate args not correct ");20 "Delegate args not correct: "~DgArgs.stringof~" vs "~T.stringof ); 21 21 22 22 Dg dg; dwt/events/SelectionListener.d
r253 r311 16 16 public import dwt.internal.DWTEventListener; 17 17 public import dwt.events.SelectionEvent; 18 19 import tango.core.Traits; 20 import tango.core.Tuple; 18 21 19 22 /** … … 35 38 public interface SelectionListener : DWTEventListener { 36 39 40 public enum { 41 SELECTION, 42 DEFAULTSELECTION 43 } 37 44 /** 38 45 * Sent when selection occurs in the control. … … 66 73 67 74 75 /// DWT extension 76 private class _DgSelectionListenerT(Dg,T...) : SelectionListener { 68 77 69 /// Helper class for the dgListener template function 70 private class _DgSelectionListenerWidgetSelectedT(Dg,T...) : SelectionListener { 71 72 alias ParameterTupleOf!(DgSel) DgArgs; 78 alias ParameterTupleOf!(Dg) DgArgs; 73 79 static assert( is(DgArgs == Tuple!(SelectionEvent,T)), 74 "Delegate args not correct " );80 "Delegate args not correct: "~DgArgs.stringof~" vs. (Event,"~T.stringof~")" ); 75 81 76 82 Dg dg; 77 83 T t; 84 int type; 78 85 79 private this( Dg dg, T t ){ 86 private this( int type, Dg dg, T t ){ 87 this.type = type; 80 88 this.dg = dg; 81 89 static if( T.length > 0 ){ … … 85 93 86 94 public void widgetSelected(SelectionEvent e){ 87 dg(e,t); 95 if( type is SelectionListener.SELECTION ){ 96 dg(e,t); 97 } 88 98 } 89 99 public void widgetDefaultSelected(SelectionEvent e){ 100 if( type is SelectionListener.DEFAULTSELECTION ){ 101 dg(e,t); 102 } 90 103 } 91 104 } 92 105 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 } 106 SelectionListener dgSelectionListener( Dg, T... )( int type, Dg dg, T args ){ 107 return new _DgSelectionListenerT!( Dg, T )( type, dg, args ); 114 108 } 115 109 116 110 SelectionListener dgSelectionListenerWidgetSelected( Dg, T... )( Dg dg, T args ){ 117 return new _DgSelectionListenerWidgetSelectedT!( Dg, T )(dg, args );111 return dgSelectionListener( SelectionListener.SELECTION, dg, args ); 118 112 } 119 113 SelectionListener dgSelectionListenerWidgetDefaultSelected( Dg, T... )( Dg dg, T args ){ 120 return new _DgSelectionListenerWidgetDefaultSelectedT!( Dg, T )(dg, args );114 return dgSelectionListener( SelectionListener.DEFAULTSELECTION, dg, args ); 121 115 } 122 116 123 124 dwt/widgets/Listener.d
r216 r311 64 64 alias ParameterTupleOf!(Dg) DgArgs; 65 65 static assert( is(DgArgs == Tuple!(Event,T)), 66 "Delegate args not correct " );66 "Delegate args not correct: delegate args: ("~DgArgs.stringof~") vs. passed args: ("~Tuple!(Event,T).stringof~")" ); 67 67 68 68 Dg dg;
