(svn r13170) -Codechange: make classes of the EnginePreview and BuyCompany windows.
authorrubidium
Sun, 18 May 2008 20:49:22 +0000
changeset 10626 557ccb284c8c
parent 10625 3c1f6a26db71
child 10627 641632e80093
(svn r13170) -Codechange: make classes of the EnginePreview and BuyCompany windows.
src/engine_gui.cpp
src/player_gui.cpp
--- a/src/engine_gui.cpp	Sun May 18 20:40:30 2008 +0000
+++ b/src/engine_gui.cpp	Sun May 18 20:49:22 2008 +0000
@@ -66,55 +66,54 @@
 	{ DrawAircraftEngine, DrawAircraftEngineInfo },
 };
 
-static void EnginePreviewWndProc(Window *w, WindowEvent *e)
-{
-	switch (e->event) {
-	case WE_PAINT: {
-		EngineID engine = w->window_number;
-		const DrawEngineInfo* dei;
-		int width;
+struct EnginePreviewWindow : Window {
+	EnginePreviewWindow(const WindowDesc *desc, WindowNumber window_number) : Window(desc, window_number)
+	{
+	}
 
-		w->DrawWidgets();
+	virtual void OnPaint()
+	{
+		this->DrawWidgets();
 
+		EngineID engine = this->window_number;
 		SetDParam(0, GetEngineCategoryName(engine));
 		DrawStringMultiCenter(150, 44, STR_8101_WE_HAVE_JUST_DESIGNED_A, 296);
 
 		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->info_proc(engine, width >> 1, 130, width - 52);
-		break;
 	}
 
-	case WE_CLICK:
-		switch (e->we.click.widget) {
+	virtual void OnClick(Point pt, int widget)
+	{
+		switch (widget) {
 			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 */
 			case 3:
-				delete w;
+				delete this;
 				break;
 		}
-		break;
 	}
-}
+};
 
 static const WindowDesc _engine_preview_desc = {
 	WDP_CENTER, WDP_CENTER, 300, 192, 300, 192,
 	WC_ENGINE_PREVIEW, WC_NONE,
 	WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET,
 	_engine_preview_widgets,
-	EnginePreviewWndProc
+	NULL
 };
 
 
 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)
--- a/src/player_gui.cpp	Sun May 18 20:40:30 2008 +0000
+++ b/src/player_gui.cpp	Sun May 18 20:49:22 2008 +0000
@@ -1360,35 +1360,38 @@
 
 
 
-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();
-
-			DrawPlayerFace(p->face, p->player_color, 2, 16);
+struct BuyCompanyWindow : Window {
+	BuyCompanyWindow(const WindowDesc *desc, WindowNumber window_number) : Window(desc, window_number)
+	{
+	}
 
-			SetDParam(0, p->index);
-			SetDParam(1, p->bankrupt_value);
-			DrawStringMultiCenter(214, 65, STR_705B_WE_ARE_LOOKING_FOR_A_TRANSPORT, 238);
-		} break;
+	virtual void OnPaint()
+	{
+		Player *p = GetPlayer((PlayerID)this->window_number);
+		SetDParam(0, STR_COMPANY_NAME);
+		SetDParam(1, p->index);
+		this->DrawWidgets();
 
-		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;
+		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);
 	}
-}
+
+	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 @@
 	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 */