Mercurial > projects > dwt-addons
comparison dwtx/draw2d/ButtonBorder.d @ 102:0de61c6f08ca
Reduce static ctors
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Sun, 03 Aug 2008 03:07:30 +0200 |
parents | 95307ad235d9 |
children | 2d6540440fe6 |
comparison
equal
deleted
inserted
replaced
101:1082a0fc2bb8 | 102:0de61c6f08ca |
---|---|
42 alias SchemeBorder.paint paint; | 42 alias SchemeBorder.paint paint; |
43 /** | 43 /** |
44 * Default button border. | 44 * Default button border. |
45 * @see SCHEMES#BUTTON | 45 * @see SCHEMES#BUTTON |
46 */ | 46 */ |
47 public static const Border BUTTON; | 47 private static const Border BUTTON_; |
48 public static ButtonScheme BUTTON(){ | |
49 if( BUTTON_ is null ){ | |
50 synchronized( ButtonScheme.classinfo ){ | |
51 if( BUTTON_ is null ){ | |
52 BUTTON_ = new ButtonBorder(SCHEMES.BUTTON); | |
53 } | |
54 } | |
55 } | |
56 return BUTTON_; | |
57 } | |
48 /** | 58 /** |
49 * Inverted hightlight colors from BUTTON. | 59 * Inverted hightlight colors from BUTTON. |
50 * @see SCHEMES#BUTTON_CONTRAST | 60 * @see SCHEMES#BUTTON_CONTRAST |
51 */ | 61 */ |
52 public static const Border BUTTON_CONTRAST; | 62 private static const Border BUTTON_CONTRAST_; |
63 public static ButtonScheme BUTTON_CONTRAST(){ | |
64 if( BUTTON_CONTRAST_ is null ){ | |
65 synchronized( ButtonScheme.classinfo ){ | |
66 if( BUTTON_CONTRAST_ is null ){ | |
67 BUTTON_CONTRAST_ = new ButtonBorder(SCHEMES.BUTTON_CONTRAST); | |
68 } | |
69 } | |
70 } | |
71 return BUTTON_CONTRAST_; | |
72 } | |
53 /** | 73 /** |
54 * Used for scrollbar buttons. | 74 * Used for scrollbar buttons. |
55 * @see SCHEMES#BUTTON_SCROLLBAR | 75 * @see SCHEMES#BUTTON_SCROLLBAR |
56 */ | 76 */ |
57 public static const Border BUTTON_SCROLLBAR; | 77 private static const Border BUTTON_SCROLLBAR_; |
78 public static ButtonScheme BUTTON_SCROLLBAR(){ | |
79 if( BUTTON_SCROLLBAR_ is null ){ | |
80 synchronized( ButtonScheme.classinfo ){ | |
81 if( BUTTON_SCROLLBAR_ is null ){ | |
82 BUTTON_SCROLLBAR_ = new ButtonBorder(SCHEMES.BUTTON_SCROLLBAR); | |
83 } | |
84 } | |
85 } | |
86 return BUTTON_SCROLLBAR_; | |
87 } | |
58 /** | 88 /** |
59 * Used for toolbar buttons. | 89 * Used for toolbar buttons. |
60 * @see SCHEMES#TOOLBAR | 90 * @see SCHEMES#TOOLBAR |
61 */ | 91 */ |
62 public static const Border TOOLBAR; | 92 private static const Border TOOLBAR_; |
63 | 93 public static ButtonScheme TOOLBAR(){ |
64 static this(){ | 94 if( TOOLBAR_ is null ){ |
65 BUTTON = new ButtonBorder(SCHEMES.BUTTON); | 95 synchronized( ButtonScheme.classinfo ){ |
66 BUTTON_CONTRAST = new ButtonBorder(SCHEMES.BUTTON_CONTRAST); | 96 if( TOOLBAR_ is null ){ |
67 BUTTON_SCROLLBAR = new ButtonBorder(SCHEMES.BUTTON_SCROLLBAR); | 97 TOOLBAR_ = new ButtonBorder(SCHEMES.TOOLBAR); |
68 TOOLBAR = new ButtonBorder(SCHEMES.TOOLBAR); | 98 } |
99 } | |
100 } | |
101 return TOOLBAR_; | |
69 } | 102 } |
70 | 103 |
71 /** | 104 /** |
72 * Provides for a scheme to represent the borders of clickable figures like buttons. | 105 * Provides for a scheme to represent the borders of clickable figures like buttons. |
73 * Though similar to the {@link SchemeBorder.Scheme Scheme} it supports an extra set of | 106 * Though similar to the {@link SchemeBorder.Scheme Scheme} it supports an extra set of |
191 public struct SCHEMES { | 224 public struct SCHEMES { |
192 | 225 |
193 /** | 226 /** |
194 * Contrast button scheme | 227 * Contrast button scheme |
195 */ | 228 */ |
196 static const ButtonScheme BUTTON_CONTRAST; | 229 private static const ButtonScheme BUTTON_CONTRAST_; |
230 static ButtonScheme BUTTON_CONTRAST(){ | |
231 if( BUTTON_CONTRAST_ is null ){ | |
232 synchronized( ButtonScheme.classinfo ){ | |
233 if( BUTTON_CONTRAST_ is null ){ | |
234 BUTTON_CONTRAST_ = new ButtonScheme( | |
235 [ColorConstants.button, ColorConstants.buttonLightest], | |
236 DARKEST_DARKER | |
237 ); | |
238 } | |
239 } | |
240 } | |
241 return BUTTON_CONTRAST_; | |
242 } | |
197 /** | 243 /** |
198 * Regular button scheme | 244 * Regular button scheme |
199 */ | 245 */ |
200 static const ButtonScheme BUTTON; | 246 private static const ButtonScheme BUTTON_; |
247 static ButtonScheme BUTTON(){ | |
248 if( BUTTON_ is null ){ | |
249 synchronized( ButtonScheme.classinfo ){ | |
250 if( BUTTON_ is null ){ | |
251 BUTTON_ = new ButtonScheme( | |
252 [ColorConstants.buttonLightest], | |
253 DARKEST_DARKER | |
254 ); | |
255 } | |
256 } | |
257 } | |
258 return BUTTON_; | |
259 } | |
201 /** | 260 /** |
202 * Toolbar button scheme | 261 * Toolbar button scheme |
203 */ | 262 */ |
204 static const ButtonScheme TOOLBAR; | 263 private static const ButtonScheme TOOLBAR_; |
264 static ButtonScheme TOOLBAR(){ | |
265 if( TOOLBAR_ is null ){ | |
266 synchronized( ButtonScheme.classinfo ){ | |
267 if( TOOLBAR_ is null ){ | |
268 TOOLBAR_ = new ButtonScheme( | |
269 [ColorConstants.buttonLightest], | |
270 [ColorConstants.buttonDarker] | |
271 ); | |
272 } | |
273 } | |
274 } | |
275 return TOOLBAR_; | |
276 } | |
205 /** | 277 /** |
206 * Scrollbar button scheme | 278 * Scrollbar button scheme |
207 */ | 279 */ |
208 static const ButtonScheme BUTTON_SCROLLBAR; | 280 private static const ButtonScheme BUTTON_SCROLLBAR_; |
209 static this(){ | 281 static ButtonScheme BUTTON_SCROLLBAR(){ |
210 BUTTON_CONTRAST = new ButtonScheme( | 282 if( BUTTON_SCROLLBAR_ is null ){ |
211 [ColorConstants.button, ColorConstants.buttonLightest], | 283 synchronized( ButtonScheme.classinfo ){ |
212 DARKEST_DARKER | 284 if( BUTTON_SCROLLBAR_ is null ){ |
213 ); | 285 BUTTON_SCROLLBAR_ = new ButtonScheme( |
214 BUTTON = new ButtonScheme( | 286 [ColorConstants.button, ColorConstants.buttonLightest], |
215 [ColorConstants.buttonLightest], | 287 DARKEST_DARKER, |
216 DARKEST_DARKER | 288 [ColorConstants.buttonDarker], |
217 ); | 289 [ColorConstants.buttonDarker] |
218 TOOLBAR = new ButtonScheme( | 290 ); |
219 [ColorConstants.buttonLightest], | 291 } |
220 [ColorConstants.buttonDarker] | 292 } |
221 ); | 293 } |
222 BUTTON_SCROLLBAR = new ButtonScheme( | 294 return BUTTON_SCROLLBAR_; |
223 [ColorConstants.button, ColorConstants.buttonLightest], | 295 } |
224 DARKEST_DARKER, | |
225 [ColorConstants.buttonDarker], | |
226 [ColorConstants.buttonDarker] | |
227 ); | |
228 } | |
229 } | 296 } |
230 | 297 |
231 /** | 298 /** |
232 * Constructs a ButtonBorder with a predefined button scheme set as its default. | 299 * Constructs a ButtonBorder with a predefined button scheme set as its default. |
233 * | 300 * |