Mercurial > projects > dwt-win
annotate dwt/custom/CTabFolder2Listener.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 |
rev | line source |
---|---|
155 | 1 /******************************************************************************* |
2 * Copyright (c) 2000, 2004 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.custom.CTabFolder2Listener; | |
14 | |
15 import dwt.internal.DWTEventListener; | |
16 import dwt.custom.CTabFolderEvent; | |
17 | |
311
02332a154347
Improved Listeners access functions.
Frank Benoit <benoit@tionex.de>
parents:
155
diff
changeset
|
18 import tango.core.Traits; |
02332a154347
Improved Listeners access functions.
Frank Benoit <benoit@tionex.de>
parents:
155
diff
changeset
|
19 import tango.core.Tuple; |
02332a154347
Improved Listeners access functions.
Frank Benoit <benoit@tionex.de>
parents:
155
diff
changeset
|
20 |
155 | 21 /** |
22 * Classes which implement this interface provide methods | |
23 * that deal with the events that are generated by the CTabFolder | |
24 * control. | |
25 * <p> | |
26 * After creating an instance of a class that : | |
27 * this interface it can be added to a CTabFolder using the | |
28 * <code>addCTabFolder2Listener</code> method and removed using | |
29 * the <code>removeCTabFolder2Listener</code> method. When | |
30 * events occurs in a CTabFolder the appropriate method | |
31 * will be invoked. | |
32 * </p> | |
33 * | |
34 * @see CTabFolder2Adapter | |
35 * @see CTabFolderEvent | |
36 * | |
37 * @since 3.0 | |
38 */ | |
39 public interface CTabFolder2Listener : DWTEventListener { | |
311
02332a154347
Improved Listeners access functions.
Frank Benoit <benoit@tionex.de>
parents:
155
diff
changeset
|
40 public enum { |
02332a154347
Improved Listeners access functions.
Frank Benoit <benoit@tionex.de>
parents:
155
diff
changeset
|
41 MINIMIZE, |
02332a154347
Improved Listeners access functions.
Frank Benoit <benoit@tionex.de>
parents:
155
diff
changeset
|
42 MAXIMIZE, |
02332a154347
Improved Listeners access functions.
Frank Benoit <benoit@tionex.de>
parents:
155
diff
changeset
|
43 SHOWLIST, |
02332a154347
Improved Listeners access functions.
Frank Benoit <benoit@tionex.de>
parents:
155
diff
changeset
|
44 RESTORE, |
02332a154347
Improved Listeners access functions.
Frank Benoit <benoit@tionex.de>
parents:
155
diff
changeset
|
45 CLOSE |
02332a154347
Improved Listeners access functions.
Frank Benoit <benoit@tionex.de>
parents:
155
diff
changeset
|
46 } |
155 | 47 |
48 /** | |
49 * Sent when the user clicks on the close button of an item in the CTabFolder. | |
50 * The item being closed is specified in the event.item field. | |
51 * Setting the event.doit field to false will stop the CTabItem from closing. | |
52 * When the CTabItem is closed, it is disposed. The contents of the | |
53 * CTabItem (see CTabItem.setControl) will be made not visible when | |
54 * the CTabItem is closed. | |
55 * | |
56 * @param event an event indicating the item being closed | |
57 */ | |
58 public void close(CTabFolderEvent event); | |
59 | |
60 /** | |
61 * Sent when the user clicks on the minimize button of a CTabFolder. | |
62 * The state of the CTabFolder does not change automatically - it | |
63 * is up to the application to change the state of the CTabFolder | |
64 * in response to this event using CTabFolder.setMinimized(true). | |
65 * | |
66 * @param event an event containing information about the minimize | |
67 * | |
68 * @see CTabFolder#getMinimized() | |
69 * @see CTabFolder#setMinimized(bool) | |
70 * @see CTabFolder#setMinimizeVisible(bool) | |
71 */ | |
72 public void minimize(CTabFolderEvent event); | |
73 | |
74 /** | |
75 * Sent when the user clicks on the maximize button of a CTabFolder. | |
76 * The state of the CTabFolder does not change automatically - it | |
77 * is up to the application to change the state of the CTabFolder | |
78 * in response to this event using CTabFolder.setMaximized(true). | |
79 * | |
80 * @param event an event containing information about the maximize | |
81 * | |
82 * @see CTabFolder#getMaximized() | |
83 * @see CTabFolder#setMaximized(bool) | |
84 * @see CTabFolder#setMaximizeVisible(bool) | |
85 */ | |
86 public void maximize(CTabFolderEvent event); | |
87 | |
88 /** | |
89 * Sent when the user clicks on the restore button of a CTabFolder. | |
90 * This event is sent either to restore the CTabFolder from the | |
91 * minimized state or from the maximized state. To determine | |
92 * which restore is requested, use CTabFolder.getMinimized() or | |
93 * CTabFolder.getMaximized() to determine the current state. | |
94 * The state of the CTabFolder does not change automatically - it | |
95 * is up to the application to change the state of the CTabFolder | |
96 * in response to this event using CTabFolder.setMaximized(false) | |
97 * or CTabFolder.setMinimized(false). | |
98 * | |
99 * @param event an event containing information about the restore | |
100 * | |
101 * @see CTabFolder#getMinimized() | |
102 * @see CTabFolder#getMaximized() | |
103 * @see CTabFolder#setMinimized(bool) | |
104 * @see CTabFolder#setMinimizeVisible(bool) | |
105 * @see CTabFolder#setMaximized(bool) | |
106 * @see CTabFolder#setMaximizeVisible(bool) | |
107 */ | |
108 public void restore(CTabFolderEvent event); | |
109 | |
110 /** | |
111 * Sent when the user clicks on the chevron button of the CTabFolder. | |
112 * A chevron appears in the CTabFolder when there are more tabs | |
113 * than can be displayed at the current widget size. To select a | |
114 * tab that is not currently visible, the user clicks on the | |
115 * chevron and selects a tab item from a list. By default, the | |
116 * CTabFolder provides a list of all the items that are not currently | |
117 * visible, however, the application can provide its own list by setting | |
118 * the event.doit field to <code>false</code> and displaying a selection list. | |
119 * | |
120 * @param event an event containing information about the show list | |
121 * | |
122 * @see CTabFolder#setSelection(CTabItem) | |
123 */ | |
124 public void showList(CTabFolderEvent event); | |
125 } | |
311
02332a154347
Improved Listeners access functions.
Frank Benoit <benoit@tionex.de>
parents:
155
diff
changeset
|
126 |
02332a154347
Improved Listeners access functions.
Frank Benoit <benoit@tionex.de>
parents:
155
diff
changeset
|
127 |
02332a154347
Improved Listeners access functions.
Frank Benoit <benoit@tionex.de>
parents:
155
diff
changeset
|
128 |
02332a154347
Improved Listeners access functions.
Frank Benoit <benoit@tionex.de>
parents:
155
diff
changeset
|
129 /// Helper class for the dgListener template function |
02332a154347
Improved Listeners access functions.
Frank Benoit <benoit@tionex.de>
parents:
155
diff
changeset
|
130 private class _DgCTabFolder2ListenerT(Dg,T...) : CTabFolder2Listener { |
02332a154347
Improved Listeners access functions.
Frank Benoit <benoit@tionex.de>
parents:
155
diff
changeset
|
131 |
02332a154347
Improved Listeners access functions.
Frank Benoit <benoit@tionex.de>
parents:
155
diff
changeset
|
132 alias ParameterTupleOf!(Dg) DgArgs; |
02332a154347
Improved Listeners access functions.
Frank Benoit <benoit@tionex.de>
parents:
155
diff
changeset
|
133 static assert( is(DgArgs == Tuple!(CTabFolderEvent,T)), |
02332a154347
Improved Listeners access functions.
Frank Benoit <benoit@tionex.de>
parents:
155
diff
changeset
|
134 "Delegate args not correct: "~DgArgs.stringof~" vs. (Event,"~T.stringof~")" ); |
02332a154347
Improved Listeners access functions.
Frank Benoit <benoit@tionex.de>
parents:
155
diff
changeset
|
135 |
02332a154347
Improved Listeners access functions.
Frank Benoit <benoit@tionex.de>
parents:
155
diff
changeset
|
136 Dg dg; |
02332a154347
Improved Listeners access functions.
Frank Benoit <benoit@tionex.de>
parents:
155
diff
changeset
|
137 T t; |
02332a154347
Improved Listeners access functions.
Frank Benoit <benoit@tionex.de>
parents:
155
diff
changeset
|
138 int type; |
02332a154347
Improved Listeners access functions.
Frank Benoit <benoit@tionex.de>
parents:
155
diff
changeset
|
139 |
02332a154347
Improved Listeners access functions.
Frank Benoit <benoit@tionex.de>
parents:
155
diff
changeset
|
140 private this( int type, Dg dg, T t ){ |
02332a154347
Improved Listeners access functions.
Frank Benoit <benoit@tionex.de>
parents:
155
diff
changeset
|
141 this.type = type; |
02332a154347
Improved Listeners access functions.
Frank Benoit <benoit@tionex.de>
parents:
155
diff
changeset
|
142 this.dg = dg; |
02332a154347
Improved Listeners access functions.
Frank Benoit <benoit@tionex.de>
parents:
155
diff
changeset
|
143 static if( T.length > 0 ){ |
02332a154347
Improved Listeners access functions.
Frank Benoit <benoit@tionex.de>
parents:
155
diff
changeset
|
144 this.t = t; |
02332a154347
Improved Listeners access functions.
Frank Benoit <benoit@tionex.de>
parents:
155
diff
changeset
|
145 } |
02332a154347
Improved Listeners access functions.
Frank Benoit <benoit@tionex.de>
parents:
155
diff
changeset
|
146 } |
02332a154347
Improved Listeners access functions.
Frank Benoit <benoit@tionex.de>
parents:
155
diff
changeset
|
147 |
02332a154347
Improved Listeners access functions.
Frank Benoit <benoit@tionex.de>
parents:
155
diff
changeset
|
148 void itemClosed( CTabFolderEvent e ){ |
02332a154347
Improved Listeners access functions.
Frank Benoit <benoit@tionex.de>
parents:
155
diff
changeset
|
149 dg(e,t); |
02332a154347
Improved Listeners access functions.
Frank Benoit <benoit@tionex.de>
parents:
155
diff
changeset
|
150 } |
02332a154347
Improved Listeners access functions.
Frank Benoit <benoit@tionex.de>
parents:
155
diff
changeset
|
151 public void close(CTabFolderEvent e){ |
02332a154347
Improved Listeners access functions.
Frank Benoit <benoit@tionex.de>
parents:
155
diff
changeset
|
152 if( type is CTabFolder2Listener.CLOSE ){ |
02332a154347
Improved Listeners access functions.
Frank Benoit <benoit@tionex.de>
parents:
155
diff
changeset
|
153 dg(e,t); |
02332a154347
Improved Listeners access functions.
Frank Benoit <benoit@tionex.de>
parents:
155
diff
changeset
|
154 } |
02332a154347
Improved Listeners access functions.
Frank Benoit <benoit@tionex.de>
parents:
155
diff
changeset
|
155 } |
02332a154347
Improved Listeners access functions.
Frank Benoit <benoit@tionex.de>
parents:
155
diff
changeset
|
156 public void minimize(CTabFolderEvent e){ |
02332a154347
Improved Listeners access functions.
Frank Benoit <benoit@tionex.de>
parents:
155
diff
changeset
|
157 if( type is CTabFolder2Listener.MINIMIZE ){ |
02332a154347
Improved Listeners access functions.
Frank Benoit <benoit@tionex.de>
parents:
155
diff
changeset
|
158 dg(e,t); |
02332a154347
Improved Listeners access functions.
Frank Benoit <benoit@tionex.de>
parents:
155
diff
changeset
|
159 } |
02332a154347
Improved Listeners access functions.
Frank Benoit <benoit@tionex.de>
parents:
155
diff
changeset
|
160 } |
02332a154347
Improved Listeners access functions.
Frank Benoit <benoit@tionex.de>
parents:
155
diff
changeset
|
161 public void maximize(CTabFolderEvent e){ |
02332a154347
Improved Listeners access functions.
Frank Benoit <benoit@tionex.de>
parents:
155
diff
changeset
|
162 if( type is CTabFolder2Listener.MAXIMIZE ){ |
02332a154347
Improved Listeners access functions.
Frank Benoit <benoit@tionex.de>
parents:
155
diff
changeset
|
163 dg(e,t); |
02332a154347
Improved Listeners access functions.
Frank Benoit <benoit@tionex.de>
parents:
155
diff
changeset
|
164 } |
02332a154347
Improved Listeners access functions.
Frank Benoit <benoit@tionex.de>
parents:
155
diff
changeset
|
165 } |
02332a154347
Improved Listeners access functions.
Frank Benoit <benoit@tionex.de>
parents:
155
diff
changeset
|
166 public void restore(CTabFolderEvent e){ |
02332a154347
Improved Listeners access functions.
Frank Benoit <benoit@tionex.de>
parents:
155
diff
changeset
|
167 if( type is CTabFolder2Listener.RESTORE ){ |
02332a154347
Improved Listeners access functions.
Frank Benoit <benoit@tionex.de>
parents:
155
diff
changeset
|
168 dg(e,t); |
02332a154347
Improved Listeners access functions.
Frank Benoit <benoit@tionex.de>
parents:
155
diff
changeset
|
169 } |
02332a154347
Improved Listeners access functions.
Frank Benoit <benoit@tionex.de>
parents:
155
diff
changeset
|
170 } |
02332a154347
Improved Listeners access functions.
Frank Benoit <benoit@tionex.de>
parents:
155
diff
changeset
|
171 public void showList(CTabFolderEvent e){ |
02332a154347
Improved Listeners access functions.
Frank Benoit <benoit@tionex.de>
parents:
155
diff
changeset
|
172 if( type is CTabFolder2Listener.SHOWLIST ){ |
02332a154347
Improved Listeners access functions.
Frank Benoit <benoit@tionex.de>
parents:
155
diff
changeset
|
173 dg(e,t); |
02332a154347
Improved Listeners access functions.
Frank Benoit <benoit@tionex.de>
parents:
155
diff
changeset
|
174 } |
02332a154347
Improved Listeners access functions.
Frank Benoit <benoit@tionex.de>
parents:
155
diff
changeset
|
175 } |
02332a154347
Improved Listeners access functions.
Frank Benoit <benoit@tionex.de>
parents:
155
diff
changeset
|
176 } |
02332a154347
Improved Listeners access functions.
Frank Benoit <benoit@tionex.de>
parents:
155
diff
changeset
|
177 |
02332a154347
Improved Listeners access functions.
Frank Benoit <benoit@tionex.de>
parents:
155
diff
changeset
|
178 /++ |
02332a154347
Improved Listeners access functions.
Frank Benoit <benoit@tionex.de>
parents:
155
diff
changeset
|
179 + dgListener creates a class implementing the Listener interface and delegating the call to |
02332a154347
Improved Listeners access functions.
Frank Benoit <benoit@tionex.de>
parents:
155
diff
changeset
|
180 + handleEvent to the users delegate. This template function will store also additional parameters. |
02332a154347
Improved Listeners access functions.
Frank Benoit <benoit@tionex.de>
parents:
155
diff
changeset
|
181 + |
02332a154347
Improved Listeners access functions.
Frank Benoit <benoit@tionex.de>
parents:
155
diff
changeset
|
182 + Examle of usage: |
02332a154347
Improved Listeners access functions.
Frank Benoit <benoit@tionex.de>
parents:
155
diff
changeset
|
183 + --- |
02332a154347
Improved Listeners access functions.
Frank Benoit <benoit@tionex.de>
parents:
155
diff
changeset
|
184 + void handleTextEvent ( Event e, int inset ) { |
02332a154347
Improved Listeners access functions.
Frank Benoit <benoit@tionex.de>
parents:
155
diff
changeset
|
185 + // ... |
02332a154347
Improved Listeners access functions.
Frank Benoit <benoit@tionex.de>
parents:
155
diff
changeset
|
186 + } |
02332a154347
Improved Listeners access functions.
Frank Benoit <benoit@tionex.de>
parents:
155
diff
changeset
|
187 + text.addListener (DWT.FocusOut, dgListener( &handleTextEvent, inset )); |
02332a154347
Improved Listeners access functions.
Frank Benoit <benoit@tionex.de>
parents:
155
diff
changeset
|
188 + --- |
02332a154347
Improved Listeners access functions.
Frank Benoit <benoit@tionex.de>
parents:
155
diff
changeset
|
189 +/ |
02332a154347
Improved Listeners access functions.
Frank Benoit <benoit@tionex.de>
parents:
155
diff
changeset
|
190 CTabFolder2Listener dgCTabFolder2Listener( Dg, T... )( int type, Dg dg, T args ){ |
02332a154347
Improved Listeners access functions.
Frank Benoit <benoit@tionex.de>
parents:
155
diff
changeset
|
191 return new _DgCTabFolder2ListenerT!( Dg, T )( type, dg, args ); |
02332a154347
Improved Listeners access functions.
Frank Benoit <benoit@tionex.de>
parents:
155
diff
changeset
|
192 } |
02332a154347
Improved Listeners access functions.
Frank Benoit <benoit@tionex.de>
parents:
155
diff
changeset
|
193 |
02332a154347
Improved Listeners access functions.
Frank Benoit <benoit@tionex.de>
parents:
155
diff
changeset
|
194 |
02332a154347
Improved Listeners access functions.
Frank Benoit <benoit@tionex.de>
parents:
155
diff
changeset
|
195 |