diff options
-rw-r--r-- | src/console_gui.cpp | 2 | ||||
-rw-r--r-- | src/highscore_gui.cpp | 4 | ||||
-rw-r--r-- | src/main_gui.cpp | 2 | ||||
-rw-r--r-- | src/misc_gui.cpp | 6 | ||||
-rw-r--r-- | src/network/network_chat_gui.cpp | 2 | ||||
-rw-r--r-- | src/news_gui.cpp | 38 | ||||
-rw-r--r-- | src/statusbar_gui.cpp | 2 | ||||
-rw-r--r-- | src/toolbar_gui.cpp | 4 | ||||
-rw-r--r-- | src/window_gui.h | 1 |
9 files changed, 33 insertions, 28 deletions
diff --git a/src/console_gui.cpp b/src/console_gui.cpp index 4a8a28b24..e8343b864 100644 --- a/src/console_gui.cpp +++ b/src/console_gui.cpp @@ -158,7 +158,7 @@ static const struct NWidgetPart _nested_console_window_widgets[] = { }; static const WindowDesc _console_window_desc( - 0, 0, 0, 0, + WDP_MANUAL, WDP_MANUAL, 0, 0, WC_CONSOLE, WC_NONE, 0, _nested_console_window_widgets, lengthof(_nested_console_window_widgets) diff --git a/src/highscore_gui.cpp b/src/highscore_gui.cpp index 6f1671c47..03f43fede 100644 --- a/src/highscore_gui.cpp +++ b/src/highscore_gui.cpp @@ -179,14 +179,14 @@ static const NWidgetPart _nested_highscore_widgets[] = { }; static const WindowDesc _highscore_desc( - 0, 0, 641, 481, + WDP_MANUAL, WDP_MANUAL, 641, 481, WC_HIGHSCORE, WC_NONE, 0, _nested_highscore_widgets, lengthof(_nested_highscore_widgets) ); static const WindowDesc _endgame_desc( - 0, 0, 641, 481, + WDP_MANUAL, WDP_MANUAL, 641, 481, WC_ENDSCREEN, WC_NONE, 0, _nested_highscore_widgets, lengthof(_nested_highscore_widgets) diff --git a/src/main_gui.cpp b/src/main_gui.cpp index a55260459..3f804d12c 100644 --- a/src/main_gui.cpp +++ b/src/main_gui.cpp @@ -200,7 +200,7 @@ static const struct NWidgetPart _nested_main_window_widgets[] = { }; static const WindowDesc _main_window_desc( - 0, 0, 0, 0, + WDP_MANUAL, WDP_MANUAL, 0, 0, WC_MAIN_WINDOW, WC_NONE, 0, _nested_main_window_widgets, lengthof(_nested_main_window_widgets) diff --git a/src/misc_gui.cpp b/src/misc_gui.cpp index 9c9b52d02..0ebfa56db 100644 --- a/src/misc_gui.cpp +++ b/src/misc_gui.cpp @@ -497,7 +497,7 @@ static const NWidgetPart _nested_errmsg_widgets[] = { }; static const WindowDesc _errmsg_desc( - 0, 0, 240, 46, // x/y position is not used. + WDP_MANUAL, WDP_MANUAL, 240, 46, WC_ERRMSG, WC_NONE, 0, _nested_errmsg_widgets, lengthof(_nested_errmsg_widgets) @@ -517,7 +517,7 @@ static const NWidgetPart _nested_errmsg_face_widgets[] = { }; static const WindowDesc _errmsg_face_desc( - 0, 0, 334, 137, // x/y position is not used. + WDP_MANUAL, WDP_MANUAL, 334, 137, WC_ERRMSG, WC_NONE, 0, _nested_errmsg_face_widgets, lengthof(_nested_errmsg_face_widgets) @@ -764,7 +764,7 @@ static const NWidgetPart _nested_tooltips_widgets[] = { }; static const WindowDesc _tool_tips_desc( - 100, 100, 0, 0, // Coordinates and sizes are not used, + WDP_MANUAL, WDP_MANUAL, 0, 0, // Coordinates and sizes are not used, WC_TOOLTIPS, WC_NONE, 0, _nested_tooltips_widgets, lengthof(_nested_tooltips_widgets) diff --git a/src/network/network_chat_gui.cpp b/src/network/network_chat_gui.cpp index d66211f95..13405cc9e 100644 --- a/src/network/network_chat_gui.cpp +++ b/src/network/network_chat_gui.cpp @@ -543,7 +543,7 @@ static const NWidgetPart _nested_chat_window_widgets[] = { }; static const WindowDesc _chat_window_desc( - WDP_CENTER, 0, 640, 14, // x, y, width, height + WDP_MANUAL, WDP_MANUAL, 640, 14, // x, y, width, height WC_SEND_NETWORK_MSG, WC_NONE, 0, _nested_chat_window_widgets, lengthof(_nested_chat_window_widgets) diff --git a/src/news_gui.cpp b/src/news_gui.cpp index 5e5b38fe8..a4cfd67ae 100644 --- a/src/news_gui.cpp +++ b/src/news_gui.cpp @@ -105,8 +105,8 @@ static const NWidgetPart _nested_normal_news_widgets[] = { EndContainer(), }; -static WindowDesc _normal_news_desc( - WDP_CENTER, 476, 430, 170, +static const WindowDesc _normal_news_desc( + WDP_MANUAL, WDP_MANUAL, 430, 170, WC_NEWS_WINDOW, WC_NONE, 0, _nested_normal_news_widgets, lengthof(_nested_normal_news_widgets) @@ -132,8 +132,8 @@ static const NWidgetPart _nested_vehicle_news_widgets[] = { EndContainer(), }; -static WindowDesc _vehicle_news_desc( - WDP_CENTER, 476, 430, 170, +static const WindowDesc _vehicle_news_desc( + WDP_MANUAL, WDP_MANUAL, 430, 170, WC_NEWS_WINDOW, WC_NONE, 0, _nested_vehicle_news_widgets, lengthof(_nested_vehicle_news_widgets) @@ -163,8 +163,8 @@ static const NWidgetPart _nested_company_news_widgets[] = { EndContainer(), }; -static WindowDesc _company_news_desc( - WDP_CENTER, 476, 430, 170, +static const WindowDesc _company_news_desc( + WDP_MANUAL, WDP_MANUAL, 430, 170, WC_NEWS_WINDOW, WC_NONE, 0, _nested_company_news_widgets, lengthof(_nested_company_news_widgets) @@ -186,15 +186,15 @@ static const NWidgetPart _nested_thin_news_widgets[] = { EndContainer(), }; -static WindowDesc _thin_news_desc( - WDP_CENTER, 476, 430, 130, +static const WindowDesc _thin_news_desc( + WDP_MANUAL, WDP_MANUAL, 430, 130, WC_NEWS_WINDOW, WC_NONE, 0, _nested_thin_news_widgets, lengthof(_nested_thin_news_widgets) ); /* Small news items. */ -static NWidgetPart _nested_small_news_widgets[] = { +static const NWidgetPart _nested_small_news_widgets[] = { /* Caption + close box */ NWidget(NWID_HORIZONTAL), NWidget(WWT_CLOSEBOX, COLOUR_LIGHT_BLUE, NTW_CLOSEBOX), @@ -210,8 +210,8 @@ static NWidgetPart _nested_small_news_widgets[] = { EndContainer(), }; -static WindowDesc _small_news_desc( - WDP_CENTER, 476, 280, 87, +static const WindowDesc _small_news_desc( + WDP_MANUAL, WDP_MANUAL, 280, 87, WC_NEWS_WINDOW, WC_NONE, 0, _nested_small_news_widgets, lengthof(_nested_small_news_widgets) @@ -221,9 +221,9 @@ static WindowDesc _small_news_desc( * Data common to all news items of a given subtype (structure) */ struct NewsSubtypeData { - NewsType type; ///< News category @see NewsType - NewsFlag flags; ///< Initial NewsFlags bits @see NewsFlag - WindowDesc *desc; ///< Window description for displaying this news. + NewsType type; ///< News category @see NewsType + NewsFlag flags; ///< Initial NewsFlags bits @see NewsFlag + const WindowDesc *desc; ///< Window description for displaying this news. }; /** @@ -339,6 +339,12 @@ struct NewsWindow : Window { GfxFillRect(r.left, r.bottom, r.right, r.bottom, 0xD7); } + virtual Point OnInitialPosition(const WindowDesc *desc, int16 sm_width, int16 sm_height, int window_number) + { + Point pt = { (_screen.width - max(sm_width, desc->default_width)) / 2, _screen.height }; + return pt; + } + virtual void OnPaint() { this->DrawWidgets(); @@ -560,9 +566,7 @@ static void ShowNewspaper(NewsItem *ni) SoundFx sound = _news_type_data[_news_subtype_data[ni->subtype].type].sound; if (sound != 0) SndPlayFx(sound); - WindowDesc *desc = _news_subtype_data[ni->subtype].desc; - desc->top = _screen.height; - new NewsWindow(desc, ni); + new NewsWindow(_news_subtype_data[ni->subtype].desc, ni); } /** Show news item in the ticker */ diff --git a/src/statusbar_gui.cpp b/src/statusbar_gui.cpp index a4a3661d5..150944564 100644 --- a/src/statusbar_gui.cpp +++ b/src/statusbar_gui.cpp @@ -235,7 +235,7 @@ static const NWidgetPart _nested_main_status_widgets[] = { }; static const WindowDesc _main_status_desc( - WDP_CENTER, 0, 640, 12, + WDP_MANUAL, WDP_MANUAL, 640, 12, WC_STATUS_BAR, WC_NONE, WDF_UNCLICK_BUTTONS | WDF_NO_FOCUS, _nested_main_status_widgets, lengthof(_nested_main_status_widgets) diff --git a/src/toolbar_gui.cpp b/src/toolbar_gui.cpp index d606547b3..1232f5d08 100644 --- a/src/toolbar_gui.cpp +++ b/src/toolbar_gui.cpp @@ -1376,7 +1376,7 @@ static const NWidgetPart _nested_toolbar_normal_widgets[] = { }; static const WindowDesc _toolb_normal_desc( - 0, 0, 640, 22, + WDP_MANUAL, WDP_MANUAL, 640, 22, WC_MAIN_TOOLBAR, WC_NONE, WDF_NO_FOCUS, _nested_toolbar_normal_widgets, lengthof(_nested_toolbar_normal_widgets) @@ -1599,7 +1599,7 @@ static const NWidgetPart _nested_toolb_scen_widgets[] = { }; static const WindowDesc _toolb_scen_desc( - 0, 0, 640, 22, + WDP_MANUAL, WDP_MANUAL, 640, 22, WC_MAIN_TOOLBAR, WC_NONE, WDF_UNCLICK_BUTTONS | WDF_NO_FOCUS, _nested_toolb_scen_widgets, lengthof(_nested_toolb_scen_widgets) diff --git a/src/window_gui.h b/src/window_gui.h index a65246567..01b49b23c 100644 --- a/src/window_gui.h +++ b/src/window_gui.h @@ -159,6 +159,7 @@ enum WindowDefaultFlag { * Special values for 'left' and 'top' to cause a specific placement */ enum WindowDefaultPosition { + WDP_MANUAL, ///< Manually align the window (so no automatic location finding) WDP_AUTO = -1, ///< Find a place automatically WDP_CENTER = -2, ///< Center the window (left/right or top/bottom) WDP_ALIGN_TBR = -3, ///< Align the right side of the window with the right side of the main toolbar |