Changeset - r16717:227b400c4b5b
[Not reviewed]
master
0 1 0
rubidium - 14 years ago 2010-12-11 10:10:25
rubidium@openttd.org
(svn r21460) -Change [FS#3975]: place the bridge building window under the mouse instead of somewhere randomly on the screen and change the default sort order
1 file changed with 11 insertions and 1 deletions:
0 comments (0 inline, 0 general)
src/bridge_gui.cpp
Show inline comments
 
@@ -201,12 +201,22 @@ public:
 
				size->height = 4 * resize->height; // Smallest bridge gui is 4 entries high in the matrix.
 
				break;
 
			}
 
		}
 
	}
 

	
 
	virtual Point OnInitialPosition(const WindowDesc *desc, int16 sm_width, int16 sm_height, int window_number)
 
	{
 
		/* Position the window so hopefully the first bridge from the list is under the mouse pointer. */
 
		NWidgetBase *list = this->GetWidget<NWidgetBase>(BBSW_BRIDGE_LIST);
 
		Point corner; // point of the top left corner of the window.
 
		corner.y = Clamp(_cursor.pos.y - list->pos_y - 5, GetMainViewTop(), GetMainViewBottom() - sm_height);
 
		corner.x = Clamp(_cursor.pos.x - list->pos_x - 5, 0, _screen.width - sm_width);
 
		return corner;
 
	}
 

	
 
	virtual void DrawWidget(const Rect &r, int widget) const
 
	{
 
		switch (widget) {
 
			case BBSW_DROPDOWN_ORDER:
 
				this->DrawSortButtonState(widget, this->bridges->IsDescSortOrder() ? SBS_DOWN : SBS_UP);
 
				break;
 
@@ -283,13 +293,13 @@ public:
 
	}
 
};
 

	
 
/** Set the default size of the Build Bridge Window. */
 
uint16 BuildBridgeWindow::last_size = 4;
 
/** Set the default sorting for the bridges */
 
Listing BuildBridgeWindow::last_sorting = {false, 0};
 
Listing BuildBridgeWindow::last_sorting = {true, 2};
 

	
 
/** Available bridge sorting functions. */
 
GUIBridgeList::SortFunction * const BuildBridgeWindow::sorter_funcs[] = {
 
	&BridgeIndexSorter,
 
	&BridgePriceSorter,
 
	&BridgeSpeedSorter
0 comments (0 inline, 0 general)