Mercurial > projects > dwt-addons
diff 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 |
line wrap: on
line diff
--- a/dwtx/draw2d/ButtonBorder.d Sun Aug 03 02:17:46 2008 +0200 +++ b/dwtx/draw2d/ButtonBorder.d Sun Aug 03 03:07:30 2008 +0200 @@ -44,28 +44,61 @@ * Default button border. * @see SCHEMES#BUTTON */ -public static const Border BUTTON; +private static const Border BUTTON_; +public static ButtonScheme BUTTON(){ + if( BUTTON_ is null ){ + synchronized( ButtonScheme.classinfo ){ + if( BUTTON_ is null ){ + BUTTON_ = new ButtonBorder(SCHEMES.BUTTON); + } + } + } + return BUTTON_; +} /** * Inverted hightlight colors from BUTTON. * @see SCHEMES#BUTTON_CONTRAST */ -public static const Border BUTTON_CONTRAST; +private static const Border BUTTON_CONTRAST_; +public static ButtonScheme BUTTON_CONTRAST(){ + if( BUTTON_CONTRAST_ is null ){ + synchronized( ButtonScheme.classinfo ){ + if( BUTTON_CONTRAST_ is null ){ + BUTTON_CONTRAST_ = new ButtonBorder(SCHEMES.BUTTON_CONTRAST); + } + } + } + return BUTTON_CONTRAST_; +} /** * Used for scrollbar buttons. * @see SCHEMES#BUTTON_SCROLLBAR */ -public static const Border BUTTON_SCROLLBAR; +private static const Border BUTTON_SCROLLBAR_; +public static ButtonScheme BUTTON_SCROLLBAR(){ + if( BUTTON_SCROLLBAR_ is null ){ + synchronized( ButtonScheme.classinfo ){ + if( BUTTON_SCROLLBAR_ is null ){ + BUTTON_SCROLLBAR_ = new ButtonBorder(SCHEMES.BUTTON_SCROLLBAR); + } + } + } + return BUTTON_SCROLLBAR_; +} /** * Used for toolbar buttons. * @see SCHEMES#TOOLBAR */ -public static const Border TOOLBAR; - -static this(){ - BUTTON = new ButtonBorder(SCHEMES.BUTTON); - BUTTON_CONTRAST = new ButtonBorder(SCHEMES.BUTTON_CONTRAST); - BUTTON_SCROLLBAR = new ButtonBorder(SCHEMES.BUTTON_SCROLLBAR); - TOOLBAR = new ButtonBorder(SCHEMES.TOOLBAR); +private static const Border TOOLBAR_; +public static ButtonScheme TOOLBAR(){ + if( TOOLBAR_ is null ){ + synchronized( ButtonScheme.classinfo ){ + if( TOOLBAR_ is null ){ + TOOLBAR_ = new ButtonBorder(SCHEMES.TOOLBAR); + } + } + } + return TOOLBAR_; } /** @@ -193,39 +226,73 @@ /** * Contrast button scheme */ - static const ButtonScheme BUTTON_CONTRAST; + private static const ButtonScheme BUTTON_CONTRAST_; + static ButtonScheme BUTTON_CONTRAST(){ + if( BUTTON_CONTRAST_ is null ){ + synchronized( ButtonScheme.classinfo ){ + if( BUTTON_CONTRAST_ is null ){ + BUTTON_CONTRAST_ = new ButtonScheme( + [ColorConstants.button, ColorConstants.buttonLightest], + DARKEST_DARKER + ); + } + } + } + return BUTTON_CONTRAST_; + } /** * Regular button scheme */ - static const ButtonScheme BUTTON; + private static const ButtonScheme BUTTON_; + static ButtonScheme BUTTON(){ + if( BUTTON_ is null ){ + synchronized( ButtonScheme.classinfo ){ + if( BUTTON_ is null ){ + BUTTON_ = new ButtonScheme( + [ColorConstants.buttonLightest], + DARKEST_DARKER + ); + } + } + } + return BUTTON_; + } /** * Toolbar button scheme */ - static const ButtonScheme TOOLBAR; + private static const ButtonScheme TOOLBAR_; + static ButtonScheme TOOLBAR(){ + if( TOOLBAR_ is null ){ + synchronized( ButtonScheme.classinfo ){ + if( TOOLBAR_ is null ){ + TOOLBAR_ = new ButtonScheme( + [ColorConstants.buttonLightest], + [ColorConstants.buttonDarker] + ); + } + } + } + return TOOLBAR_; + } /** * Scrollbar button scheme */ - static const ButtonScheme BUTTON_SCROLLBAR; -static this(){ - BUTTON_CONTRAST = new ButtonScheme( - [ColorConstants.button, ColorConstants.buttonLightest], - DARKEST_DARKER - ); - BUTTON = new ButtonScheme( - [ColorConstants.buttonLightest], - DARKEST_DARKER - ); - TOOLBAR = new ButtonScheme( - [ColorConstants.buttonLightest], - [ColorConstants.buttonDarker] - ); - BUTTON_SCROLLBAR = new ButtonScheme( - [ColorConstants.button, ColorConstants.buttonLightest], - DARKEST_DARKER, - [ColorConstants.buttonDarker], - [ColorConstants.buttonDarker] - ); -} + private static const ButtonScheme BUTTON_SCROLLBAR_; + static ButtonScheme BUTTON_SCROLLBAR(){ + if( BUTTON_SCROLLBAR_ is null ){ + synchronized( ButtonScheme.classinfo ){ + if( BUTTON_SCROLLBAR_ is null ){ + BUTTON_SCROLLBAR_ = new ButtonScheme( + [ColorConstants.button, ColorConstants.buttonLightest], + DARKEST_DARKER, + [ColorConstants.buttonDarker], + [ColorConstants.buttonDarker] + ); + } + } + } + return BUTTON_SCROLLBAR_; + } } /**