@ -1604,6 +1604,7 @@ struct BuildSignalWindow : public PickerWindowBase {
private :
Dimension sig_sprite_size ; ///< Maximum size of signal GUI sprites.
int sig_sprite_bottom_offset ; ///< Maximum extent of signal GUI sprite from reference point towards bottom.
bool progsig_ui_shown ; ///< Whether programmable signal UI is shown
/**
* Draw dynamic a signal - sprite in a button in the signal GUI
@ -1627,10 +1628,19 @@ private:
y + this - > IsWidgetLowered ( widget_index ) ) ;
}
void SetProgsigUiShown ( ) {
this - > progsig_ui_shown = _settings_client . gui . show_progsig_ui ;
this - > GetWidget < NWidgetStacked > ( WID_BS_SEMAPHORE_PROG_SEL ) - > SetDisplayedPlane ( _settings_client . gui . show_progsig_ui ? 0 : SZSP_NONE ) ;
this - > GetWidget < NWidgetStacked > ( WID_BS_ELECTRIC_PROG_SEL ) - > SetDisplayedPlane ( _settings_client . gui . show_progsig_ui ? 0 : SZSP_NONE ) ;
this - > GetWidget < NWidgetStacked > ( WID_BS_PROGRAM_SEL ) - > SetDisplayedPlane ( _settings_client . gui . show_progsig_ui ? 0 : 1 ) ;
}
public :
BuildSignalWindow ( WindowDesc * desc , Window * parent ) : PickerWindowBase ( desc , parent )
{
this - > InitNested ( TRANSPORT_RAIL ) ;
this - > CreateNestedTree ( ) ;
this - > SetProgsigUiShown ( ) ;
this - > FinishInitNested ( TRANSPORT_RAIL ) ;
this - > OnInvalidateData ( ) ;
}
@ -1799,6 +1809,11 @@ public:
this - > SetWidgetDisabledState ( WID_BS_DRAG_SIGNALS_DENSITY_DECREASE , _settings_client . gui . drag_signals_density = = 1 ) ;
this - > SetWidgetDisabledState ( WID_BS_DRAG_SIGNALS_DENSITY_INCREASE , _settings_client . gui . drag_signals_density = = 20 ) ;
if ( this - > progsig_ui_shown ! = _settings_client . gui . show_progsig_ui ) {
this - > SetProgsigUiShown ( ) ;
this - > ReInit ( ) ;
}
}
} ;
@ -1814,7 +1829,9 @@ static const NWidgetPart _nested_signal_builder_widgets[] = {
NWidget ( WWT_PANEL , COLOUR_DARK_GREEN , WID_BS_SEMAPHORE_ENTRY ) , SetDataTip ( STR_NULL , STR_BUILD_SIGNAL_SEMAPHORE_ENTRY_TOOLTIP ) , EndContainer ( ) , SetFill ( 1 , 1 ) ,
NWidget ( WWT_PANEL , COLOUR_DARK_GREEN , WID_BS_SEMAPHORE_EXIT ) , SetDataTip ( STR_NULL , STR_BUILD_SIGNAL_SEMAPHORE_EXIT_TOOLTIP ) , EndContainer ( ) , SetFill ( 1 , 1 ) ,
NWidget ( WWT_PANEL , COLOUR_DARK_GREEN , WID_BS_SEMAPHORE_COMBO ) , SetDataTip ( STR_NULL , STR_BUILD_SIGNAL_SEMAPHORE_COMBO_TOOLTIP ) , EndContainer ( ) , SetFill ( 1 , 1 ) ,
NWidget ( WWT_PANEL , COLOUR_DARK_GREEN , WID_BS_SEMAPHORE_PROG ) , SetDataTip ( STR_NULL , STR_BUILD_SIGNAL_SEMAPHORE_PROG_TOOLTIP ) , EndContainer ( ) , SetFill ( 1 , 1 ) ,
NWidget ( NWID_SELECTION , INVALID_COLOUR , WID_BS_SEMAPHORE_PROG_SEL ) ,
NWidget ( WWT_PANEL , COLOUR_DARK_GREEN , WID_BS_SEMAPHORE_PROG ) , SetDataTip ( STR_NULL , STR_BUILD_SIGNAL_SEMAPHORE_PROG_TOOLTIP ) , EndContainer ( ) , SetFill ( 1 , 1 ) ,
EndContainer ( ) ,
NWidget ( WWT_PANEL , COLOUR_DARK_GREEN , WID_BS_SEMAPHORE_PBS ) , SetDataTip ( STR_NULL , STR_BUILD_SIGNAL_SEMAPHORE_PBS_TOOLTIP ) , EndContainer ( ) , SetFill ( 1 , 1 ) ,
NWidget ( WWT_PANEL , COLOUR_DARK_GREEN , WID_BS_SEMAPHORE_PBS_OWAY ) , SetDataTip ( STR_NULL , STR_BUILD_SIGNAL_SEMAPHORE_PBS_OWAY_TOOLTIP ) , EndContainer ( ) , SetFill ( 1 , 1 ) ,
NWidget ( WWT_IMGBTN , COLOUR_DARK_GREEN , WID_BS_CONVERT ) , SetDataTip ( SPR_IMG_SIGNAL_CONVERT , STR_BUILD_SIGNAL_CONVERT_TOOLTIP ) , SetFill ( 1 , 1 ) ,
@ -1825,7 +1842,9 @@ static const NWidgetPart _nested_signal_builder_widgets[] = {
NWidget ( WWT_PANEL , COLOUR_DARK_GREEN , WID_BS_ELECTRIC_ENTRY ) , SetDataTip ( STR_NULL , STR_BUILD_SIGNAL_ELECTRIC_ENTRY_TOOLTIP ) , EndContainer ( ) , SetFill ( 1 , 1 ) ,
NWidget ( WWT_PANEL , COLOUR_DARK_GREEN , WID_BS_ELECTRIC_EXIT ) , SetDataTip ( STR_NULL , STR_BUILD_SIGNAL_ELECTRIC_EXIT_TOOLTIP ) , EndContainer ( ) , SetFill ( 1 , 1 ) ,
NWidget ( WWT_PANEL , COLOUR_DARK_GREEN , WID_BS_ELECTRIC_COMBO ) , SetDataTip ( STR_NULL , STR_BUILD_SIGNAL_ELECTRIC_COMBO_TOOLTIP ) , EndContainer ( ) , SetFill ( 1 , 1 ) ,
NWidget ( WWT_PANEL , COLOUR_DARK_GREEN , WID_BS_ELECTRIC_PROG ) , SetDataTip ( STR_NULL , STR_BUILD_SIGNAL_ELECTRIC_PROG_TOOLTIP ) , EndContainer ( ) , SetFill ( 1 , 1 ) ,
NWidget ( NWID_SELECTION , INVALID_COLOUR , WID_BS_ELECTRIC_PROG_SEL ) ,
NWidget ( WWT_PANEL , COLOUR_DARK_GREEN , WID_BS_ELECTRIC_PROG ) , SetDataTip ( STR_NULL , STR_BUILD_SIGNAL_ELECTRIC_PROG_TOOLTIP ) , EndContainer ( ) , SetFill ( 1 , 1 ) ,
EndContainer ( ) ,
NWidget ( WWT_PANEL , COLOUR_DARK_GREEN , WID_BS_ELECTRIC_PBS ) , SetDataTip ( STR_NULL , STR_BUILD_SIGNAL_ELECTRIC_PBS_TOOLTIP ) , EndContainer ( ) , SetFill ( 1 , 1 ) ,
NWidget ( WWT_PANEL , COLOUR_DARK_GREEN , WID_BS_ELECTRIC_PBS_OWAY ) , SetDataTip ( STR_NULL , STR_BUILD_SIGNAL_ELECTRIC_PBS_OWAY_TOOLTIP ) , EndContainer ( ) , SetFill ( 1 , 1 ) ,
NWidget ( WWT_PANEL , COLOUR_DARK_GREEN ) , SetDataTip ( STR_NULL , STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_TOOLTIP ) , SetFill ( 1 , 1 ) ,
@ -1838,7 +1857,10 @@ static const NWidgetPart _nested_signal_builder_widgets[] = {
EndContainer ( ) ,
NWidget ( NWID_SPACER ) , SetMinimalSize ( 0 , 2 ) , SetFill ( 1 , 0 ) ,
EndContainer ( ) ,
NWidget ( WWT_IMGBTN , COLOUR_DARK_GREEN , WID_BS_PROGRAM ) , SetDataTip ( SPR_IMG_SETTINGS , STR_PROGRAM_SIGNAL_TOOLTIP ) , SetFill ( 1 , 1 ) ,
NWidget ( NWID_SELECTION , INVALID_COLOUR , WID_BS_PROGRAM_SEL ) ,
NWidget ( WWT_IMGBTN , COLOUR_DARK_GREEN , WID_BS_PROGRAM ) , SetDataTip ( SPR_IMG_SETTINGS , STR_PROGRAM_SIGNAL_TOOLTIP ) , SetFill ( 1 , 1 ) ,
NWidget ( WWT_PANEL , COLOUR_DARK_GREEN ) , EndContainer ( ) , SetFill ( 1 , 1 ) ,
EndContainer ( ) ,
EndContainer ( ) ,
EndContainer ( ) ,
} ;