changeset 13287:3d2992db532c draft

(svn r17796) -Codechange: Move drawing of the industry info to its own function.
author alberth <alberth@openttd.org>
date Sun, 18 Oct 2009 13:40:11 +0000
parents 58de76f90067
children f2e78dbfc0d3
files src/industry_gui.cpp
diffstat 1 files changed, 16 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/src/industry_gui.cpp
+++ b/src/industry_gui.cpp
@@ -495,7 +495,13 @@
 		this->FindWindowPlacementAndResize(desc);
 	}
 
-	virtual void OnPaint()
+	/** Draw the text in the #IVW_INFO panel.
+	 * @param left  Left edge of the panel.
+	 * @param right Right edge of the panel.
+	 * @param top   Top edge of the panel.
+	 * @return Expected position of the bottom edge of the panel.
+	 */
+	int DrawInfo(uint left, uint right, uint top)
 	{
 		Industry *i = Industry::Get(this->window_number);
 		const IndustrySpec *ind = GetIndustrySpec(i->type);
@@ -503,9 +509,6 @@
 		bool first = true;
 		bool has_accept = false;
 
-		SetDParam(0, this->window_number);
-		this->DrawWidgets();
-
 		if (HasBit(ind->callback_mask, CBM_IND_PRODUCTION_CARGO_ARRIVAL) || HasBit(ind->callback_mask, CBM_IND_PRODUCTION_256_TICKS)) {
 			for (byte j = 0; j < lengthof(i->accepts_cargo); j++) {
 				if (i->accepts_cargo[j] == CT_INVALID) continue;
@@ -581,6 +584,15 @@
 				}
 			}
 		}
+		return y;
+	}
+
+	virtual void OnPaint()
+	{
+		SetDParam(0, this->window_number);
+		this->DrawWidgets();
+
+		int y = this->DrawInfo(this->widget[IVW_INFO].left, this->widget[IVW_INFO].right, this->widget[IVW_INFO].top);
 
 		if (y > this->widget[IVW_INFO].bottom) {
 			this->SetDirty();