summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrubidium <rubidium@openttd.org>2008-05-18 09:39:40 +0000
committerrubidium <rubidium@openttd.org>2008-05-18 09:39:40 +0000
commit77059f7b5debfc693dc9b7a827f78899429b77df (patch)
tree0e4a220455af699f7e1392bcd4313986f9007982
parent8846d4380f2868ce4a770362e79f8a05cc1e7fa8 (diff)
downloadopenttd-77059f7b5debfc693dc9b7a827f78899429b77df.tar.xz
(svn r13155) -Codechange: make a window class of the company league and graph legenda windows.
-rw-r--r--src/graph_gui.cpp123
1 files changed, 61 insertions, 62 deletions
diff --git a/src/graph_gui.cpp b/src/graph_gui.cpp
index a6102f8a3..ed68b035e 100644
--- a/src/graph_gui.cpp
+++ b/src/graph_gui.cpp
@@ -266,53 +266,52 @@ static void DrawGraph(const GraphDrawer *gw)
/* GRAPH LEGEND */
/****************/
-static void GraphLegendWndProc(Window *w, WindowEvent *e)
-{
- switch (e->event) {
- case WE_CREATE:
- for (uint i = 3; i < w->widget_count; i++) {
- if (!HasBit(_legend_excluded_players, i - 3)) w->LowerWidget(i);
- }
- break;
+struct GraphLegendWindow : Window {
+ GraphLegendWindow(const WindowDesc *desc, WindowNumber window_number) : Window(desc, window_number)
+ {
+ for (uint i = 3; i < this->widget_count; i++) {
+ if (!HasBit(_legend_excluded_players, i - 3)) this->LowerWidget(i);
+ }
+ }
- case WE_PAINT: {
- const Player *p;
+ virtual void OnPaint()
+ {
+ const Player *p;
- FOR_ALL_PLAYERS(p) {
- if (p->is_active) continue;
+ FOR_ALL_PLAYERS(p) {
+ if (p->is_active) continue;
- SetBit(_legend_excluded_players, p->index);
- w->RaiseWidget(p->index + 3);
- }
+ SetBit(_legend_excluded_players, p->index);
+ this->RaiseWidget(p->index + 3);
+ }
- w->DrawWidgets();
+ this->DrawWidgets();
- FOR_ALL_PLAYERS(p) {
- if (!p->is_active) continue;
+ FOR_ALL_PLAYERS(p) {
+ if (!p->is_active) continue;
- DrawPlayerIcon(p->index, 4, 18 + p->index * 12);
+ DrawPlayerIcon(p->index, 4, 18 + p->index * 12);
- SetDParam(0, p->index);
- SetDParam(1, p->index);
- DrawString(21, 17 + p->index * 12, STR_7021, HasBit(_legend_excluded_players, p->index) ? TC_BLACK : TC_WHITE);
- }
- break;
+ SetDParam(0, p->index);
+ SetDParam(1, p->index);
+ DrawString(21, 17 + p->index * 12, STR_7021, HasBit(_legend_excluded_players, p->index) ? TC_BLACK : TC_WHITE);
}
+ }
- case WE_CLICK:
- if (!IsInsideMM(e->we.click.widget, 3, 11)) return;
-
- ToggleBit(_legend_excluded_players, e->we.click.widget - 3);
- w->ToggleWidgetLoweredState(e->we.click.widget);
- w->SetDirty();
- InvalidateWindow(WC_INCOME_GRAPH, 0);
- InvalidateWindow(WC_OPERATING_PROFIT, 0);
- InvalidateWindow(WC_DELIVERED_CARGO, 0);
- InvalidateWindow(WC_PERFORMANCE_HISTORY, 0);
- InvalidateWindow(WC_COMPANY_VALUE, 0);
- break;
+ virtual void OnClick(Point pt, int widget)
+ {
+ if (!IsInsideMM(widget, 3, 11)) return;
+
+ ToggleBit(_legend_excluded_players, widget - 3);
+ this->ToggleWidgetLoweredState(widget);
+ this->SetDirty();
+ InvalidateWindow(WC_INCOME_GRAPH, 0);
+ InvalidateWindow(WC_OPERATING_PROFIT, 0);
+ InvalidateWindow(WC_DELIVERED_CARGO, 0);
+ InvalidateWindow(WC_PERFORMANCE_HISTORY, 0);
+ InvalidateWindow(WC_COMPANY_VALUE, 0);
}
-}
+};
static const Widget _graph_legend_widgets[] = {
{ WWT_CLOSEBOX, RESIZE_NONE, 14, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW},
@@ -334,12 +333,12 @@ static const WindowDesc _graph_legend_desc = {
WC_GRAPH_LEGEND, WC_NONE,
WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET,
_graph_legend_widgets,
- GraphLegendWndProc
+ NULL
};
static void ShowGraphLegend()
{
- AllocateWindowDescFront<Window>(&_graph_legend_desc, 0);
+ AllocateWindowDescFront<GraphLegendWindow>(&_graph_legend_desc, 0);
}
/********************/
@@ -879,35 +878,35 @@ static int CDECL PerfHistComp(const void* elem1, const void* elem2)
return p2->old_economy[1].performance_history - p1->old_economy[1].performance_history;
}
-static void CompanyLeagueWndProc(Window *w, WindowEvent *e)
-{
- switch (e->event) {
- case WE_PAINT: {
- const Player* plist[MAX_PLAYERS];
- const Player* p;
+struct CompanyLeagueWindow : Window {
+ CompanyLeagueWindow(const WindowDesc *desc, WindowNumber window_number) : Window(desc, window_number)
+ {
+ }
- w->DrawWidgets();
+ virtual void OnPaint()
+ {
+ const Player *plist[MAX_PLAYERS];
+ const Player *p;
- uint pl_num = 0;
- FOR_ALL_PLAYERS(p) if (p->is_active) plist[pl_num++] = p;
+ this->DrawWidgets();
- qsort((void*)plist, pl_num, sizeof(*plist), PerfHistComp);
+ uint pl_num = 0;
+ FOR_ALL_PLAYERS(p) if (p->is_active) plist[pl_num++] = p;
- for (uint i = 0; i != pl_num; i++) {
- p = plist[i];
- SetDParam(0, i + STR_01AC_1ST);
- SetDParam(1, p->index);
- SetDParam(2, p->index);
- SetDParam(3, GetPerformanceTitleFromValue(p->old_economy[1].performance_history));
+ qsort((void*)plist, pl_num, sizeof(*plist), PerfHistComp);
- DrawString(2, 15 + i * 10, i == 0 ? STR_7054 : STR_7055, TC_FROMSTRING);
- DrawPlayerIcon(p->index, 27, 16 + i * 10);
- }
+ for (uint i = 0; i != pl_num; i++) {
+ p = plist[i];
+ SetDParam(0, i + STR_01AC_1ST);
+ SetDParam(1, p->index);
+ SetDParam(2, p->index);
+ SetDParam(3, GetPerformanceTitleFromValue(p->old_economy[1].performance_history));
- break;
+ DrawString(2, 15 + i * 10, i == 0 ? STR_7054 : STR_7055, TC_FROMSTRING);
+ DrawPlayerIcon(p->index, 27, 16 + i * 10);
}
}
-}
+};
static const Widget _company_league_widgets[] = {
@@ -923,12 +922,12 @@ static const WindowDesc _company_league_desc = {
WC_COMPANY_LEAGUE, WC_NONE,
WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_STICKY_BUTTON,
_company_league_widgets,
- CompanyLeagueWndProc
+ NULL
};
void ShowCompanyLeagueTable()
{
- AllocateWindowDescFront<Window>(&_company_league_desc, 0);
+ AllocateWindowDescFront<CompanyLeagueWindow>(&_company_league_desc, 0);
}
/*****************************/