Data Structures | Typedefs | Enumerations | Functions | Variables

# programmable_signals_gui.cpp File Reference

GUI related to programming signals. More...

`#include "stdafx.h"`
`#include "programmable_signals.h"`
`#include "command_func.h"`
`#include "window_func.h"`
`#include "strings_func.h"`
`#include "string_func.h"`
`#include "viewport_func.h"`
`#include "textbuf_gui.h"`
`#include "company_func.h"`
`#include "widgets/dropdown_func.h"`
`#include "gui.h"`
`#include "gfx_func.h"`
`#include "tilehighlight_func.h"`
`#include "rail_map.h"`
`#include "tile_cmd.h"`
`#include "table/sprites.h"`
`#include "table/strings.h"`

Go to the source code of this file.

## Data Structures
struct | GuiInstruction
class | ProgramWindow
class | SpeedWindow
## Typedefs
typedef SmallVector < GuiInstruction, 4 > | GuiInstructionList
## Enumerations
enum | ProgramWindowWidgets { PROGRAM_WIDGET_CAPTION, PROGRAM_WIDGET_INSTRUCTION_LIST, PROGRAM_WIDGET_SCROLLBAR, PROGRAM_WIDGET_SEL_TOP_LEFT, PROGRAM_WIDGET_SEL_TOP_MIDDLE, PROGRAM_WIDGET_SEL_TOP_RIGHT, PROGRAM_WIDGET_SET_STATE, PROGRAM_WIDGET_COND_VARIABLE, PROGRAM_WIDGET_COND_COMPARATOR, PROGRAM_WIDGET_COND_VALUE, PROGRAM_WIDGET_COND_GOTO_SIGNAL, PROGRAM_WIDGET_COND_SET_SIGNAL, PROGRAM_WIDGET_GOTO_SIGNAL, PROGRAM_WIDGET_INSERT, PROGRAM_WIDGET_REMOVE }
enum | PanelWidgets { DPL_COND_VARIABLE = 0, DPL_SET_STATE, DPM_COND_COMPARATOR = 0, DPM_COND_GOTO_SIGNAL, DPR_COND_VALUE = 0, DPR_COND_SET_SIGNAL }
enum | SpeedWindowWidgets { SPEED_WIDGET_CAPTION, SPEED_WIDGET_VALUE, SPEED_WIDGET_CLEAR, SPEED_WIDGET_CHANGE }
## Functions
static SignalOpcode | OpcodeForIndex (int index)
static bool | IsConditionComparator (SignalCondition *cond)
static char * | GetConditionString (SignalCondition *cond, char *buf, char *buflast, bool selected)
| Get the string for a condition.
static void | DrawInstructionString (SignalInstruction *instruction, int y, bool selected, int indent, int left, int right)
| Draws an instruction in the programming GUI.
void | ShowSignalProgramWindow (SignalReference ref)
uint | ConvertSpeedToDisplaySpeed (uint speed)
| Convert the given (internal) speed to the display speed.
uint | ConvertDisplaySpeedToSpeed (uint speed)
| Convert the given display speed to the (internal) speed.
void | ShowSpeedSignalWindow (SignalReference ref)
## Variables
static const StringID | _program_insert []
static const StringID | _program_condvar []
static const StringID | _program_comparator []
static const StringID | _program_sigstate []
static const NWidgetPart | _nested_program_widgets []
static const WindowDesc | _program_desc (WDP_AUTO, 384, 100, WC_SIGNAL_PROGRAM, WC_BUILD_SIGNAL, WDF_CONSTRUCTION, _nested_program_widgets, lengthof(_nested_program_widgets))
static const NWidgetPart | _nested_speed_widgets []
static const WindowDesc | _speed_desc (WDP_AUTO, 384, 100, WC_SPEED_SIGNAL, WC_BUILD_SIGNAL, WDF_CONSTRUCTION, _nested_speed_widgets, lengthof(_nested_speed_widgets))

## Detailed Description

GUI related to programming signals.

Definition in file programmable_signals_gui.cpp.

## Function Documentation

uint ConvertDisplaySpeedToSpeed | ( | uint | speed | ) |

Convert the given display speed to the (internal) speed.

Parameters:

  | speed | the speed to convert

Returns:
  the converted speed.

Definition at line 675 of file strings.cpp.

References _settings_game, Units::c_velocity, UnitConversion::FromDisplay(), GameSettings::locale, and LocaleSettings::units.

uint ConvertSpeedToDisplaySpeed | ( | uint | speed | ) |

Convert the given (internal) speed to the display speed.

Parameters:

  | speed | the speed to convert

Returns:
  the converted speed.

Definition at line 662 of file strings.cpp.

References _settings_game, Units::c_velocity, GameSettings::locale, UnitConversion::ToDisplay(), and LocaleSettings::units.

static void DrawInstructionString | ( | SignalInstruction * | instruction,
|  | int | y,
|  | bool | selected,
|  | int | indent,
|  | int | left,
|  | int | right |
| ) |  |  | `[static]`

Draws an instruction in the programming GUI.

Parameters:

  | instruction | The instruction to draw.
  | y | Y position for drawing.
  | selected | True, if the order is selected.
  | indent | How many levels the instruction is indented.
  | left | Left border for text drawing.
  | right | Right border for text drawing.

Definition at line 154 of file programmable_signals_gui.cpp.

References SignalIf::condition, DrawString(), GetConditionString(), INVALID_STRING_ID, lastof, PSO_FIRST, PSO_IF, PSO_IF_ELSE, PSO_IF_ENDIF, PSO_LAST, PSO_SET_SIGNAL, SetDParam(), and SetDParamStr().

Referenced by ProgramWindow::DrawWidget().

static char* GetConditionString | ( | SignalCondition * | cond,
|  | char * | buf,
|  | char * | buflast,
|  | bool | selected |
| ) |  |  | `[static]`

Get the string for a condition.

Definition at line 122 of file programmable_signals_gui.cpp.

References INVALID_STRING_ID, and SetDParam().

Referenced by DrawInstructionString().

## Variable Documentation

const NWidgetPart _nested_speed_widgets[]`[static]`

Initial value:

     {
      NWidget(NWID_HORIZONTAL),
        NWidget(WWT_CLOSEBOX, COLOUR_GREY),
        NWidget(WWT_CAPTION, COLOUR_GREY, SPEED_WIDGET_CAPTION), SetDataTip(STR_SPEEDSIG_CAPTION, STR_NULL),
        NWidget(WWT_STICKYBOX, COLOUR_GREY),
      EndContainer(),
      NWidget(WWT_PANEL, COLOUR_GREY),
        NWidget(WWT_LABEL, COLOUR_GREY, SPEED_WIDGET_VALUE), SetMinimalSize(128, 12), SetFill(1, 1), SetPadding(2, 2, 2, 2),
      EndContainer(),
      NWidget(NWID_HORIZONTAL, NC_EQUALSIZE),
        NWidget(WWT_TEXTBTN, COLOUR_GREY, SPEED_WIDGET_CLEAR), SetDataTip(STR_SPEEDSIG_CLEAR, STR_NULL), SetMinimalSize(87, 12), SetFill(1, 0),
        NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, SPEED_WIDGET_CHANGE), SetDataTip(STR_SPEEDSIG_CHANGE, STR_NULL), SetMinimalSize(87, 12), SetFill(1, 0),
      EndContainer(),
    }

Definition at line 886 of file programmable_signals_gui.cpp.

const StringID _program_comparator[]`[static]`

Initial value:

     {
      STR_ORDER_CONDITIONAL_COMPARATOR_EQUALS,
      STR_ORDER_CONDITIONAL_COMPARATOR_NOT_EQUALS,
      STR_ORDER_CONDITIONAL_COMPARATOR_LESS_THAN,
      STR_ORDER_CONDITIONAL_COMPARATOR_LESS_EQUALS,
      STR_ORDER_CONDITIONAL_COMPARATOR_MORE_THAN,
      STR_ORDER_CONDITIONAL_COMPARATOR_MORE_EQUALS,
      STR_ORDER_CONDITIONAL_COMPARATOR_IS_TRUE,
      STR_ORDER_CONDITIONAL_COMPARATOR_IS_FALSE,
      INVALID_STRING_ID
    }

Definition at line 103 of file programmable_signals_gui.cpp.

const StringID _program_condvar[]`[static]`

Initial value:

     {
      STR_PROGSIG_COND_ALWAYS,
      STR_PROGSIG_COND_NEVER,
      STR_PROGSIG_CONDVAR_NUM_GREEN,
      STR_PROGSIG_CONDVAR_NUM_RED,
      STR_PROGSIG_COND_SIGNAL_STATE,
      INVALID_STRING_ID
    }

Definition at line 93 of file programmable_signals_gui.cpp.

const StringID _program_insert[]`[static]`

Initial value:

     {
      STR_PROGSIG_INSERT_IF,
      STR_PROGSIG_INSERT_SET_SIGNAL,
      INVALID_STRING_ID
    }

Definition at line 66 of file programmable_signals_gui.cpp.

const StringID _program_sigstate[]`[static]`

Initial value:

     {
      STR_COLOUR_RED,
      STR_COLOUR_GREEN,
      INVALID_STRING_ID
    }

Definition at line 115 of file programmable_signals_gui.cpp.