File diff r14398:461a80e5f996 → r14399:3f819c0da60a
src/date_gui.cpp
Show inline comments
 
@@ -106,97 +106,97 @@ struct SetDateWindow : Window {
 
		ShowDropDownList(this, list, selected, widget);
 
	}
 

	
 
	virtual void UpdateWidgetSize(int widget, Dimension *size, const Dimension &padding, Dimension *fill, Dimension *resize)
 
	{
 
		Dimension d = {0, 0};
 
		switch (widget) {
 
			default: return;
 

	
 
			case SDW_DAY:
 
				for (uint i = 0; i < 31; i++) {
 
					d = maxdim(d, GetStringBoundingBox(STR_ORDINAL_NUMBER_1ST + i));
 
				}
 
				break;
 

	
 
			case SDW_MONTH:
 
				for (uint i = 0; i < 12; i++) {
 
					d = maxdim(d, GetStringBoundingBox(STR_MONTH_JAN + i));
 
				}
 
				break;
 

	
 
			case SDW_YEAR:
 
				for (Year i = this->min_year; i <= this->max_year; i++) {
 
					SetDParam(0, i);
 
					d = maxdim(d, GetStringBoundingBox(STR_JUST_INT));
 
				}
 
				break;
 
		}
 

	
 
		d.width += padding.width;
 
		d.height += padding.height;
 
		*size = d;
 
	}
 

	
 
	virtual void SetStringParameters(int widget) const
 
	{
 
		switch (widget) {
 
			case SDW_DAY:   SetDParam(0, this->date.day - 1 + STR_ORDINAL_NUMBER_1ST); break;
 
			case SDW_MONTH: SetDParam(0, this->date.month + STR_MONTH_JAN); break;
 
			case SDW_YEAR:  SetDParam(0, this->date.year); break;
 
		}
 
	}
 

	
 
	virtual void OnPaint()
 
	{
 
		this->DrawWidgets();
 
	}
 

	
 
	virtual void OnClick(Point pt, int widget)
 
	virtual void OnClick(Point pt, int widget, int click_count)
 
	{
 
		switch (widget) {
 
			case SDW_DAY:
 
			case SDW_MONTH:
 
			case SDW_YEAR:
 
				ShowDateDropDown(widget);
 
				break;
 

	
 
			case SDW_SET_DATE:
 
				if (this->callback != NULL) this->callback(this->parent, ConvertYMDToDate(this->date.year, this->date.month, this->date.day));
 
				delete this;
 
				break;
 
		}
 
	}
 

	
 
	virtual void OnDropdownSelect(int widget, int index)
 
	{
 
		switch (widget) {
 
			case SDW_DAY:
 
				this->date.day = index;
 
				break;
 

	
 
			case SDW_MONTH:
 
				this->date.month = index;
 
				break;
 

	
 
			case SDW_YEAR:
 
				this->date.year = index;
 
				break;
 
		}
 
		this->SetDirty();
 
	}
 
};
 

	
 
static const NWidgetPart _nested_set_date_widgets[] = {
 
	NWidget(NWID_HORIZONTAL),
 
		NWidget(WWT_CLOSEBOX, COLOUR_BROWN),
 
		NWidget(WWT_CAPTION, COLOUR_BROWN), SetDataTip(STR_DATE_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS),
 
	EndContainer(),
 
	NWidget(WWT_PANEL, COLOUR_BROWN),
 
		NWidget(NWID_VERTICAL), SetPIP(6, 6, 6),
 
			NWidget(NWID_HORIZONTAL, NC_EQUALSIZE), SetPIP(6, 6, 6),
 
				NWidget(WWT_DROPDOWN, COLOUR_ORANGE, SDW_DAY), SetFill(1, 0), SetDataTip(STR_JUST_STRING, STR_DATE_DAY_TOOLTIP),
 
				NWidget(WWT_DROPDOWN, COLOUR_ORANGE, SDW_MONTH), SetFill(1, 0), SetDataTip(STR_JUST_STRING, STR_DATE_MONTH_TOOLTIP),
 
				NWidget(WWT_DROPDOWN, COLOUR_ORANGE, SDW_YEAR), SetFill(1, 0), SetDataTip(STR_JUST_INT, STR_DATE_YEAR_TOOLTIP),
 
			EndContainer(),
 
			NWidget(NWID_HORIZONTAL),
 
				NWidget(NWID_SPACER), SetFill(1, 0),