summaryrefslogtreecommitdiff
path: root/src/player_gui.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/player_gui.cpp')
-rw-r--r--src/player_gui.cpp59
1 files changed, 31 insertions, 28 deletions
diff --git a/src/player_gui.cpp b/src/player_gui.cpp
index bdc667fa6..211de10c9 100644
--- a/src/player_gui.cpp
+++ b/src/player_gui.cpp
@@ -1360,35 +1360,38 @@ void ShowPlayerCompany(PlayerID player)
-static void BuyCompanyWndProc(Window *w, WindowEvent *e)
-{
- switch (e->event) {
- case WE_PAINT: {
- Player *p = GetPlayer((PlayerID)w->window_number);
- SetDParam(0, STR_COMPANY_NAME);
- SetDParam(1, p->index);
- w->DrawWidgets();
+struct BuyCompanyWindow : Window {
+ BuyCompanyWindow(const WindowDesc *desc, WindowNumber window_number) : Window(desc, window_number)
+ {
+ }
+
+ virtual void OnPaint()
+ {
+ Player *p = GetPlayer((PlayerID)this->window_number);
+ SetDParam(0, STR_COMPANY_NAME);
+ SetDParam(1, p->index);
+ this->DrawWidgets();
- DrawPlayerFace(p->face, p->player_color, 2, 16);
+ DrawPlayerFace(p->face, p->player_color, 2, 16);
- SetDParam(0, p->index);
- SetDParam(1, p->bankrupt_value);
- DrawStringMultiCenter(214, 65, STR_705B_WE_ARE_LOOKING_FOR_A_TRANSPORT, 238);
- } break;
-
- case WE_CLICK:
- switch (e->we.click.widget) {
- case 3:
- delete w;
- break;
- case 4: {
- DoCommandP(0, w->window_number, 0, NULL, CMD_BUY_COMPANY | CMD_MSG(STR_7060_CAN_T_BUY_COMPANY));
- break;
- }
- }
- break;
+ SetDParam(0, p->index);
+ SetDParam(1, p->bankrupt_value);
+ DrawStringMultiCenter(214, 65, STR_705B_WE_ARE_LOOKING_FOR_A_TRANSPORT, 238);
}
-}
+
+ virtual void OnClick(Point pt, int widget)
+ {
+ switch (widget) {
+ case 3:
+ delete this;
+ break;
+
+ case 4:
+ DoCommandP(0, this->window_number, 0, NULL, CMD_BUY_COMPANY | CMD_MSG(STR_7060_CAN_T_BUY_COMPANY));
+ break;
+ }
+ }
+};
static const Widget _buy_company_widgets[] = {
{ WWT_CLOSEBOX, RESIZE_NONE, 5, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW},
@@ -1404,13 +1407,13 @@ static const WindowDesc _buy_company_desc = {
WC_BUY_COMPANY, WC_NONE,
WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET,
_buy_company_widgets,
- BuyCompanyWndProc
+ NULL
};
void ShowBuyCompanyDialog(uint player)
{
- AllocateWindowDescFront<Window>(&_buy_company_desc, player);
+ AllocateWindowDescFront<BuyCompanyWindow>(&_buy_company_desc, player);
}
/********** HIGHSCORE and ENDGAME windows */