changeset 15791:c5739dcf1e31 draft

(svn r20466) -Codechange: USe NWID_SELECTION to hide the scrollbar in dropdowns.
author frosch <frosch@openttd.org>
date Thu, 12 Aug 2010 11:53:11 +0000
parents 68a68f0554f9
children 634a16128f32
files src/widgets/dropdown.cpp
diffstat 1 files changed, 9 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/src/widgets/dropdown.cpp
+++ b/src/widgets/dropdown.cpp
@@ -69,14 +69,17 @@
 
 /** Widget numbers of the dropdown menu. */
 enum DropdownMenuWidgets {
-	DDM_ITEMS,  ///< Panel showing the dropdown items.
-	DDM_SCROLL, ///< Scrollbar.
+	DDM_ITEMS,        ///< Panel showing the dropdown items.
+	DDM_SHOW_SCROLL,  ///< Hide scrollbar if too few items.
+	DDM_SCROLL,       ///< Scrollbar.
 };
 
 static const NWidgetPart _nested_dropdown_menu_widgets[] = {
 	NWidget(NWID_HORIZONTAL),
 		NWidget(WWT_PANEL, COLOUR_END, DDM_ITEMS), SetMinimalSize(1, 1), SetScrollbar(DDM_SCROLL), EndContainer(),
-		NWidget(NWID_VSCROLLBAR, COLOUR_END, DDM_SCROLL),
+		NWidget(NWID_SELECTION, INVALID_COLOUR, DDM_SHOW_SCROLL),
+			NWidget(NWID_VSCROLLBAR, COLOUR_END, DDM_SCROLL),
+		EndContainer(),
 	EndContainer(),
 };
 
@@ -128,11 +131,9 @@
 		nwi->colour = wi_colour;
 
 		nwi = this->GetWidget<NWidgetCore>(DDM_SCROLL);
-		if (scroll) {
-			nwi->colour = wi_colour;
-		} else {
-			nwi->min_x = 0; // Make scrollbar invisible.
-		}
+		nwi->colour = wi_colour;
+
+		this->GetWidget<NWidgetStacked>(DDM_SHOW_SCROLL)->SetDisplayedPlane(scroll ? 0 : SZSP_NONE);
 
 		this->FinishInitNested(&_dropdown_desc, 0);
 		this->flags4 &= ~WF_WHITE_BORDER_MASK;