graph_gui.cpp File Reference

GUI that shows performance graphs. More...

#include "stdafx.h"
#include "openttd.h"
#include "graph_gui.h"
#include "window_gui.h"
#include "company_base.h"
#include "company_gui.h"
#include "economy_func.h"
#include "cargotype.h"
#include "strings_func.h"
#include "window_func.h"
#include "date_func.h"
#include "gfx_func.h"
#include "sortlist_type.h"
#include "core/geometry_func.hpp"
#include "table/strings.h"
#include "table/sprites.h"

Go to the source code of this file.

Data Structures

struct  GraphLegendWindow
struct  BaseGraphWindow
struct  OperatingProfitGraphWindow
struct  IncomeGraphWindow
struct  DeliveredCargoGraphWindow
struct  PerformanceHistoryGraphWindow
struct  CompanyValueGraphWindow
struct  PaymentRatesGraphWindow
class  CompanyLeagueWindow
struct  PerformanceRatingDetailWindow

Enumerations

enum  GraphLegendWidgetNumbers { GLW_BACKGROUND, GLW_FIRST_COMPANY, GLW_LAST_COMPANY = GLW_FIRST_COMPANY + MAX_COMPANIES - 1 }
 

Widget numbers of the graph legend window.

More...
enum  CompanyValueWidgets { BGW_KEY_BUTTON, BGW_BACKGROUND }
 

Widget numbers of a base graph window.

More...
enum  PerformanceHistoryGraphWidgets { PHW_KEY, PHW_DETAILED_PERFORMANCE, PHW_BACKGROUND }
 

Widget numbers of the performance history window.

More...
enum  CargoPaymentRatesWidgets {
  CPW_BACKGROUND, CPW_HEADER, CPW_GRAPH, CPW_FOOTER,
  CPW_CARGO_FIRST
}
 

Widget numbers of the cargo payment rates.

More...
enum  CompanyLeagueWidgets { CLW_BACKGROUND }
 

Widget numbers for the company league window.

More...
enum  PerformanceRatingDetailsWidgets { PRW_SCORE_FIRST, PRW_SCORE_LAST = PRW_SCORE_FIRST + (SCORE_END - SCORE_BEGIN) - 1, PRW_COMPANY_FIRST, PRW_COMPANY_LAST = PRW_COMPANY_FIRST + MAX_COMPANIES - 1 }
 

Widget numbers of the performance rating details window.

More...

Functions

static NWidgetBaseMakeNWidgetCompanyLines (int *biggest_index)
 Construct a vertical list of buttons, one for each company.
static void ShowGraphLegend ()
void ShowOperatingProfitGraph ()
void ShowIncomeGraph ()
void ShowDeliveredCargoGraph ()
void ShowPerformanceHistoryGraph ()
void ShowCompanyValueGraph ()
static NWidgetBaseMakeCargoButtons (int *biggest_index)
 Construct the row containing the digit keys.
void ShowCargoPaymentRates ()
static StringID GetPerformanceTitleFromValue (uint value)
void ShowCompanyLeagueTable ()
static NWidgetBaseMakePerformanceDetailPanels (int *biggest_index)
 Make a vertical list of panels for outputting score details.
static NWidgetBaseMakeCompanyButtonRows (int *biggest_index)
 Make a number of rows with button-like graphics, for enabling/disabling each company.
void ShowPerformanceRatingDetail ()

Variables

static uint _legend_excluded_companies
static uint _legend_excluded_cargo
static const OverflowSafeInt64 INVALID_DATAPOINT (INT64_MAX)
static const uint INVALID_DATAPOINT_POS = UINT_MAX
static const NWidgetPart _nested_graph_legend_widgets []
static const WindowDesc _graph_legend_desc (WDP_AUTO, 0, 0, WC_GRAPH_LEGEND, WC_NONE, 0, _nested_graph_legend_widgets, lengthof(_nested_graph_legend_widgets))
static const NWidgetPart _nested_operating_profit_widgets []
static const WindowDesc _operating_profit_desc (WDP_AUTO, 0, 0, WC_OPERATING_PROFIT, WC_NONE, WDF_UNCLICK_BUTTONS, _nested_operating_profit_widgets, lengthof(_nested_operating_profit_widgets))
static const NWidgetPart _nested_income_graph_widgets []
static const WindowDesc _income_graph_desc (WDP_AUTO, 0, 0, WC_INCOME_GRAPH, WC_NONE, WDF_UNCLICK_BUTTONS, _nested_income_graph_widgets, lengthof(_nested_income_graph_widgets))
static const NWidgetPart _nested_delivered_cargo_graph_widgets []
static const WindowDesc _delivered_cargo_graph_desc (WDP_AUTO, 0, 0, WC_DELIVERED_CARGO, WC_NONE, WDF_UNCLICK_BUTTONS, _nested_delivered_cargo_graph_widgets, lengthof(_nested_delivered_cargo_graph_widgets))
static const NWidgetPart _nested_performance_history_widgets []
static const WindowDesc _performance_history_desc (WDP_AUTO, 0, 0, WC_PERFORMANCE_HISTORY, WC_NONE, WDF_UNCLICK_BUTTONS, _nested_performance_history_widgets, lengthof(_nested_performance_history_widgets))
static const NWidgetPart _nested_company_value_graph_widgets []
static const WindowDesc _company_value_graph_desc (WDP_AUTO, 0, 0, WC_COMPANY_VALUE, WC_NONE, WDF_UNCLICK_BUTTONS, _nested_company_value_graph_widgets, lengthof(_nested_company_value_graph_widgets))
static const NWidgetPart _nested_cargo_payment_rates_widgets []
static const WindowDesc _cargo_payment_rates_desc (WDP_AUTO, 0, 0, WC_PAYMENT_RATES, WC_NONE, 0, _nested_cargo_payment_rates_widgets, lengthof(_nested_cargo_payment_rates_widgets))
static const StringID _performance_titles []
static const NWidgetPart _nested_company_league_widgets []
static const WindowDesc _company_league_desc (WDP_AUTO, 0, 0, WC_COMPANY_LEAGUE, WC_NONE, 0, _nested_company_league_widgets, lengthof(_nested_company_league_widgets))
static const NWidgetPart _nested_performance_rating_detail_widgets []
static const WindowDesc _performance_rating_detail_desc (WDP_AUTO, 0, 0, WC_PERFORMANCE_DETAIL, WC_NONE, 0, _nested_performance_rating_detail_widgets, lengthof(_nested_performance_rating_detail_widgets))

Detailed Description

GUI that shows performance graphs.

Definition in file graph_gui.cpp.


Enumeration Type Documentation

Widget numbers of the cargo payment rates.

Definition at line 811 of file graph_gui.cpp.

Widget numbers for the company league window.

Definition at line 997 of file graph_gui.cpp.

Widget numbers of a base graph window.

Definition at line 162 of file graph_gui.cpp.

Widget numbers of the graph legend window.

Definition at line 43 of file graph_gui.cpp.

Widget numbers of the performance history window.

Definition at line 717 of file graph_gui.cpp.

Widget numbers of the performance rating details window.

Definition at line 1177 of file graph_gui.cpp.


Function Documentation

static NWidgetBase* MakeCargoButtons ( int *  biggest_index  )  [static]

Construct the row containing the digit keys.

Definition at line 930 of file graph_gui.cpp.

References NWidgetContainer::Add(), CargoSpec::Index(), NWidgetResizeBase::SetFill(), NWidgetCore::SetLowered(), NWidgetCore::tool_tip, and WWT_PANEL.

static NWidgetBase* MakeCompanyButtonRows ( int *  biggest_index  )  [static]

Make a number of rows with button-like graphics, for enabling/disabling each company.

Parameters:
biggest_index Storage for collecting the biggest index used in the returned tree.
Returns:
Panel with rows of company buttons.
Postcondition:
*biggest_index contains the largest used index in the tree.

Definition at line 1442 of file graph_gui.cpp.

References NWidgetContainer::Add(), GetSpriteSize(), NWidgetCore::SetDataTip(), NWidgetResizeBase::SetFill(), NWidgetResizeBase::SetMinimalSize(), WD_MATRIX_BOTTOM, WD_MATRIX_LEFT, WD_MATRIX_RIGHT, WD_MATRIX_TOP, and WWT_PANEL.

static NWidgetBase* MakeNWidgetCompanyLines ( int *  biggest_index  )  [static]

Construct a vertical list of buttons, one for each company.

Parameters:
biggest_index Storage for collecting the biggest index used in the returned tree.
Returns:
Panel with company buttons.
Postcondition:
*biggest_index contains the largest used index in the tree.

Definition at line 113 of file graph_gui.cpp.

References NWidgetContainer::Add(), FONT_HEIGHT_NORMAL, NWidgetCore::SetDataTip(), NWidgetResizeBase::SetFill(), NWidgetResizeBase::SetMinimalSize(), WD_FRAMERECT_BOTTOM, WD_FRAMERECT_TOP, and WWT_PANEL.

static NWidgetBase* MakePerformanceDetailPanels ( int *  biggest_index  )  [static]

Make a vertical list of panels for outputting score details.

Parameters:
biggest_index Storage for collecting the biggest index used in the returned tree.
Returns:
Panel with performance details.
Postcondition:
*biggest_index contains the largest used index in the tree.

Definition at line 1408 of file graph_gui.cpp.

References NWidgetContainer::Add(), lengthof, NC_EQUALSIZE, SCORE_END, NWidgetCore::SetDataTip(), NWidgetResizeBase::SetFill(), and WWT_PANEL.


Variable Documentation

const NWidgetPart _nested_company_league_widgets[] [static]
Initial value:
 {
  NWidget(NWID_HORIZONTAL),
    NWidget(WWT_CLOSEBOX, COLOUR_GREY),
    NWidget(WWT_CAPTION, COLOUR_GREY), SetDataTip(STR_COMPANY_LEAGUE_TABLE_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS),
    NWidget(WWT_SHADEBOX, COLOUR_GREY),
    NWidget(WWT_STICKYBOX, COLOUR_GREY),
  EndContainer(),
  NWidget(WWT_PANEL, COLOUR_GREY, CLW_BACKGROUND), SetMinimalSize(400, 0), SetMinimalTextLines(15, WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM),
}

Definition at line 1150 of file graph_gui.cpp.

const NWidgetPart _nested_company_value_graph_widgets[] [static]
Initial value:
 {
  NWidget(NWID_HORIZONTAL),
    NWidget(WWT_CLOSEBOX, COLOUR_GREY),
    NWidget(WWT_CAPTION, COLOUR_GREY), SetDataTip(STR_GRAPH_COMPANY_VALUES_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS),
    NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, BGW_KEY_BUTTON), SetMinimalSize(50, 0), SetMinimalTextLines(1, WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM + 2), SetDataTip(STR_GRAPH_KEY_BUTTON, STR_GRAPH_KEY_TOOLTIP),
    NWidget(WWT_SHADEBOX, COLOUR_GREY),
    NWidget(WWT_STICKYBOX, COLOUR_GREY),
  EndContainer(),
  NWidget(WWT_PANEL, COLOUR_GREY, BGW_BACKGROUND), SetMinimalSize(576, 224), EndContainer(),
}

Definition at line 783 of file graph_gui.cpp.

const NWidgetPart _nested_delivered_cargo_graph_widgets[] [static]
Initial value:
 {
  NWidget(NWID_HORIZONTAL),
    NWidget(WWT_CLOSEBOX, COLOUR_GREY),
    NWidget(WWT_CAPTION, COLOUR_GREY), SetDataTip(STR_GRAPH_CARGO_DELIVERED_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS),
    NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, BGW_KEY_BUTTON), SetMinimalSize(50, 0), SetMinimalTextLines(1, WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM + 2), SetDataTip(STR_GRAPH_KEY_BUTTON, STR_GRAPH_KEY_TOOLTIP),
    NWidget(WWT_SHADEBOX, COLOUR_GREY),
    NWidget(WWT_STICKYBOX, COLOUR_GREY),
  EndContainer(),
  NWidget(WWT_PANEL, COLOUR_GREY, BGW_BACKGROUND), SetMinimalSize(576, 128), EndContainer(),
}

Definition at line 689 of file graph_gui.cpp.

const NWidgetPart _nested_graph_legend_widgets[] [static]
Initial value:
 {
  NWidget(NWID_HORIZONTAL),
    NWidget(WWT_CLOSEBOX, COLOUR_GREY),
    NWidget(WWT_CAPTION, COLOUR_GREY), SetDataTip(STR_GRAPH_KEY_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS),
    NWidget(WWT_SHADEBOX, COLOUR_GREY),
    NWidget(WWT_STICKYBOX, COLOUR_GREY),
  EndContainer(),
  NWidget(WWT_PANEL, COLOUR_GREY, GLW_BACKGROUND),
    NWidget(NWID_SPACER), SetMinimalSize(0, 2),
    NWidget(NWID_HORIZONTAL),
      NWidget(NWID_SPACER), SetMinimalSize(2, 0),
      NWidgetFunction(MakeNWidgetCompanyLines),
      NWidget(NWID_SPACER), SetMinimalSize(2, 0),
    EndContainer(),
  EndContainer(),
}

Definition at line 128 of file graph_gui.cpp.

const NWidgetPart _nested_income_graph_widgets[] [static]
Initial value:
 {
  NWidget(NWID_HORIZONTAL),
    NWidget(WWT_CLOSEBOX, COLOUR_GREY),
    NWidget(WWT_CAPTION, COLOUR_GREY), SetDataTip(STR_GRAPH_INCOME_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS),
    NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, BGW_KEY_BUTTON), SetMinimalSize(50, 0), SetMinimalTextLines(1, WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM + 2), SetDataTip(STR_GRAPH_KEY_BUTTON, STR_GRAPH_KEY_TOOLTIP),
    NWidget(WWT_SHADEBOX, COLOUR_GREY),
    NWidget(WWT_STICKYBOX, COLOUR_GREY),
  EndContainer(),
  NWidget(WWT_PANEL, COLOUR_GREY, BGW_BACKGROUND), SetMinimalSize(576, 128), EndContainer(),
}

Definition at line 648 of file graph_gui.cpp.

const NWidgetPart _nested_operating_profit_widgets[] [static]
Initial value:
 {
  NWidget(NWID_HORIZONTAL),
    NWidget(WWT_CLOSEBOX, COLOUR_GREY),
    NWidget(WWT_CAPTION, COLOUR_GREY), SetDataTip(STR_GRAPH_OPERATING_PROFIT_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS),
    NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, BGW_KEY_BUTTON), SetMinimalSize(50, 0), SetMinimalTextLines(1, WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM + 2), SetDataTip(STR_GRAPH_KEY_BUTTON, STR_GRAPH_KEY_TOOLTIP),
    NWidget(WWT_SHADEBOX, COLOUR_GREY),
    NWidget(WWT_STICKYBOX, COLOUR_GREY),
  EndContainer(),
  NWidget(WWT_PANEL, COLOUR_GREY, BGW_BACKGROUND), SetMinimalSize(576, 160), EndContainer(),
}

Definition at line 606 of file graph_gui.cpp.

const NWidgetPart _nested_performance_history_widgets[] [static]
Initial value:
 {
  NWidget(NWID_HORIZONTAL),
    NWidget(WWT_CLOSEBOX, COLOUR_GREY),
    NWidget(WWT_CAPTION, COLOUR_GREY), SetDataTip(STR_GRAPH_COMPANY_PERFORMANCE_RATINGS_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS),
    NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, PHW_DETAILED_PERFORMANCE), SetMinimalSize(50, 0), SetMinimalTextLines(1, WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM + 2), SetDataTip(STR_PERFORMANCE_DETAIL_KEY, STR_GRAPH_PERFORMANCE_DETAIL_TOOLTIP),
    NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, PHW_KEY), SetMinimalSize(50, 0), SetMinimalTextLines(1, WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM + 2), SetDataTip(STR_GRAPH_KEY_BUTTON, STR_GRAPH_KEY_TOOLTIP),
    NWidget(WWT_SHADEBOX, COLOUR_GREY),
    NWidget(WWT_STICKYBOX, COLOUR_GREY),
  EndContainer(),
  NWidget(WWT_PANEL, COLOUR_GREY, PHW_BACKGROUND), SetMinimalSize(576, 224), EndContainer(),
}

Definition at line 742 of file graph_gui.cpp.

const NWidgetPart _nested_performance_rating_detail_widgets[] [static]
Initial value:
 {
  NWidget(NWID_HORIZONTAL),
    NWidget(WWT_CLOSEBOX, COLOUR_GREY),
    NWidget(WWT_CAPTION, COLOUR_GREY), SetDataTip(STR_PERFORMANCE_DETAIL, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS),
    NWidget(WWT_SHADEBOX, COLOUR_GREY),
    NWidget(WWT_STICKYBOX, COLOUR_GREY),
  EndContainer(),
  NWidget(WWT_PANEL, COLOUR_GREY),
    NWidgetFunction(MakeCompanyButtonRows), SetPadding(0, 1, 1, 2),
  EndContainer(),
  NWidgetFunction(MakePerformanceDetailPanels),
}

Definition at line 1487 of file graph_gui.cpp.

const StringID _performance_titles[] [static]
Initial value:
 {
  STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_ENGINEER,
  STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_ENGINEER,
  STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_TRAFFIC_MANAGER,
  STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_TRAFFIC_MANAGER,
  STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_TRANSPORT_COORDINATOR,
  STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_TRANSPORT_COORDINATOR,
  STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_ROUTE_SUPERVISOR,
  STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_ROUTE_SUPERVISOR,
  STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_DIRECTOR,
  STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_DIRECTOR,
  STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_CHIEF_EXECUTIVE,
  STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_CHIEF_EXECUTIVE,
  STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_CHAIRMAN,
  STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_CHAIRMAN,
  STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_PRESIDENT,
  STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_TYCOON,
}

Definition at line 1001 of file graph_gui.cpp.


Generated on Tue Sep 14 17:07:00 2010 for OpenTTD by  doxygen 1.6.1