# timetable_gui.cpp File Reference

GUI for time tabling. More...

`#include "stdafx.h"`
`#include "command_func.h"`
`#include "gui.h"`
`#include "window_gui.h"`
`#include "window_func.h"`
`#include "textbuf_gui.h"`
`#include "strings_func.h"`
`#include "vehicle_base.h"`
`#include "string_func.h"`
`#include "gfx_func.h"`
`#include "company_func.h"`
`#include "date_func.h"`
`#include "date_gui.h"`
`#include "vehicle_gui.h"`
`#include "settings_type.h"`
`#include "table/sprites.h"`
`#include "table/strings.h"`

Go to the source code of this file.

## Data Structures
struct | TimetableArrivalDeparture
| Container for the arrival/departure dates of a vehicle. More...
struct | TimetableWindow
## Enumerations
enum | TimetableViewWindowWidgets { TTV_CAPTION, TTV_ORDER_VIEW, TTV_TIMETABLE_PANEL, TTV_FAKE_SCROLLBAR, TTV_ARRIVAL_DEPARTURE_PANEL, TTV_SCROLLBAR, TTV_SUMMARY_PANEL, TTV_START_DATE, TTV_CHANGE_TIME, TTV_CLEAR_TIME, TTV_RESET_LATENESS, TTV_AUTOFILL, TTV_EXPECTED, TTV_SHARED_ORDER_LIST, TTV_ARRIVAL_DEPARTURE_SELECTION, TTV_EXPECTED_SELECTION }
## Functions
void | SetTimetableParams (int param1, int param2, Ticks ticks)
| Set the timetable parameters in the format as described by the setting.
static void | SetArrivalDepartParams (int param1, int param2, Ticks ticks)
| Sets the arrival or departure string and parameters.
static bool | CanDetermineTimeTaken (const Order *order, bool travelling)
| Check whether it is possible to determine how long the order takes.
static void | FillTimetableArrivalDepartureTable (const Vehicle *v, VehicleOrderID start, bool travelling, TimetableArrivalDeparture *table, Ticks offset)
| Fill the table with arrivals and departures.
static void | ChangeTimetableStartCallback (const Window *w, Date date)
| Callback for when a time has been chosen to start the time table.
void | ShowTimetableWindow (const Vehicle *v)
## Variables
static const NWidgetPart | _nested_timetable_widgets []
static const WindowDesc | _timetable_desc (WDP_AUTO, 400, 130, WC_VEHICLE_TIMETABLE, WC_VEHICLE_VIEW, WDF_UNCLICK_BUTTONS|WDF_CONSTRUCTION, _nested_timetable_widgets, lengthof(_nested_timetable_widgets))

## Detailed Description

GUI for time tabling.

Definition in file timetable_gui.cpp.

## Enumeration Type Documentation

enum TimetableViewWindowWidgets

Enumerator:

  TTV_FAKE_SCROLLBAR | So the timetable panel 'sees' the scrollbar too.
  TTV_ARRIVAL_DEPARTURE_PANEL | Panel with the expected/scheduled arrivals.
  TTV_EXPECTED | Toggle between expected and scheduled arrivals.
  TTV_SHARED_ORDER_LIST | Show the shared order list.
  TTV_ARRIVAL_DEPARTURE_SELECTION | Disable/hide the arrival departure panel.
  TTV_EXPECTED_SELECTION | Disable/hide the expected selection button.

Definition at line 31 of file timetable_gui.cpp.

## Function Documentation

static bool CanDetermineTimeTaken | ( | const Order * | order,
|  | bool | travelling |
| ) |  |  | `[static]`

Check whether it is possible to determine how long the order takes.

Parameters:

  | order | the order to check.
  | travelling | whether we are interested in the travel or the wait part.

Returns:
  true if the travel/wait time can be used.

Definition at line 91 of file timetable_gui.cpp.

References Order::GetNonStopType(), Order::IsType(), ONSF_NO_STOP_AT_DESTINATION_STATION, Order::travel_time, and Order::wait_time.

Referenced by FillTimetableArrivalDepartureTable().

static void ChangeTimetableStartCallback | ( | const Window * | w,
|  | Date | date |
| ) |  |  | `[static]`

Callback for when a time has been chosen to start the time table.

Parameters:

  | window | the window related to the setting of the date
  | date | the actually chosen date

Definition at line 164 of file timetable_gui.cpp.

References CMD_MSG, CMD_SET_TIMETABLE_START, DoCommandP(), and Window::window_number.

Referenced by TimetableWindow::OnClick().

static void FillTimetableArrivalDepartureTable | ( | const Vehicle * | v,
|  | VehicleOrderID | start,
|  | bool | travelling,
|  | TimetableArrivalDeparture * | table,
|  | Ticks | offset |
| ) |  |  | `[static]`

Fill the table with arrivals and departures.

Parameters:

  | v | Vehicle which must have at least 2 orders.
  | start | order index to start at
  | travelling | Are we still in the travelling part of the start order
  | table | Fill in arrival and departures including intermediate orders
  | offset | Add this value to result and all arrivals and departures

Definition at line 112 of file timetable_gui.cpp.

References TimetableArrivalDeparture::arrival, CanDetermineTimeTaken(), TimetableArrivalDeparture::departure, OrderList::GetFirstOrder(), Vehicle::GetNumOrders(), Vehicle::GetOrder(), INVALID_TICKS, Vehicle::list, Order::next, Order::travel_time, and Order::wait_time.

Referenced by TimetableWindow::BuildArrivalDepartureList().

static void SetArrivalDepartParams | ( | int | param1,
|  | int | param2,
|  | Ticks | ticks |
| ) |  |  | `[static]`

Sets the arrival or departure string and parameters.

Parameters:

  | param1 | the first DParam to fill
  | param2 | the second DParam to fill
  | ticks | the number of ticks to 'draw'

Definition at line 79 of file timetable_gui.cpp.

References _date, DAY_TICKS, and SetDParam().

Referenced by TimetableWindow::DrawWidget().

void SetTimetableParams | ( | int | param1,
|  | int | param2,
|  | Ticks | ticks |
| ) |  |  |

Set the timetable parameters in the format as described by the setting.

Parameters:

  | param1 | the first DParam to fill
  | param2 | the second DParam to fill
  | ticks | the number of ticks to 'draw'

Definition at line 62 of file timetable_gui.cpp.

References _settings_client, DAY_TICKS, ClientSettings::gui, SetDParam(), and GUISettings::timetable_in_ticks.

Referenced by DrawOrderString(), and TimetableWindow::DrawWidget().