1
0
Fork 0

(svn r13170) -Codechange: make classes of the EnginePreview and BuyCompany windows.

release/0.7
rubidium 2008-05-18 20:49:22 +00:00
parent 6da56ee87e
commit eb2f19ed66
2 changed files with 52 additions and 50 deletions

View File

@ -66,55 +66,54 @@ static const DrawEngineInfo _draw_engine_list[4] = {
{ DrawAircraftEngine, DrawAircraftEngineInfo }, { DrawAircraftEngine, DrawAircraftEngineInfo },
}; };
static void EnginePreviewWndProc(Window *w, WindowEvent *e) struct EnginePreviewWindow : Window {
{ EnginePreviewWindow(const WindowDesc *desc, WindowNumber window_number) : Window(desc, window_number)
switch (e->event) { {
case WE_PAINT: { }
EngineID engine = w->window_number;
const DrawEngineInfo* dei;
int width;
w->DrawWidgets(); virtual void OnPaint()
{
this->DrawWidgets();
EngineID engine = this->window_number;
SetDParam(0, GetEngineCategoryName(engine)); SetDParam(0, GetEngineCategoryName(engine));
DrawStringMultiCenter(150, 44, STR_8101_WE_HAVE_JUST_DESIGNED_A, 296); DrawStringMultiCenter(150, 44, STR_8101_WE_HAVE_JUST_DESIGNED_A, 296);
SetDParam(0, engine); SetDParam(0, engine);
DrawStringCentered(w->width >> 1, 80, STR_ENGINE_NAME, TC_BLACK); DrawStringCentered(this->width >> 1, 80, STR_ENGINE_NAME, TC_BLACK);
dei = &_draw_engine_list[GetEngine(engine)->type]; const DrawEngineInfo *dei = &_draw_engine_list[GetEngine(engine)->type];
width = w->width; int width = this->width;
dei->engine_proc(width >> 1, 100, engine, 0); dei->engine_proc(width >> 1, 100, engine, 0);
dei->info_proc(engine, width >> 1, 130, width - 52); dei->info_proc(engine, width >> 1, 130, width - 52);
break;
} }
case WE_CLICK: virtual void OnClick(Point pt, int widget)
switch (e->we.click.widget) { {
switch (widget) {
case 4: case 4:
DoCommandP(0, w->window_number, 0, NULL, CMD_WANT_ENGINE_PREVIEW); DoCommandP(0, this->window_number, 0, NULL, CMD_WANT_ENGINE_PREVIEW);
/* Fallthrough */ /* Fallthrough */
case 3: case 3:
delete w; delete this;
break; break;
} }
break;
} }
} };
static const WindowDesc _engine_preview_desc = { static const WindowDesc _engine_preview_desc = {
WDP_CENTER, WDP_CENTER, 300, 192, 300, 192, WDP_CENTER, WDP_CENTER, 300, 192, 300, 192,
WC_ENGINE_PREVIEW, WC_NONE, WC_ENGINE_PREVIEW, WC_NONE,
WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET, WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET,
_engine_preview_widgets, _engine_preview_widgets,
EnginePreviewWndProc NULL
}; };
void ShowEnginePreviewWindow(EngineID engine) void ShowEnginePreviewWindow(EngineID engine)
{ {
AllocateWindowDescFront<Window>(&_engine_preview_desc, engine); AllocateWindowDescFront<EnginePreviewWindow>(&_engine_preview_desc, engine);
} }
static void DrawTrainEngineInfo(EngineID engine, int x, int y, int maxw) static void DrawTrainEngineInfo(EngineID engine, int x, int y, int maxw)

View File

@ -1360,35 +1360,38 @@ void ShowPlayerCompany(PlayerID player)
static void BuyCompanyWndProc(Window *w, WindowEvent *e) struct BuyCompanyWindow : Window {
{ BuyCompanyWindow(const WindowDesc *desc, WindowNumber window_number) : Window(desc, window_number)
switch (e->event) { {
case WE_PAINT: { }
Player *p = GetPlayer((PlayerID)w->window_number);
virtual void OnPaint()
{
Player *p = GetPlayer((PlayerID)this->window_number);
SetDParam(0, STR_COMPANY_NAME); SetDParam(0, STR_COMPANY_NAME);
SetDParam(1, p->index); SetDParam(1, p->index);
w->DrawWidgets(); this->DrawWidgets();
DrawPlayerFace(p->face, p->player_color, 2, 16); DrawPlayerFace(p->face, p->player_color, 2, 16);
SetDParam(0, p->index); SetDParam(0, p->index);
SetDParam(1, p->bankrupt_value); SetDParam(1, p->bankrupt_value);
DrawStringMultiCenter(214, 65, STR_705B_WE_ARE_LOOKING_FOR_A_TRANSPORT, 238); DrawStringMultiCenter(214, 65, STR_705B_WE_ARE_LOOKING_FOR_A_TRANSPORT, 238);
} break; }
case WE_CLICK: virtual void OnClick(Point pt, int widget)
switch (e->we.click.widget) { {
switch (widget) {
case 3: case 3:
delete w; delete this;
break; break;
case 4: {
DoCommandP(0, w->window_number, 0, NULL, CMD_BUY_COMPANY | CMD_MSG(STR_7060_CAN_T_BUY_COMPANY)); case 4:
DoCommandP(0, this->window_number, 0, NULL, CMD_BUY_COMPANY | CMD_MSG(STR_7060_CAN_T_BUY_COMPANY));
break; break;
} }
} }
break; };
}
}
static const Widget _buy_company_widgets[] = { static const Widget _buy_company_widgets[] = {
{ WWT_CLOSEBOX, RESIZE_NONE, 5, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, { 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, WC_BUY_COMPANY, WC_NONE,
WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET, WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET,
_buy_company_widgets, _buy_company_widgets,
BuyCompanyWndProc NULL
}; };
void ShowBuyCompanyDialog(uint player) void ShowBuyCompanyDialog(uint player)
{ {
AllocateWindowDescFront<Window>(&_buy_company_desc, player); AllocateWindowDescFront<BuyCompanyWindow>(&_buy_company_desc, player);
} }
/********** HIGHSCORE and ENDGAME windows */ /********** HIGHSCORE and ENDGAME windows */